Public SubnetとPrivate Subnetに異なるRoute Tableを関連付けたAWS公式図
Cloud Certification

Public SubnetとPrivate Subnetの違いとは?Route TableとInternet Gatewayまで図解

VPCとSubnetの関係を理解すると、次に気になるのがPublic SubnetとPrivate Subnetは何が違うのかという点です。

名前だけを見ると「Publicという種類のSubnet」「Privateという種類のSubnet」が最初から存在するように感じます。しかし実際には、普通のSubnetにどのような通信経路を設定したかによって呼び方が変わります。

この記事では、Public / Privateの違いを理解するために、Route TableとInternet Gatewayを順番につなげます。

Public SubnetとPrivate Subnetは「経路」で決まる

最初に結論を書くと、AWSではInternet Gatewayへの直接のルートを持つSubnetをPublic Subnetと呼びます。逆にInternet Gatewayへの直接ルートを持たないSubnetはPrivate Subnetとして扱われます。

Subnet
│
├─ Internet Gatewayへの直接ルートあり
│     → Public Subnet
│
└─ Internet Gatewayへの直接ルートなし
      → Private Subnet

つまり「Public Subnet」という専用製品を選ぶのではありません。同じSubnetでも、そのSubnetに関連付けた経路設定によって役割が変わります。

Route Tableは通信の「道路標識」

Route Table = 経路表です。Routeは「経路」、Tableは「表」なので、英語の意味をそのまま捉えると分かりやすい用語です。

Route Tableには、「この宛先への通信は、この行き先へ送る」というルールを書きます。車のナビや道路標識にたとえると、目的地ごとに使う道を決めているイメージです。

Destination(宛先) Target(送り先) 意味
10.0.0.0/16 local VPC内部の通信
0.0.0.0/0 Internet Gateway それ以外のIPv4通信をインターネット側へ送る

AWS公式では、各Subnetは必ず何らかのRoute Tableと関連付けられます。明示的に指定しなければ、そのVPCのMain Route Tableが使われます。

Public SubnetとPrivate Subnetに異なるRoute Tableを関連付けたAWS公式図

出典: AWS公式。Public Subnetに関連付くRoute TableにはInternet Gatewayへの経路があります。

Internet GatewayはVPCとインターネットをつなぐ門

Internet Gatewayは、名前の通りVPCとインターネットの間にある出入口です。略してIGWと書かれることがあります。

ただし、Internet GatewayをVPCに付けただけで、VPC内のすべてのリソースが自動的にインターネットへ出られるわけではありません。Route Tableに「この通信はInternet Gatewayへ送る」という経路が必要です。

Internet
   │
   ▼
Internet Gateway  ← 門
   ▲
   │ Route Table  ← 門までの道案内
   │
Public Subnet

この「門」と「道」を分けて考えると理解しやすくなります。Internet Gatewayは門、Route Tableはどの門へ進むかを決める道路標識です。

0.0.0.0/0は「すべてのIPv4宛先」

Route Tableで頻繁に見るのが0.0.0.0/0です。これはCIDRという表記で、すべてのIPv4アドレスを表します。

そのため、次のルートがある場合は「VPC内部などのより具体的な経路に該当しないIPv4通信は、Internet Gatewayへ送る」という意味になります。

Destination : 0.0.0.0/0
Target      : igw-xxxxx

ここで出てきたCIDRや/0の意味は、次の記事であらためて基礎から説明します。

Webシステムでは「入口だけPublic」にする構成も多い

初心者のうちは「ユーザーからアクセスされるAPIサーバーだからPublic Subnetに置く」と考えやすいですが、実際にはAPIサーバー本体をPrivate Subnetに置き、外から見える入口だけをPublic側へ出す構成もよく使われます。

Internet
   │
Internet Gateway
   │
Public Subnet
   │
Load Balancer  ← 外から見える入口
   │
Private Subnet
   │
API Server
   │
Private Subnet
   │
Database

この構成では、利用者はWebサイトやAPIを利用できますが、APIサーバーやDBへインターネットから直接アクセスさせる必要はありません。

Internet Gateway、Public Subnet、Application Load Balancer、Private Subnetの通信経路を示すAWS公式図

出典: AWS Prescriptive Guidance。インターネットからALBを経由してPrivate SubnetのEC2へ到達する例です。

まとめ:Public / PrivateはSubnetの名前ではなく設計結果

今回のポイントは、SubnetをPublicまたはPrivateにする専用スイッチがあるわけではないということです。

用語 役割
Route Table 通信をどこへ送るか決める経路表
Internet Gateway VPCとインターネットを接続する出入口
Public Subnet Internet Gatewayへの直接ルートを持つSubnet
Private Subnet Internet Gatewayへの直接ルートを持たないSubnet

次は、Route TableにもSubnetにも登場した10.0.0.0/16や0.0.0.0/0を読めるようにするため、CIDRの基本を整理します。

参考:AWS公式ドキュメント

コメントを残す

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