【AWS VPC】NAT Gatewayとは?役割・仕組みとIGWとの違いを初心者向けに解説

  • URLをコピーしました!

前の記事では、 パブリックサブネットとプライベートサブネット の違いについて学びました。

パブリックサブネットには インターネットゲートウェイ(IGW)へのルートがあり、 プライベートサブネットには IGWへの直接のルートがありません。

PUBLIC SUBNET 0.0.0.0/0 → IGW
PRIVATE SUBNET IGWへの直接ルートなし

しかし、ここで1つ疑問が出てきます。

プライベートサブネットのEC2から
インターネットへアクセスしたい場合はどうする?

たとえば、EC2からOSのアップデートを行ったり、 外部のパッケージをダウンロードしたりする場合、 インターネットへの通信が必要になることがあります。

そこで利用できるのが、 NAT Gatewayです。

☁ AWS INTERMEDIATE

この記事はAWS中級講座のレッスン5です。 プライベートサブネットから インターネットへ通信するための NAT Gatewayの仕組みを学びます。

AWS中級講座を見る →
LESSON GOAL この記事のゴール

NAT Gatewayの役割を理解し、 Private EC2 → NAT Gateway → IGW → Internet という通信経路と、 それぞれのルートテーブルの関係を 説明できるようになることを目指します。

目次

NAT Gatewayとは?

NAT Gatewayは、 ネットワークアドレス変換(NAT)を行う AWSのマネージドサービスです。

代表的な用途は、 プライベートサブネットにあるリソースから IPv4インターネットへ外向きに通信させること です。

PRIVATE SUBNET EC2
NAT NAT Gateway
GATEWAY IGW
DESTINATION Internet

プライベートサブネットのEC2は、 IGWへ直接通信するのではありません。

まずNAT Gatewayへ通信を送り、 そこからIGWを経由して インターネットへアクセスします。

Private EC2 → NAT Gateway → IGW → Internet

なぜNAT Gatewayが必要なのか?

プライベートサブネットは、 IGWへの直接のルートを持たないように設計します。

そのため、 EC2からIGWへ直接通信させることはできません。

PRIVATE EC2 10.0.2.10
×
INTERNET GATEWAY IGW

とはいえ、 プライベートサブネットのEC2でも インターネットへの通信が必要になるケースがあります。

01 OS UPDATE

OSの更新パッケージを取得する

02 PACKAGE

ソフトウェアをダウンロードする

03 EXTERNAL API

外部APIへアクセスする

このような場合、 EC2自体をパブリックサブネットへ移動させるのではなく、 NAT Gatewayを経由させる ことで外向き通信を実現できます。

インターネット側からPrivate EC2へ直接接続するためのものではない

NAT Gatewayを利用すると、 プライベートサブネットのEC2から インターネットへ通信できます。

しかし、 これはインターネット側から プライベートEC2への 未要求の新規接続を開始できるようにする仕組みではありません。

PRIVATE EC2 → Internet

外向き通信

× INTERNET → Private EC2

未要求の新規接続

EC2側から開始した通信に対する 戻りの通信はNAT Gatewayを経由して返ってきます。

PRIVATE EC2 Request
NAT GATEWAY NAT
INTERNET Server
← Response ←
POINT NAT Gatewayは 「Private EC2をインターネットへ公開するサービス」 ではない

プライベート側から開始した通信と その応答を成立させるために利用します。

NAT Gatewayはどこに配置する?

ここはNAT Gatewayを理解するうえで 非常に重要です。

インターネットへ接続する構成では、 パブリックNAT Gatewayを パブリックサブネットに配置します。

VPC 10.0.0.0/16
PUBLIC SUBNET 10.0.1.0/24
NAT Gateway

0.0.0.0/0

IGW

PRIVATE SUBNET 10.0.2.0/24
EC2

0.0.0.0/0

NAT Gateway

プライベートサブネットにあるEC2からの通信は、 パブリックサブネットにある NAT Gatewayへ送られます。

そしてNAT Gatewayから IGWを経由してインターネットへ通信します。

IMPORTANT EC2はPrivate、NAT GatewayはPublic

インターネット接続用のパブリックNAT Gatewayは、 IGWへ到達できる パブリックサブネットへ配置します。

パブリックNAT GatewayにはElastic IPを関連付ける

パブリックNAT Gatewayを作成する際には、 Elastic IPアドレス(EIP) を関連付けます。

PRIVATE EC2 10.0.2.10
NAT GATEWAY Elastic IP
INTERNET External Server

インターネットとの通信では、 NAT Gatewayに関連付けられた Elastic IPを利用して通信できます。

そのため、 プライベートEC2自身に パブリックIPv4アドレスを付与する必要はありません。

Private EC2にPublic IPv4を付けるのではなく、
NAT Gatewayを出口として利用する

プライベートサブネットのルートテーブル

では、 プライベートサブネットから NAT Gatewayへ通信を送るには どうすればよいのでしょうか。

ここでも重要になるのが、 ルートテーブルです。

Destination Target
10.0.0.0/16 local
0.0.0.0/0 nat-xxxxxxxx

ポイントは、 プライベートサブネットでは 0.0.0.0/0のターゲットをIGWではなく NAT Gatewayにすることです。

DESTINATION 0.0.0.0/0
TARGET NAT Gateway
Private Subnet:0.0.0.0/0 → NAT Gateway

NAT Gateway側にもIGWへの経路が必要

プライベートサブネットから NAT Gatewayへ通信を送るだけでは、 まだインターネットへ到達できません。

