複数のWebアプリ用のElastic Load Balancer


13

私が持っているNWebアプリケーションを。各webappは、ドメイン内の異なるホスト名によって提供され、AWSで実行されている2つのインスタンスにデプロイされます。言い換えると、個別のWebアプリ2Nを実行するペアに分割されたインスタンスがありますN

Hostヘッダーに基づいてリクエストを処理する2つのインスタンスのいずれかにリクエストをプロキシする単一のAWS Elastic Load Balancerをセットアップしたいと思います。単一のELBを使用することは可能Nですか、それともインスタンスのペアごとに1つのELBをデプロイする必要がありますか?


回答:


19

単一のELBは、トラフィックを1セットのインスタンスにルーティングし、着信トラフィックを「背後」のすべてのインスタンスに配信します。Host:ヘッダーなど、トラフィックのレイヤー7分析に基づいてトラフィックを選択的にルーティングすることはありません。

インスタンスのセットごとに1つの ELB が必要です。あなたがそれを説明するように、それは各webappに対して1つのELBです。

ELBを実行する主な目的がワイルドカード証明書を使用してSSLをオフロードする場合(このように設計されたシステムが1つあり、多くのアプリがmany-different-domains.my-wildcard-cert-domain.comにある)、インスタンスELBは「背後」でHAProxyなどのリバースプロキシ(またはVarnishなどの他の代替)を実行し、レイヤー7ルーティングの決定を行い、トラフィックをその背後のマシンの適切なサブセットに転送できます。ロードバランシングと、統計とトラフィックカウンターを提供するという利点があります。

       /-- HAProxy \  /----- instances hosting app #1  
ELB ---|            >> ----- instances hosting app #2 
       \-- HAProxy /  \----- instances hosting app #n 

中間の^^^^インスタンスはHost:(特に)ヘッダーを評価し、分析のためにログにセッションCookieの値をキャプチャすることさえできます。

また、このセットアップにより、重複するインスタンスのサブセットで複数のアプリを実行できるようになり、必要に応じて、ELB自体では直接サポートされない他の多くのことを実行できます。また、アプリケーションが過負荷になった場合や利用できなくなった場合にカスタム「503」ページを返しますが、ELBはそれ自体を行いません。ここで2つのプロキシサーバーを示しましたが、質問の番号2についての言及以外の特別な理由はありません。私のセットアップには、実際には3つあり、これがデプロイされている地域のアベイラビリティーゾーンごとに1つです。


3
2016年8月、AmazonはHTTPヘッダーに基づいてさまざまなターゲットグループにルーティングできるAWS Application Load Balancerを開始しました。
イェンスバンマン

2
@JensBannmannそれは本当です。彼らがそれをリリースしたとき、それがサポートした唯一のルーティングルールはパスに基づいていました。2017年、彼らはHost:ヘッダーに基づいてルーティングする機能を追加しました。この答えは2014年に書いたときは正しかったのですが、更新の時が来たようです。それを私の注意に戻してくれてありがとう。
マイケル-sqlbot

3

2016年8月現在、Amazon ELBは2種類のロードバランサーを提供しています。

  • Classic Load Balancerは、アプリケーションプロトコルのコンテンツを考慮せずに、すべてのトラフィックを1つのインスタンスセットにルーティングします。以前は、これが利用可能な唯一のELBタイプでした。
  • Application Load Balancerは、URLパスに基づく構成可能なルールに従って、異なるターゲットグループにトラフィックをルーティングできます。ブログ投稿「New – AWS Application Load Balancer」では、いくつかのマイクロサービスで構成されるアプリケーションを主なユースケースとして取り上げ、詳細なセットアップ手順を説明しています。

ユースケースでは、Application Load Balancerが理想的なようです。ただし、10個のルールに制限されているためN、10個以下の場合にのみ簡単に機能します。


0

ec2インスタンスのリストには、2つのインスタンスが表示されますよね?しかし、各インスタンスには多くのWebアプリがありますか?仮想ホストを使用して各ホストを展開しますか?

ホストの料金を分割するために必要なELBは1つだけです。例:

External request > ELB (based on CNAME pointer)  > EC2 Instance. 

私はあなたのシナリオをもっと教えてくれれば良いと思うし、多分私はあなたを助けることができる。

よろしく。

更新

EC2インスタンスに異なるWebアプリケーションがある場合、2つのElastic Load Balancer(ELB)が必要です。インスタンスのペアごとに1つ。合計で4つのインスタンス


インスタンスリストに2Nアプリが表示されます。N個のwebappがあり、それぞれに2つのインスタンスがあります。これを明確にするために質問を編集します。
thesamet

更新された応答。
ジュニアロシャ14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.