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 CIDR | TCP | 443 | ALLOW |
PUBLIC_IP | TCP | 1024-65535 | ALLOW |
アウトバウンドルール
| | | |
---|
送信先 | プロトコル | ポート範囲 | 許可/拒否 |
PUBLIC_IP | TCP | 443 | ALLOW |
VPC CIDR | TCP | 1024-65535 | ALLOW |
ネットワーク ACL の設定の詳細については、「Work with network ACLs」を参照してください。
関連情報
NAT gateways
Configure route tables