単一の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つです。