Private SubnetからPublic SubnetのNAT Deviceを経由してInternet Gatewayへ通信するAWS公式図
Cloud Certification

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へ通信を渡すこと自体は問題ありません。

Private SubnetからPublic SubnetのNAT Deviceを経由してInternet Gatewayへ通信するAWS公式図

出典: 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への経路も事前設定します。

Zonal NAT GatewayとRegional NAT Gatewayの違いを示すAWS公式図

出典: 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公式ドキュメント

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です