AWS VPC の Internet Gateway と NAT Gateway の違いを整理する
VPCとインターネットを接続するInternet Gatewayと、プライベートサブネットから外向き通信を行うNAT Gatewayの役割を整理する
今日やったこと
- Internet GatewayとNAT Gatewayの役割を整理した
- Internet GatewayはVPCとインターネットを接続することを確認した
- NAT Gatewayは、プライベートサブネットから外部へ通信するために利用することを確認した
- NAT Gatewayを経由しても、インターネット側からプライベートEC2へ新しい接続は開始できないことを確認した
学んだこと
Internet Gatewayとは
Internet Gatewayは、VPCとインターネットを接続するためのゲートウェイ。
VPCにInternet Gatewayをアタッチし、パブリックサブネットのルートテーブルに次の経路を設定する。
送信先: 0.0.0.0/0
ターゲット: Internet Gateway
ただし、Internet Gatewayへのルートがあるだけでは、EC2がIPv4でインターネットと通信できるとは限らない。
主に以下の条件も必要になる。
- EC2にパブリックIPv4アドレスまたはElastic IPがある
- セキュリティグループで通信が許可されている
- ネットワークACLで通信が許可されている
Internet Gatewayは、パブリックIPを持つリソースとインターネットとの通信に使用する。
NAT Gatewayとは
NAT Gatewayは、プライベートサブネット内のリソースから、インターネットなどのVPC外部へ通信するために使用する。
代表的な用途は以下。
- EC2からOSの更新ファイルを取得する
- 外部APIへアクセスする
- パッケージリポジトリへ接続する
パブリックNAT Gatewayは、パブリックサブネットに配置し、Elastic IPを割り当てる。
プライベートサブネットのルートテーブルには、NAT Gatewayへの経路を設定する。
送信先: 0.0.0.0/0
ターゲット: NAT Gateway
通信経路
flowchart LR
Internet[インターネット]
IGW[Internet Gateway]
subgraph VPC
subgraph PublicSubnet[パブリックサブネット]
ALB[パブリックIPを使うリソース]
NAT[NAT Gateway]
end
subgraph PrivateSubnet[プライベートサブネット]
EC2[プライベートEC2]
end
end
Internet <--> IGW
IGW <--> ALB
EC2 --> NAT
NAT --> IGW
プライベートEC2からの通信は、次の経路を通る。
プライベートEC2
↓
NAT Gateway
↓
Internet Gateway
↓
インターネット
NAT Gatewayは、EC2のプライベートIPv4アドレスを自身のアドレスへ変換して通信する。
戻りの通信はEC2へ転送されるが、インターネット側からプライベートEC2へ新しい接続を開始することはできない。
違いを整理する
| 項目 | Internet Gateway | NAT Gateway |
|---|---|---|
| 主な役割 | VPCとインターネットを接続する | プライベートリソースの外向き通信を実現する |
| 関連付ける場所 | VPC | サブネットに作成 |
| 主な利用元 | パブリックIPを持つリソース | プライベートIPのみのリソース |
| 外向き通信 | 可能 | 可能 |
| インターネットからの新規接続 | 構成次第で可能 | プライベートリソースへは不可 |
| Elastic IP | Gateway自体には不要 | パブリックNAT Gatewayに必要 |
Internet GatewayとNAT Gatewayは組み合わせて使う
Internet GatewayとNAT Gatewayは、どちらか一方を選ぶものではない。
パブリックNAT Gatewayからインターネットへ通信するには、同じVPCのInternet Gatewayが必要になる。
Internet Gateway:
VPCとインターネットをつなぐ
NAT Gateway:
プライベートリソースの送信元アドレスを変換し、
Internet Gatewayまで通信を中継する
SAAでの判断基準
インターネットからアクセスを受けるALBなど
→ パブリックサブネット + Internet Gateway
プライベートEC2から外部へアクセスしたい
→ プライベートサブネット + NAT Gateway
インターネットからプライベートEC2へ直接接続させたくない
→ NAT Gatewayによる外向き通信
NAT Gatewayは外向き通信を可能にする仕組みであり、プライベートEC2をインターネットへ直接公開するものではない。
次にやること
- NAT Gatewayを複数のAvailability Zoneに配置する理由を整理する
- VPCエンドポイントとNAT Gatewayの使い分けを整理する
- ルートテーブルのルート選択方法を整理する
- ALBをパブリックサブネットへ配置する理由を整理する