NAT Gatewayが配置されている パブリックサブネット側には、 IGWへのルートが必要です。

PRIVATE SUBNET 0.0.0.0/0 NAT Gateway
PUBLIC SUBNET 0.0.0.0/0 IGW

この2つのルーティングを組み合わせることで、 プライベートEC2から インターネットへ通信できます。

NAT Gatewayを使った通信経路を整理しよう

ここまでの内容を 1つの構成として整理します。

INTERNET Internet
↑↓
INTERNET GATEWAY IGW
↑↓
VPC 10.0.0.0/16
PUBLIC SUBNET 10.0.1.0/24
NAT Gateway

Route
0.0.0.0/0 → IGW

PRIVATE SUBNET 10.0.2.0/24
EC2

Route
0.0.0.0/0 → NAT

01

Private EC2が インターネット向け通信を開始

02

ルートテーブルによって NAT Gatewayへ転送

03

NAT Gatewayから IGWへ通信

04

IGWを経由して インターネットへ到達

IGWとNAT Gatewayの違い

IGWとNAT Gatewayは、 どちらもインターネット通信に関係するため 混同しやすいポイントです。

IGW NAT Gateway
主な役割 VPCとInternetを接続 NATによるアドレス変換
関連付け・配置 VPCへアタッチ サブネットに作成
代表的な用途 Public側のInternet接続 Private側からの外向き通信
Private EC2からの利用 直接は利用しない 代表的な出口として利用
POINT IGWとNAT Gatewayは競合するものではない

Private EC2からインターネットへ通信する構成では、 NAT GatewayとIGWを組み合わせて利用します。

理解度チェック:正しいルートを選んでみよう

次の構成を考えてみましょう。

PRIVATE SUBNET 10.0.2.0/24 EC2あり
PUBLIC SUBNET 10.0.1.0/24 NAT Gatewayあり

Private EC2から IPv4インターネットへ通信させたい場合、 プライベートサブネットの 0.0.0.0/0のターゲットは どこに設定すればよいでしょうか。

正しいターゲットを選択してください

Private EC2からの通信経路を思い出してみましょう。

実際の構成ではAZごとにNAT Gatewayを配置することも重要

ここまでは仕組みを理解しやすくするため、 NAT Gatewayを1つだけ配置した構成で説明しました。

しかし、 本番環境などで可用性を重視する場合は、 複数AZを利用し、AZごとにNAT Gatewayを配置する 構成が一般的です。

Availability Zone A
Public Subnet
NAT Gateway A
Private Subnet
EC2 A
Availability Zone B
Public Subnet
NAT Gateway B
Private Subnet
EC2 B

各プライベートサブネットから 同じAZにあるNAT Gatewayを利用することで、 1つのNAT GatewayやAZへの依存を避けやすくなります。

DESIGN POINT 可用性が重要ならAZごとにNAT Gatewayを検討する

NAT Gatewayは料金も発生するため、 可用性・通信経路・コストを考えて設計します。

通信経路ができても「誰でも通信できる」わけではない

ここまでで、 VPCの通信経路についてかなり理解できるようになりました。

01 VPC
02 Subnet
03 Route
04 IGW / NAT

しかし、 ネットワークでは 「通信経路が存在すること」と 「その通信が許可されていること」 は別です。

AWSでは、 通信を制御する代表的な仕組みとして Security GroupNetwork ACL(NACL) があります。

NEXT CONCEPT Security Group & Network ACL

次の記事では、 インスタンスレベルとサブネットレベルで 通信を制御する2つの仕組みの違いを学びます。

確認問題:NAT Gateway

QUESTION 01

NAT Gatewayの代表的な役割はどれですか?

正解:B

NAT Gatewayは、 プライベートサブネットのリソースから IPv4インターネットなどへ 外向き通信を行う際に利用できます。

QUESTION 02

インターネット接続用のパブリックNAT Gatewayは どこに配置しますか?

正解:C

パブリックNAT Gatewayは、 IGWへ到達できる パブリックサブネットへ配置します。

QUESTION 03

Private EC2からInternetまでの 代表的な通信経路として正しいものはどれですか?

正解:A

プライベートEC2からの通信は NAT Gatewayへ送られ、 その後IGWを経由して インターネットへ到達します。

YOUR SCORE 0 / 3

3問に挑戦してみましょう。

まとめ

01

NAT Gatewayは ネットワークアドレス変換を行う AWSのマネージドサービス

02

代表的にはPrivate側のリソースから 外向きIPv4通信 を行うために利用する

03

インターネット接続用のパブリックNAT Gatewayは パブリックサブネットへ配置する

04

Private側の代表的なルートは 0.0.0.0/0 → NAT Gateway

05

代表的な通信経路は Private EC2 → NAT Gateway → IGW → Internet

06

NAT Gatewayは インターネット側からPrivate EC2への 未要求の新規接続を可能にするものではない

NEXT LESSON AWS INTERMEDIATE 06

Security GroupとNACLの違いを理解する

ここまでで、 VPC・サブネット・ルートテーブル・IGW・NAT Gatewayを使った 通信経路を理解できるようになりました。

次は、 「その通信を許可するのか、拒否するのか」 というセキュリティについて学びます。

AWSのVPCで重要となる Security GroupとNetwork ACL(NACL) の違いを整理していきましょう。

Security GroupとNACLの違いを理解する
AWS INTERMEDIATE

AWS中級講座へ戻る

AWS中級講座の記事一覧から、 学習したいレッスンを確認できます。

← AWS中級講座へ戻る
目次