AWS のインターネット ゲートウェイについて混乱しています。VPC がインターネットにアクセスするには IGW が必要であると記載されているのに、なぜ EIP を使用して EC2 インスタンスを作成すると自動的にインターネットにアクセスできるのでしょうか。
私には答えられない質問があります:
AWS ドキュメントには、VPC がインターネットにアクセスするにはインターネットゲートウェイが必要であると記載されているのに、AWS で EC2 インスタンス (デフォルトの VPC で作成) を作成し、Elastic IP を割り当てると、自動的にインターネットにアクセスできるようになるのはなぜでしょうか。
答え1
VPC では、インターネットと通信するためにインターネット ゲートウェイ (IGW) が必要です。仮想プライベート ゲートウェイ (VPN エンドポイント) を使用すると、VPN 経由で企業ネットワークなどの他のネットワークと通信でき、インターネット接続が可能になります。VPC エンドポイントと PrivateLink は、通常はインターネット経由の S3 へのプライベート接続など、その他の限定的な接続を提供します。
インターネットゲートウェイがなくても、パブリックIPアドレスを自動割り当てすることができます。VPCにインターネットゲートウェイがない場合にインスタンスにElastic IPを割り当てようとすると、割り当てることができません。エラーメッセージは次のようになります。
ネットワーク vpc-05054501693f2f5fb はどのインターネット ゲートウェイにも接続されていません
EIP を持つインスタンスがある VPC からインターネットゲートウェイをデタッチしようとすると、このエラー メッセージが表示されます。
念のため、これらすべてをテストしてみました。VPC を作成して少しいじるのに 10 分しかかかりませんでした。クラウド / AWS のすばらしいところは、試してみるだけで簡単に解決できることです。おそらく 0.05 ドルかかりました。
答え2
VPC 内のインスタンスから直接インターネットにアクセスするには、次のものが必要です。
- VPCに接続されたインターネットゲートウェイ(IGW)
- IGW 経由のデフォルト ルート (0.0.0.0/0) を持つルート テーブルを持つサブネット (「パブリック サブネット」と呼ばれる)
- インスタンスにアタッチされたパブリック IP または Elastic IP (インターネットにアクセスするために Elastic IP は必要ないことに注意してください。インスタンスには動的な非 Elastic IP を設定できます)
- インスタンスにアタッチされたセキュリティグループで、送信トラフィックを許可します(デフォルトで許可されます)。
- トラフィックを許可するサブネットに関連付けられたネットワーク ACL (デフォルトで許可されます)
これら 5 つのポイントは、パブリック サブネット内のインスタンスへの直接インターネット接続で問題が発生した場合に実行すると便利なチェックリストです。
質問では、「デフォルト VPC」へのデプロイメントについて言及されていますが、デフォルト VPC にはすでにインターネット ゲートウェイと、適切なルート テーブルが設定されたサブネットがあるため、設定する必要はありません。
また、「プライベート サブネット」から間接的にインターネットにアクセスすることもできます。プライベート サブネットとは、IGW 経由のデフォルト ルートを持たないサブネットのことです。これを行うにはさまざまな方法がありますが、一般的な方法の 1 つは、別のパブリック サブネット (つまり、IGW 経由のデフォルト ルートを持つルート テーブルを持つサブネット) に NAT ゲートウェイ サービスを展開し、次にプライベート サブネットの新しいルート テーブルを NAT ゲートウェイ経由のデフォルト ルート (0.0.0.0/0) で定義することです。これにより、直接ではなく NAT ゲートウェイ経由でインターネットへのアウトバウンド アクセスが可能になります。その時点では、プライベート サブネット内のインスタンスにはパブリック IP も Elastic IP もありません。
詳細は以下をご覧ください:インターネットゲートウェイ
そしてここ:NAT ゲートウェイ