web-dev-qa-db-ja.com

VPCのプライベートサブネットのEC2インスタンスのAmazon ELB

Amazon EC2を使用していますが、インターネットに面したELB(ロードバランサー)をプライベートサブネット上の2つのインスタンスに配置したいと考えています。パブリックサブネットとプライベートサブネットでVPCを使用しています。

  • ELBにプライベートサブネットを追加しただけでは、接続は取得されません。
  • 両方のサブネットをELBに接続すると、インスタンスにアクセスできますが、多くの場合タイムアウトになります。 (スクリーンショット1を参照)
  • パブリックサブネットのみにアタッチすると、パブリックサブネットにインスタンスがないため、ELBにアタッチされたインスタンスはOutOfServiceを取得します。インスタンスカウントは0を示します。(スクリーンショット2を参照)

スクリーンショット1:両方のサブネットが接続されています Both subnets attached

スクリーンショット2:接続されたパブリックサブネットのみ Only public subnet attached

私の質問は、実際には この質問 の拡張です。受け入れられた回答に記載されている6つのステップをすべて実行した後、まだ打たれ、ELBにアタッチされたインスタンスがOutOfServiceを取得します。 EC2インスタンスとELBのセキュリティグループでポートを許可することも試みましたが、役に立ちませんでした。

助けてください、私はこれで頭を痛めています。

44
manish_s

他のSOあなたが参照した質問はスポットオンです。ダブル/トリプルは、次を確認してください

  • ELBにパブリックサブネットのみをアタッチする必要があります。これらのサブネットの可用性ゾーンが、インスタンスが存在するプライベートサブネットの可用性ゾーンと一致していることを確認してください。
  • インスタンスのセキュリティグループがロードバランサーのセキュリティグループからのアクセスを許可していることを確認してください
  • インスタンスでヘルスチェックがローカルで機能していることを確認してください。たとえば、ELBのヘルスチェックがHTTP:8080/health_check、インスタンスでcurl x.x.x.x:8080/health_check(ここでx.x.x.xはインスタンスのプライベートIPです)、200応答コードを取得します。
  • パブリックサブネットルーティングテーブルは0.0.0.0/0 VPCに接続されたインターネットゲートウェイに。
  • プライベートサブネットルーティングテーブルは、0.0.0.0/0からNATパブリックサブネット内のインスタンスまたはゲートウェイ
70
Ben Whaley

もう1つのSO質問も助けてくれました。私にとっては、サーバー(つまりApache)にソフトウェアをインストールする必要があることを忘れていました。NAT GWまたはソフトウェアのインストールを許可する他の方法を作成しないと失敗します。手間をかけずに自動化されたファッションを試したい場合は、スクリプトを試すことができます。

https://github.com/jouellnyc/AWS/tree/master/create_aws_vpc3

すでに多くの優れたドキュメントとディスカッションがありますが、以下に注意してください。

ELBから取得したHTTPコード:

  • 504-おそらくセキュリティグループ-インスタンスのポート80へのアクセスを許可します
  • 503-おそらく誤ったターゲットグループのセットアップ
  • 502-おそらく、Apache/Serverはb/cを実行していない。インストールされていないのは、ソフトウェアをインストールするnat gwや方法がないためです。
0
jouell