▪️目的
AWSでネットワークを構築していると、「NAT Gateway(NATゲートウェイ)」というサービスが登場します。
NAT Gatewayは、プライベートサブネットに配置したEC2などのリソースから、インターネットへアクセスするときに利用されるサービスです。
例えば、プライベートサブネットに配置したEC2から、
- ソフトウェアをダウンロードする
- 外部APIへアクセスする
- インターネット上のサービスへ通信する
といったことを行いたい場合に、NAT Gatewayが利用されます。
この記事では、NAT Gatewayとは何なのか、なぜ必要なのか、Internet Gatewayとは何が違うのかを、AWS初心者向けに解説します。
▪️NAT Gatewayとは?
NAT Gatewayとは、プライベートサブネットにあるリソースからインターネットへアクセスするためのAWSのマネージドサービスです。
NATは、
Network Address Translation
の略で、ネットワークアドレスを変換する仕組みを意味します。
例えば、プライベートサブネットにEC2を配置するとします。
VPC
│
├─ Public Subnet
│
└─ Private Subnet
│
└─ EC2
このEC2には、例えば、
10.0.2.10
のようなプライベートIPアドレスが割り当てられます。
このEC2からインターネットへアクセスしたい場合、NAT Gatewayを利用して、
EC2
↓
NAT Gateway
↓
Internet Gateway
↓
インターネット
という経路を作ります。
▪️なぜNAT Gatewayが必要なの?
ここで、
「Internet Gatewayがあるなら、NAT Gatewayはいらないのでは?」
と思うかもしれません。
しかし、Internet GatewayとNAT Gatewayでは役割が異なります。
Internet Gatewayは、VPCとインターネットの通信を可能にするためのゲートウェイです。
一方、NAT Gatewayは、プライベートサブネットにあるリソースがインターネットへアクセスするための中継役として利用します。
例えば、以下のような構成を考えてみます。
VPC
│
├─ Public Subnet
│ └─ EC2
│
└─ Private Subnet
└─ EC2
Public SubnetのEC2は、構成によってはインターネットと直接通信できます。
一方、Private SubnetのEC2は、インターネットから直接アクセスされないように構成することができます。
それでもPrivate SubnetのEC2から、
インターネット
へアクセスしたい場合があります。
そこでNAT Gatewayを利用します。
▪️NAT Gatewayはどこに配置する?
NAT Gatewayは、基本的にPublic Subnetに配置します。
例えば、以下のような構成です。
VPC
│
├─ Public Subnet
│ └─ NAT Gateway
│
└─ Private Subnet
└─ EC2
「インターネットへ出ていくためのものなのに、なぜPublic Subnetに置くの?」
と思うかもしれません。
NAT Gateway自身がインターネットへ通信できる必要があるからです。
そのため、NAT Gatewayを配置するPublic Subnetには、Internet Gatewayへ向かうルートを持つRoute Tableを関連付けます。
例えば、
Destination Target
10.0.0.0/16 local
0.0.0.0/0 Internet Gateway
という設定です。
▪️Private Subnetからインターネットへ通信する仕組み
では、Private SubnetにあるEC2からインターネットへアクセスする場合を見てみましょう。
例えばEC2のプライベートIPアドレスが、
10.0.2.10
だったとします。
このEC2からインターネット上のWebサイトへアクセスします。
通信は、以下のような経路を通ります。
EC2
↓
Private Subnet
↓
Route Table
↓
NAT Gateway
↓
Internet Gateway
↓
インターネット
ここで重要なのが、Private SubnetのRoute Tableです。
Private SubnetのRoute Tableには、例えば以下のようなルートを設定します。
Destination Target
10.0.0.0/16 local
0.0.0.0/0 NAT Gateway
この、
0.0.0.0/0 → NAT Gateway
によって、
「VPC内部以外の宛先への通信は、NAT Gatewayへ送る」
という経路を作ります。
▪️NAT Gatewayによるアドレス変換
NAT Gatewayの重要な役割の一つが、アドレス変換です。
例えば、Private SubnetのEC2から、
送信元:10.0.2.10
宛先:インターネット上のサーバー
へ通信するとします。
プライベートIPアドレスはインターネット上ではそのまま利用できないため、NAT Gatewayを経由します。
NAT Gatewayでは、プライベートIPアドレスから、NAT Gatewayに関連付けられたパブリックIPアドレスへ変換してインターネットへ通信します。
イメージとしては、
EC2
10.0.2.10
↓
NAT Gateway
↓
パブリックIP
↓
Internet Gateway
↓
インターネット
という流れです。
そのため、インターネット側から見ると、Private SubnetのEC2ではなく、NAT Gateway側のパブリックIPアドレスから通信しているように見えます。
▪️NAT Gatewayからの戻りの通信
では、インターネット側からレスポンスが返ってきた場合はどうなるのでしょうか。
NAT Gatewayは、送信時のアドレス変換情報を利用して、戻ってきた通信を元のEC2へ対応付けます。
イメージとしては、
EC2
10.0.2.10
↓
NAT Gateway
↓
Internet
↓
レスポンス
↓
NAT Gateway
↓
EC2
10.0.2.10
となります。
このため、Private SubnetのEC2から外部サービスへアクセスし、そのレスポンスを受け取るといった通信が可能になります。
▪️Internet Gatewayとの違い
NAT GatewayとInternet Gatewayは、どちらもAWSのネットワーク構成で登場するため、混同しやすいです。
それぞれの役割を整理してみましょう。
| 項目 | Internet Gateway | NAT Gateway |
|---|---|---|
| 主な役割 | VPCとインターネットを接続 | Private Subnetからインターネットへ接続 |
| 配置 | VPCにアタッチ | Public Subnet |
| 主な利用対象 | VPC内のリソース | Private Subnetのリソース |
| アドレス変換 | NAT Gatewayとは役割が異なる | NATを行う |
| AWS管理 | AWSマネージド | AWSマネージド |
特に覚えておきたいのは、
Internet Gateway
↓
VPCとインターネットを接続する
NAT Gateway
↓
Private Subnetからインターネットへアクセスするための中継役
という違いです。
▪️NAT Gatewayがあるから外部からアクセスできるわけではない
ここは重要なポイントです。
NAT Gatewayを使うことで、
Private Subnet
↓
インターネット
という通信ができるようになります。
しかし、
インターネット
↓
NAT Gateway
↓
Private Subnet
という形で、インターネットからPrivate SubnetのEC2へ直接アクセスできるようになるわけではありません。
NAT Gatewayは、基本的にPrivate Subnetから外部への通信を可能にするために利用するものです。
そのため、インターネットから直接アクセスさせたくないアプリケーションサーバーなどをPrivate Subnetに配置する構成で利用されます。
▪️NAT GatewayとSecurity Group
NAT Gatewayを構築したからといって、必ず通信できるわけではありません。
AWSの通信では、Route Tableだけではなく、Security Groupなどの設定も関係します。
例えば、Private SubnetのEC2からHTTPS通信を行う場合、
EC2
↓
TCP 443
↓
NAT Gateway
↓
Internet
という通信になります。
このとき、EC2のSecurity Groupで必要なOutbound通信が許可されている必要があります。
また、通信できない場合には、
- Route Table
- NAT Gateway
- Internet Gateway
- Security Group
- Network ACL
- DNS
などを確認する必要があります。
▪️NAT Gatewayを利用した構成例
ここまでの内容を、実際のAWSネットワーク構成として見てみましょう。
Internet
│
│
Internet Gateway
│
┌──────────────┴──────────────┐
│ │
Public Subnet Private Subnet
│ │
NAT Gateway EC2
↑ │
│ │
└─────────────────────────────┘
Route Tableまで含めると、より具体的になります。
Public Subnet
│
└─ Route Table
└─ 0.0.0.0/0 → Internet Gateway
│
↓
NAT Gateway
↑
│
Private Subnet
│
├─ Route Table
│ └─ 0.0.0.0/0 → NAT Gateway
│
└─ EC2
Private SubnetのEC2からインターネットへアクセスすると、
EC2
↓
Private Route Table
↓
NAT Gateway
↓
Public Route Table
↓
Internet Gateway
↓
Internet
という経路になります。
▪️Webシステムではどのように使われる?
NAT Gatewayは、Webシステムなどでもよく利用されます。
例えば、
Internet
│
↓
Internet Gateway
│
↓
Public Subnet
│
ALB
│
↓
Private Subnet
│
Application
Server
│
↓
NAT Gateway
│
↓
Internet
という構成です。
この構成では、
ユーザー → ALB
の通信はインターネットから入ってきます。
一方、
アプリケーションサーバー → 外部API
などの通信は、NAT Gatewayを経由してインターネットへ出ていきます。
つまり、
外から中
Internet
↓
ALB
↓
Private Subnet
中から外
Private Subnet
↓
NAT Gateway
↓
Internet
というように、通信方向によって利用する仕組みが異なります。
▪️NAT Gatewayの料金にも注意
NAT Gatewayは便利なサービスですが、利用料金が発生します。
特に、大量のデータをNAT Gateway経由で通信すると、NAT Gatewayの利用料金やデータ処理料金が増える可能性があります。
そのため、AWSの設計では、
「とりあえず全部NAT Gatewayを通せばいい」
という考え方ではなく、
本当にNAT Gatewayを経由する必要がある通信なのか
を考えることも重要です。
例えば、AWSサービスへのアクセスでは、用途によってVPC Endpointを利用することで、NAT Gatewayを経由しない構成を検討できます。
▪️まとめ
今回はNAT Gatewayについて解説しました。
NAT Gatewayは、Private Subnetにあるリソースからインターネットへアクセスするために利用するAWSマネージドサービスです。
基本的な通信経路は、
Private EC2
↓
Private SubnetのRoute Table
↓
NAT Gateway
↓
Internet Gateway
↓
Internet
となります。
また、NAT Gatewayは通常Public Subnetに配置します。
Public Subnet
└─ NAT Gateway
Private Subnet
└─ EC2
そして、Private SubnetのRoute Tableで、
0.0.0.0/0 → NAT Gateway
と設定することで、Private SubnetからNAT Gatewayへ通信を送れるようにします。
Internet GatewayとNAT Gatewayは似ているようで役割が異なります。
Internet Gateway
→ VPCとインターネットを接続
NAT Gateway
→ Private Subnetからインターネットへ通信するための中継
この違いを押さえておくと、AWSのネットワーク構成がさらに理解しやすくなります。
次回は、AWSで通信の許可・拒否を行う「Security Group」について解説します。
次の記事では「セキュリティグループ(SG)」について解説します。
*「セキュリティグループ(SG)」の記事はこちら
→「https://lovelabengineer.com/2026/10/08/awsのセキュリティグループ(security-group)とは?通信を制/」

No responses yet