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

所要時間2分
0

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

解決策

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

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

2. NAT ゲートウェイの状態が、Available であること。NAT ゲートウェイが Failed 状態の場合は、「NAT gateway creation fails」を参照してください。

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

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

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

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

5.VPC で enableDnsSupport 属性が true に設定されていること。詳細については、「View and update DNS attributes for your VPC」を参照してください。

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

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

$ telnet PUBLIC_IP TCP_PORT

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

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

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

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

インバウンドルール

ソースプロトコルポート範囲許可/拒否
VPC CIDRTCP443ALLOW
PUBLIC_IPTCP1024-65535ALLOW

アウトバウンドルール

送信先プロトコルポート範囲許可/拒否
PUBLIC_IPTCP443ALLOW
VPC CIDRTCP1024-65535ALLOW

ネットワーク ACL の設定の詳細については、「Work with network ACLs」を参照してください。


関連情報

NAT gateways

Configure route tables

AWS公式
AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