私がよく受ける質問「VPC 内の EC2 から S3 等のパブリックエンドポイントを持つ AWS サービスへ Internet Gateway (IGW) を介して接続する際、通信はインターネットを経由するのか?」への回答を共有します。
本記事は、初学者向けの理解補助を目的としており、厳密な正確性よりも、イメージしやすい説明を優先します。
回答
VPC 内の EC2 インスタンスから S3 バケットへの IGW を介する通信は、インターネットを経由しません。この通信は、パブリック IP を使用しておこなわれますが、AWS グローバルネットワーク内で処理されます。
注意:
ここでの EC2 インスタンスは、パブリックサブネット構成であることを前提としています。
根拠・出典
この質問への回答は、AWS の 公式ドキュメント に書かれています。
又、Amazon VPC の FAQ にも次のように書かれています。
2 つのインスタンスがパブリック IP アドレスを使用して通信する場合、またはインスタンスがパブリックな AWS のサービスエンドポイントと通信する場合、トラフィックはインターネットを経由しますか?
いいえ。パブリック IP アドレスを使用する場合、AWS でホストされているインスタンスとサービス間のすべての通信は AWS のプライベートネットワークを使用します。AWS ネットワークから発信され、AWS ネットワーク上の送信先を持つパケットは、AWS 中国リージョンとの間のトラフィックを除いて、AWS グローバルネットワークにとどまります。
さらに、データセンターとリージョンを相互接続する AWS グローバルネットワークを流れるすべてのデータは、安全性が保証された施設を離れる前に、物理レイヤーで自動的に暗号化されます。すべての VPC クロスリージョンピアリングトラフィックや、カスタマーまたはサービス間のトランスポート層セキュリティ (TLS) 接続などといった追加の暗号化レイヤーもあります。
補足説明
パブリック IP は、IGW や NAT Gateway 経由の場合に使用します。エンドポイント経由の場合、インターネット向け IP は使用されません。
情報:
インターフェース・エンドポイントは、プライベート IP を使用します。ゲートウェイ・エンドポイントは、ルーティング制御であり、IP の概念はありません。
S3 バケットへのインターネットからのアクセスを制限し、VPC 内からのみの接続を許可する場合、アクセスポイントや PrivateLink を設定することをおすすめします。
クロスアカウントのシナリオでも、同様に AWS グローバルネットワーク内で処理されるため、通信はインターネットを経由しません。
クロスアカウントのシナリオで、インターネットからのアクセスを制限し、プライベート接続をおこなう場合、VPC エンドポイントやネットワーク接続構成を適切に組み合わせる必要があります。