NAT GatewayはなぜPublic Subnetに置く?Internet Gatewayとの違いを初心者向けに図解
AWSのVPCを学んでいると、「Private Subnetのサーバーをインターネットへ出したいならNAT Gatewayを使う」という説明が出てきます。
ここまでは覚えやすいのですが、次に出てくる「NAT GatewayはPublic Subnetに置く」という説明で混乱しやすくなります。
Private Subnetから使うためのものなのに、なぜNAT Gateway自身はPrivate SubnetではなくPublic Subnetに置くのでしょうか。
この記事では、NATの正式名称から、Internet Gateway、Route Table、Public / Private Subnetとの関係までを一つにつなげて整理します。前半では、AWSで従来から使われてきたZonal Public NAT Gatewayを前提に説明します。
NATはNetwork Address Translationの略
NAT = Network Address Translationです。直訳すると「ネットワークアドレス変換」で、ここでいうアドレスは主にIPアドレスです。
AWSのNAT Gatewayを使うと、Private Subnet内のEC2などがVPC外へ通信できます。一方、インターネット側からPrivate Subnet内のリソースへ、勝手に新しい接続を開始する用途には使いません。
イメージとしては、Private Subnetのサーバーが直接自分の住所をインターネットへ見せるのではなく、NAT Gatewayが外向き通信の窓口になる形です。
Private SubnetのServer
│
│ 外へ通信したい
▼
NAT Gateway
│
▼
Internet Gateway
│
▼
Internet
重要なのは、通信はPrivate Subnet側から開始するという点です。外部サービスからPrivate Subnetのサーバーへ、NAT Gatewayを使って新規接続する仕組みではありません。
Internet GatewayはVPCとInternetをつなぐ「門」
Internet Gatewayは、VPCとインターネットを接続するための出入口です。
ただし、「Internet GatewayがVPCに付いている = VPC内の全リソースが自動的にインターネットへ出られる」という意味ではありません。
Subnetに関連付けられたRoute Tableに、Internet Gatewayへ向かうルートがあるかどうかが重要です。
Public SubnetのRoute Table 0.0.0.0/0 → Internet Gateway Private SubnetのRoute Table 0.0.0.0/0 → NAT Gateway
つまりInternet Gatewayは「門」、Route Tableは「どの門や中継地点へ進むかを決める道路標識」と考えると分かりやすくなります。
Private SubnetからPublic SubnetのNAT Gatewayには行ける
ここが今回いちばん混乱しやすかったポイントです。
「Private Subnet」と「Public Subnet」という名前を見ると、両者が完全に遮断された別空間のように感じます。しかし、同じVPC内にあるSubnet同士は、Route TableやSecurity Groupなどで禁止していなければVPC内部のネットワークとして通信できます。
Public / Privateという名前は、Subnet同士の読み書きを禁止する分類ではありません。
大きな違いは、Internet Gatewayへの直接ルートを持つかどうかです。
VPC
│
├─ Private Subnet
│ └─ API Server
│ │
│ └──────┐
│ ▼
└─ Public Subnet
└─ NAT Gateway
│
▼
Internet Gateway
そのため、Private Subnet内のAPI Serverから、同じVPC内のPublic SubnetにあるNAT Gatewayへ通信を渡すこと自体は問題ありません。

