プライベートサブネット内の Amazon EC2 インスタンスが NAT ゲートウェイを使用してインターネットに接続できないのはなぜですか?

最終更新日: 2022 年 5 月 12 日

Amazon Elastic Compute Cloud (Amazon EC2) インスタンスからインターネットに接続するための NAT ゲートウェイを作成しました。インスタンスはプライベートサブネットで HTTP または HTTPS ポートを使用していますが、インターネットにアクセスできません。これを修正するにはどうすればよいですか?

解決方法

インスタンスが次の条件を満たしていることを確認します。

1.    パブリック IP アドレスを通じ、送信先に対し別のソースから ping を送信することで、その送信先が接続可能であること。

2.    NAT ゲートウェイの状態が、Available であること。NAT ゲートウェイが Failed 状態の場合は、NAT ゲートウェイの作成に失敗するを参照してください。

注意: ステータスが Failed となっている NAT ゲートウェイは、約 1 時間後に自動的に削除されます。

3.    NAT ゲートウェイがパブリックサブネット内に作成されていること、および パブリックルートテーブルインターネットゲートウェイを指すデフォルトルートがあることを確認します。

4.    プライベートサブネットのルートテーブルでは、デフォルトルートが NAT ゲートウェイをポイントしていること。

注意: プライベートサブネットとパブリックサブネットの両方で同じルートテーブルを使用していないことを確認してください。同じルートテーブルを使用すると、トラフィックがインターネットにルーティングされません。

5.    VPC で enableDnsSupport 属性が true に設定されていること。詳細については、VPC の DNS 属性の表示と更新を参照してください。

注意: DNS を有効にすると、DNS 解決障害を防止できます。

6.    ファイアウォールが、ポート 80 (HTTP トラフィック用) および 443 (HTTPS トラフィック用) 経由のトラフィックをブロックしていない。送信先ホストでファイアウォールがトラフィックをブロックしていることを確認します。次のコマンドを使用して、ファイアウォールをチェックできます。

$ telnet PUBLIC_IP TCP_PORT

7.    インスタンスの Elastic Network Interface に添付されているセキュリティグループが、ポート 80 と 443 へのアウトバウンドトラフィックを許可していること。詳細については、Linux インスタンス用の Amazon EC2 セキュリティグループWindows インスタンス用の Amazon EC2 セキュリティグループを参照してください。

8.    以下の例に、送信先 IP アドレス 0.0.0.0/0 を使用して、ポート 80 と 443 でのインバウンドおよびアウトバウンドトラフィックを許可するルールがあります。

  • インスタンスが配置されているプライベートサブネットに関連付けられたネットワークアクセスコントロールリスト (ACL)。
  • NAT ゲートウェイが配置されているパブリックサブネットに関連付けられたネットワーク ACL。

Amazon EC2 インスタンスが HTTPS ウェブサイトにアクセスできるようにするには、NAT ゲートウェイサブネットに関連付けられたネットワーク ACL に、以下のルールが必要です。

インバウンドルール

ソース プロトコル ポート範囲 許可/拒否
VPC CIDR TCP 443 ALLOW
PUBLIC_IP TCP 1024-65535 ALLOW

アウトバウンドルール

送信先 プロトコル ポート範囲 許可/拒否
PUBLIC_IP TCP 443 ALLOW
VPC CIDR TCP 1024-65535 ALLOW

ネットワーク ACL の詳細な設定方法については、ネットワーク ACL の操作を参照してください。


この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?