インターネットから Amazon Virtual Private Cloud (Amazon VPC) 内の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに接続することができません。
簡単な説明
インターネットから Amazon EC2 インスタンスへの接続の問題は、通常、以下の設定に関連しています:
解決策
開始する前に、Amazon EC2 インスタンスがシステムステータスチェックとインスタンスステータスチェックに合格するかどうかを確認します。
ネットワークファイアウォールを使用している場合は、「ルールが期待どおりに機能しない場合の、ネットワークファイアウォールの問題をトラブルシューティングするにはどうすればよいですか?」をご参照ください
セキュリティグループを確認します
インスタンスの エラスティックネットワークインターフェース に関連付けられたセキュリティグループが、必要なポートからの接続を許可しているかをご確認ください。セキュリティグループはステートフルであるため、セキュリティグループの egress ルールを設定する必要はありません。
**重要:**本番環境では、特定の IP アドレス、またはアドレスの範囲のみにインスタンスへのアクセスを許可してください。テスト目的で、カスタム IP アドレス 0.0.0.0/0 を指定して、すべての IP アドレスが SSH または RDP を使用してインスタンスにアクセスできるようにします。
たとえば、SSH を使用してインターネットからインスタンスに接続する場合は、ポート 22 にルールを追加します。ルールがソース IP アドレスによるインスタンスへのアクセスを許可していることを確認します。誰でも接続できるようにするには、IP アドレス 0.0.0.0/0 にポート 80 を許可するルールを追加します。
ネットワーク ACL を確認します
ネットワーク ACL で以下の設定をご確認ください:
- VPC サブネットに関連付けられているネットワーク ACL では、必要なポートを経由するトラフィックを許可してください。詳細については、「ネットワーク ACL を使用してサブネットへのトラフィックを制御する」および「ルールの追加と削除」をご参照ください。
- インバウンドトラフィックおよびアウトバウンドトラフィックの両方を許可してください。ネットワーク ACL は、ステートレスです。許可されたインバウンドトラフィックへの応答にはアウトバウンドトラフィックのルールが適用されます。また、許可されたアウトバウンドトラフィックへの応答にはインバウンドトラフィックのルールが適用されます。
- アウトバウンド ACL に対して開かれたポートがエフェメラルポートのみであることをご確認ください。許可するのはユーザーに必要なポートのみにすることを推奨します。
**重要:**それでもインスタンスへのアクセスをトラフィックがブロックしている原因がわからない場合は、VPCフローログを有効にしてください。フローログは VPC を通過する IP アドレストラフィックをキャプチャします。フローログ内に拒否されたトラフィックがある場合は、セキュリティグループとネットワーク ACL の設定をもう一度ご確認ください。
ルートテーブルを確認します
インターネットゲートウェイが VPC にアタッチされているかどうかを確認するには、次の手順を実行します:
- Amazon VPC コンソールを開きます。
- ナビゲーションペインの [仮想プライベートクラウド] セクションで、[インターネットゲートウェイ] を選択してください。
- ユーザーの VPC に接続されているインターネットゲートウェイを検索します。また、アタッチされた VPC ID** (vpc-xxxxxxxx など)** を検索することもできます。
- インターネットゲートウェイの ID (igw-xxxxxxxxなど) を書き留めておきます。
インターネットゲートウェイがすでにユーザーの VPC にアタッチされている場合は、次の手順を実行します:
- VPC ルートテーブルで、インターネットゲートウェイへのルートを確認します。ターゲットがユーザーの VPC にアタッチされているインターネットゲートウェイの ID で、宛先が 0.0.0.0/0 であるルートエントリを探します。
- ルートが存在しない場合は、インターネットゲートウェイがターゲットで 0.0.0.0/0 を宛先とするルートエントリを追加します。
- サブネットルートテーブルにもインターネットゲートウェイへのルートエントリがあるかをご確認ください。このエントリが存在しないと、インスタンスはプライベートサブネットにあり、インターネットからアクセスすることはできません。
**注:**OS レベルのルートテーブルによってインターネットからのトラフィックが許可されているかをご確認ください。設定に応じて、route -n コマンド (Linux インスタンス) または netstat-rn コマンド (Linux インスタンスまたは Windows インスタンス) を使用します。
IP アドレスを確認します
- パブリック IP アドレスが VPC インスタンスに割り当てられている、または Elastic IPアドレスがインスタンスのネットワークインターフェイスにアタッチされていることをご確認ください。パブリック IP アドレスまたは Elastic IP アドレスが割り当てられていない場合は、割り当てます。
**注:**詳細については、「VPC とサブネットの IP アドレッス指定」と「Elastic IP アドレスの使用」をご参照ください。
- インスタンス上の OS レベルのソフトウェアまたはファイアウォールが、必要なポートを経由するトラフィックを許可しているかをご確認ください。
関連情報
EC2 インスタンスが NAT ゲートウェイを使用してインターネットにアクセスできないのはなぜですか?
Amazon VPC のインターネットワークトラフィックのプライバシー