1. ホーム
  2. amazon-ec2

VPCにおけるAmazon ELB

2023-08-28 21:45:40

質問

Amazon EC2を使用しており、プライベートサブネットにある2つのインスタンスにELB(ロードバランサ)を設置したいと考えています。プライベートサブネットをELBに追加しただけでは、コネクションを取得できません。両方のサブネットをELBにアタッチすると、インスタンスにアクセスできますが、しばしばタイムアウトになります。VPCのプライベートサブネット内にELBを実装することに成功した方はいらっしゃいますか?もしそうなら、あなたはおそらく私に手順を説明することができますか?

ありがとうございます。

どのように解決するのですか?

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

amazon とのいくつかのやりとりの後、ELB は「パブリック」サブネット、つまり、インターネット ゲートウェイへのルートを持つサブネットにのみ配置されるべきであることがわかりました。私たちは、ウェブサーバーを私的なサブネットに置きたいのですが、ELBがそれらと話すことを許可しています。これを解決するためには、プライベートサブネットを持つ各アベイラビリティゾーンに、対応するパブリックサブネットを確保する必要がありました。そして、各アベイラビリティ ゾーンのパブリック サブネットを ELB に追加しました。

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

以下は、多かれ少なかれ私たちが行ったことです。

  1. WebServer-1 は、アベイラビリティゾーン us-east-1b の PrivateSubnet-1 で、web-server というセキュリティグループとともに動作しています。
  2. WebServer-2 は、アベイラビリティゾーンの us-east-1c にある PrivateSubnet-2 で、web-server というセキュリティグループで稼働しています。
  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-server グループで、elb-group からのポート 80 と 443 からのトラフィックを許可します。

お役に立てれば幸いです!