77

Amazon EC2を使用しており、ELB(ロードバランサー)をプライベートサブネット上の2つのインスタンスに配置したいと考えています。プライベートサブネットをELBに追加するだけでは、接続は取得されません。両方のサブネットをELBに接続すると、インスタンスにアクセスできますが、多くの場合、タイムアウトが発生します。誰かがVPCのプライベートサブネット内にELBを正常に実装しましたか?もしそうなら、おそらく私に手順を説明してもらえますか?

ありがとう

4

4 に答える 4

195

チームメイトと私は、異なるアベイラビリティーゾーンに2つのプライベートサブネットを持つVPCにELBを実装しました。タイムアウトが発生する理由は、ロードバランサーに追加するサブネットごとに、1つの外部IPアドレスを取得するためです。('dig elb-dns-name-here'を試してみると、いくつかのIPアドレスが表示されます)。これらのIPアドレスの1つがプライベートサブネットをマップすると、タイムアウトになります。パブリックサブネットにマップするIPが機能します。DNSはIPアドレスのいずれかを提供する可能性があるため、機能する場合とタイムアウトする場合があります。

アマゾンと何度か行ったり来たりした後、ELBは「パブリック」サブネット、つまりインターネットゲートウェイへのルートを持つサブネットにのみ配置する必要があることがわかりました。Webサーバーをプライベートサブネットに保持したかったのですが、ELBがそれらと通信できるようにしました。これを解決するには、プライベートサブネットが存在するアベイラビリティーゾーンごとに、対応するパブリックサブネットがあることを確認する必要がありました。次に、各アベイラビリティーゾーンのパブリックサブネットをELBに追加しました。

最初はうまくいかなかったようですが、すべてを試した後、ELBを再作成し、すべてが正常に機能しました。これはバグだと思います。あるいは、ELBは非常に多くの変更から奇妙な状態にありました。

これが多かれ少なかれ私たちがしたことです:

  1. WebServer-1は、Webサーバーと呼ばれるセキュリティグループを持つアベイラビリティーゾーンus-east-1bのPrivateSubnet-1で実行されています。
  2. WebServer-2は、Webサーバーと呼ばれるセキュリティグループを持つアベイラビリティーゾーンus-east-1cのPrivateSubnet-2で実行されています。
  3. ゾーンus-east-1bにパブリックサブネットを作成しました。これをPublicSubnet-1と呼びます。インターネットゲートウェイ(ig-xxxxx)へのルートを含むルーティングテーブルをこの新しいサブネットに確実に関連付けました。(ウィザードを使用してパブリック/プライベートVPCを作成した場合、このルートはすでに存在します。)
  4. ゾーンus-east-1cにパブリックサブネットを作成しました。これをPublicSubnet-2と呼びます。インターネットゲートウェイ(ig-xxxxx)へのルートを含むルーティングテーブルをこの新しいサブネットに確実に関連付けました。(ウィザードを使用してパブリック/プライベートVPCを作成した場合、このルートはすでに存在します。)
  5. 新しいELBを作成し、それにPublicSubnet-1とPublicSubnet-2(PrivateSubnet-Xではない)を追加しました。また、ELBで実行するインスタンス(この場合はWebServer-1とWebServer-2)を選択しました。着信ポート80および443を許可するセキュリティグループを必ず割り当ててください。このグループをelb-groupと呼びましょう。
  6. Webサーバーグループで、elb-groupからのポート80および443からのトラフィックを許可します。

お役に立てば幸いです。

于 2012-03-09T17:02:29.870 に答える
17

ここで重要なのは、ELB に「サブネット/可用性ゾーンを追加する」のではなく、ELB インスタンスを配置するサブネットを指定することを理解することです。

はい、ELB はソフトウェア ロード バランサーであり、ELB オブジェクトを作成すると、指定したすべてのサブネットにカスタムの負荷分散 EC2 インスタンスが配置されます。そのため、ELB (そのインスタンス) にアクセスできるようにするには、IGW を介して構成されたデフォルト ルートを持つサブネットに配置する必要があります (これらのサブネットをパブリックとして分類した可能性が高い)。

上記で既に回答したように、ELB の「パブリック」ネットワークを指定する必要があります。これらのネットワークは、EC2 インスタンスが実行されている AZ からのものである必要があります。この場合、ELB インスタンスは EC2 インスタンスにアクセスできます (セキュリティ グループが正しく構成されている限り)。

于 2016-01-08T21:22:55.457 に答える
2

次の設定を追加する必要があります。

  1. パブリック サブネット ゾーン b = サーバー NAT
  2. プライベート サブネット ゾーン c = サーバー Web
  3. パブリックサブネットゾーン c = ELB

トリックはルーティングです:

  1. NAT へのルーターは、ゲートウェイ A に接続されています。
  2. Server Web へのルーターは NAT に接続されています。
  3. パブリック サブネットへのルーターは、ゲートウェイ A に接続されています。

ELB の詳細:

1.ゾーン: パブリック サブネット ゾーン c 2.インスタンス: サーバー Web 3.セキュリティ グループ: ポートを有効にする

http://docs.amazonaws.cn/en_us/ElasticLoadBalancing/latest/DeveloperGuide/UserScenariosForVPC.html

于 2015-05-30T03:00:32.300 に答える