web-dev-qa-db-ja.com

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

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

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

13
thesamet

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

あなたは必要です 1 それぞれのELB セットする インスタンスの。あなたがそれを説明するように、それは各ウェブアプリのための1つのELBです。

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

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

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

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

19

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以下の場合にのみ簡単に機能します。

3
Jens Bannmann

Ec2インスタンスのリストに、2つのインスタンスが表示されますよね?しかし、各インスタンスに多くのWebアプリケーションがありますか?仮想ホストを使用してそれぞれをデプロイしますか?

ホストでの請求を分割するには、ELBが1つだけ必要です。例:

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

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

よろしく。

[〜#〜]更新[〜#〜]

EC2インスタンスに異なるwebappがある場合、2つのElastic Load Balancer(ELB)が必要です。インスタンスのペアごとに1つずつ。完全に4つのインスタンス

0
Junior Rocha