AWS Elastic Beanstalk 環境を作成しようとすると、「通信に失敗しました」というエラーメッセージが表示されます。
簡単な説明
Amazon Elastic Compute Cloud (Amazon EC2) インスタンスは、Elastic Beanstalk やその他のサービスエンドポイントへのアウトバウンド接続を開始するように設定する必要があります。
アウトバウンド接続なしで Elastic Beanstalk 環境を作成しようとすると、次のエラーメッセージが表示されます。
"The EC2 instances failed to communicate with AWS Elastic Beanstalk, either because of configuration problems with the VPC or a failed EC2 instance.Check your VPC configuration and try launching the environment again."
このエラーを解決するには、以下のいずれかのエンドポイントを介してアウトバウンド接続を開始するように EC2 インスタンスを設定していることを確認します。
解決策
パブリックサブネットに設定された EC2 インスタンスの場合
インスタンスがインターネットに接続できない場合は、インターネットゲートウェイが VPC にアタッチされていることを確認してください。また、ルートテーブルにインターネットゲートウェイを宛先とする 0.0.0.0/0 のルートが設定されていることを確認してください。
パブリックサブネットが、このデフォルトルートを備える正しいルートテーブルに関連付けられていることを確認してください。
AWS サービスと通信し、パッケージをダウンロードするには、インスタンスでアウトバウンド HTTPS (443) および HTTP (80) アクセスを許可するよう設定する必要があります。セキュリティグループが 0.0.0.0/0 へのポートにおけるアウトバウンドトラフィックを許可していることを確認します。インバウンドトラフィックについては、ロードバランサーからアプリケーションポート上のインスタンスへのアクセスを許可します。
カスタムネットワークアクセスコントロールリスト (ACL) を使用している場合は、ポート 80 とポート 443 でアウトバウンドトラフィックを許可し、エフェメラルポート (1024-65535) でインバウンドリターントラフィックを許可していることを確認してください。すべてのトラフィックを許可するため、デフォルトのネットワーク ACL を使用することがベストプラクティスです。
プライベートサブネットに設定された EC2 インスタンスの場合
Elastic IP アドレスとアタッチされたパブリックサブネットに NAT ゲートウェイをデプロイする必要があります。プライベートサブネットの 0.0.0.0/0 ルートテーブルが NAT ゲートウェイを指していること、また、パブリックサブネット (NAT ゲートウェイが存在する) の 0.0.0.0/0 ルートがインターネットゲートウェイを指していることを確認します。詳細については、『NAT ゲートウェイのトラブルシューティング』を参照してください。
ルートが欠落している、あるいはルートが正しくない場合、接続障害が発生している可能性があります。この問題を解決するには、プライベートサブネットが 0.0.0.0/0 トラフィックを NAT ゲートウェイにルーティングしていること、および NAT ゲートウェイのパブリックサブネットが 0.0.0.0/0 トラフィックをインターネットゲートウェイにルーティングしていることを確認してください。
プライベートインスタンスが AWS サービスにアクセスしてパッケージをダウンロードするには、ポート 80 と 443 でアウトバウンドアクセス許可を設定する必要があります。NAT ゲートウェイではなく NAT インスタンスを使用している場合は、プライベートサブネットからのインバウンドトラフィックとインターネットへのアウトバウンドトラフィックを許可するように、NAT インスタンスのセキュリティグループを設定していたことを確認してください。
正しいルーティングを使用しても、適切な DNS 設定がなければ、インスタンスは AWS サービスエンドポイントを解決できません。この問題を解決するには、DNS 解決策と DNS ホスト名を有効にします。
VPC エンドポイントを介して設定された EC2 インスタンスの場合
環境を正しく起動するには、次の VPC エンドポイントを設定したことを確認します。
- Amazon Simple Queue Service (Amazon SQS)
- AWS CloudFormation
- Elastic Beanstalk (elasticbeanstalk.region.amazonaws.com)
- Elastic Beanstalk Health (elasticbeanstalk-health.region.amazonaws.com)
- Amazon Simple Storage Service (Amazon S3) のゲートウェイエンドポイント
**注: **環境が他の AWS サービスと連携する必要がある場合は、それらのサービスに VPC エンドポイントを作成します。
VPC エンドポイントには、インスタンスサブネットからの HTTPS (443) トラフィックを許可するセキュリティグループが必要です。VPC エンドポイント用のセキュリティグループを作成し、プライベートサブネットの CIDR ブロックまたはインスタンスセキュリティグループからのポート 443 のインバウンドトラフィックを許可するルールを設定してください。
インターフェイスエンドポイントでプライベート DNS を有効化し、VPC で DNS 解決および DNS ホスト名が有効になっていることを確認してください。
関連情報
プライベートサブネットの Amazon EC2 インスタンスが NAT ゲートウェイを使用してインターネットに接続できない理由を知りたいです。