出典: AWS公式。Private Subnet内のリソースがPublic SubnetのNAT Deviceを経由して外部へ通信する基本構成。
なぜNAT GatewayをPublic Subnetに置くのか
従来型のZonal Public NAT Gatewayでは、NAT Gateway自身が最終的にInternet Gatewayへトラフィックを送れる必要があります。
Public Subnetには、通常次のようなRouteがあります。
0.0.0.0/0 → Internet Gateway
一方、Private SubnetにはInternet Gatewayへの直接ルートを置きません。Private Subnet側は代わりに、次のようにNAT Gatewayを指定します。
0.0.0.0/0 → NAT Gateway
ここで、もしZonal Public NAT GatewayをPrivate Subnetへ置いたとします。
そのSubnetにはInternet Gatewayへの直接ルートがないため、NAT GatewayがPrivate Subnetから受け取った通信をInternet Gatewayへ送るための経路がありません。
ではPrivate SubnetのRoute TableにInternet Gatewayへの直接ルートを追加すればよいのでしょうか。
そうすると、そのSubnetは「Internet Gatewayへの直接ルートを持つSubnet」になるため、ネットワーク設計上はPublic Subnetと呼ぶ状態になります。
つまり、Zonal Public NAT GatewayをPublic Subnetへ置く理由は、NAT GatewayからInternet Gatewayへ進める経路が必要だからです。
「NAT GatewayがInternetと通信する」の正確な意味
学習中は「NAT Gateway自身がInternetと通信する」と表現すると理解しやすい一方、もう少し正確にすると、NAT GatewayはPrivate Subnetから受け取った通信の送信元アドレスを変換し、Internet Gatewayへルーティングします。
Public NAT GatewayにはElastic IP Address(EIP)が関連付けられます。AWS公式ドキュメントでは、Internet GatewayがPublic NAT GatewayのPrivate IPv4 Addressを、そのNAT Gatewayに関連付けられたElastic IP Addressへマッピングすると説明されています。
つまり、役割を分けると次のようになります。
| 部品 | 役割 |
|---|---|
| Private Subnet | Internet Gatewayへ直接出さないリソースを置く |
| Route Table | Internet向け通信をNAT Gatewayへ送る |
| Public NAT Gateway | 送信元IPを変換し、外向き通信の中継点になる |
| Internet Gateway | VPCとInternetを接続する門 |
「Internet Gatewayが全部代わりにやってくれる」のではなく、NAT GatewayとInternet Gatewayで役割が分かれています。
外からPrivate Subnetへ直接入れないのがポイント
NAT Gatewayを使う目的は、Private SubnetをPublic Subnetへ変えることではありません。
たとえばPrivate Subnetに置いたAPI Serverが、OSパッケージを取得したり、外部APIを呼び出したりする場合、自分からInternetへ通信する必要があります。
その外向き通信はNAT Gateway経由で可能にしつつ、Internet側からAPI Serverへ未要求の新しい接続を開始させない、という構成にできます。
Private Server → Internet
OK
Internet → Private Server
NG(NAT Gatewayを入口としては使わない)
もちろん実際のアクセス可否にはSecurity GroupやNetwork ACLなども関係しますが、NAT Gatewayの基本的な役割としては「Private側から始めた外向き通信を成立させる」と捉えると分かりやすいです。
2026年現在はRegional NAT Gatewayもある
ここまでの説明は、従来型のZonal NAT Gatewayを前提にしています。
AWSは2025年11月にRegional NAT Gatewayを追加しました。Regional NAT GatewayはVPC単位で作成し、ワークロードに応じて複数Availability Zoneへ自動的に展開できます。
さらに大きな違いとして、Regional NAT GatewayではPublic Subnetを用意してNAT Gatewayを配置する必要がありません。AWSがRegional NAT Gateway専用のRoute Tableを作り、Internet Gatewayへの経路も事前設定します。

出典: AWS公式。左が従来型のZonal NAT Gateway、右がRegional NAT Gateway。
そのため2026年現在は、単純に「NAT Gatewayは必ずPublic Subnetに置く」と暗記すると不正確です。
学習時は次のように分けて覚えるとよいでしょう。
| 種類 | Public Subnet | 主な特徴 |
|---|---|---|
| Zonal Public NAT Gateway | 必要 | 従来型。AZ単位で配置し、Internet GatewayへのRouteが必要 |
| Regional NAT Gateway | 不要 | 複数AZへ自動展開でき、AWS側で専用Route Tableを管理 |
今回の学習ではまずZonal Public NAT Gatewayの仕組みを理解したことで、Route Table、Public / Private Subnet、Internet Gatewayの関係を一続きで把握できました。その上でRegional NAT Gatewayを知ると、「AWSが従来の構成のどこを自動化したのか」も理解しやすくなります。
まとめ
NAT Gatewayで最も重要なのは、単に「Private SubnetをInternetにつなぐもの」と暗記するのではなく、通信経路を順番に理解することです。
Private Subnet ↓ NAT Gateway ↓ Internet Gateway ↓ Internet
Zonal Public NAT Gatewayの場合、NAT GatewayをPublic Subnetに置くのは、NAT Gateway自身からInternet Gatewayへ向かうRouteが必要だからです。
そしてPrivate SubnetとPublic Subnetは完全に別世界ではなく、同じVPC内の異なる区画です。Private SubnetからPublic Subnet上のNAT Gatewayへ通信を渡すことができます。
この部分が理解できると、VPC、Subnet、Route Table、Internet Gateway、NAT Gatewayがようやく一つのネットワーク構成としてつながって見えるようになります。
前の記事: Public SubnetとPrivate Subnetの違いとは?Route TableとInternet Gatewayまで図解
参考:AWS公式ドキュメント
- NAT gateways – Amazon VPC
- Connect to the internet or other networks using NAT devices
- Example routing options
- Regional NAT gateways for automatic multi-AZ expansion
