▪️目的
AWSでVPCについて学んでいると、次に「サブネット(Subnet)」という言葉が出てきます。
VPCがAWS上の仮想ネットワークだとすると、サブネットはそのVPCの中に作成するネットワークです。
しかし、
- サブネットって何?
- VPCとは何が違うの?
- Public SubnetとPrivate Subnetって何?
- Availability Zone(AZ)とはどう関係するの?
- サブネットのCIDRってどう決めるの?
- ルートテーブルとはどう関係するの?
など、AWS初心者の方には分かりにくい部分も多いと思います。
そこで今回は、AWSのサブネットについて初心者向けに解説します。
▪️サブネットとは?
サブネットとは、VPCのIPアドレス範囲を分割して作成するネットワークです。
例えば、VPCに以下のCIDRを設定したとします。
10.0.0.0/16
このVPCの中に、さらにサブネットを作成できます。
例えば、
VPC
10.0.0.0/16
│
├─ Subnet A
│ 10.0.1.0/24
│
└─ Subnet B
10.0.2.0/24
という構成です。
つまり、
VPC → サブネット
という階層になっています。
▪️VPCとサブネットの違い
VPCとサブネットは似ているように見えますが、役割が異なります。
♦︎VPC
VPCは、AWS上に作成する大きな仮想ネットワークです。
VPC
10.0.0.0/16
♦︎サブネット
サブネットは、そのVPCの中をさらに分割したネットワークです。
VPC
10.0.0.0/16
│
├─ Subnet A
│ 10.0.1.0/24
│
└─ Subnet B
10.0.2.0/24
イメージとしては、
VPCが大きなネットワークの範囲で、サブネットがその中の区画
と考えると分かりやすいでしょう。
▪️なぜサブネットを作るの?
では、なぜVPCをさらにサブネットへ分割するのでしょうか。
大きなネットワークを用途ごとに分けることで、AWSリソースを整理したり、通信経路やアクセス制御を設計しやすくなります。
例えば、
VPC
│
├─ Public Subnet
│ └─ ALB
│
├─ Private Subnet
│ └─ EC2
│
└─ Private Subnet
└─ RDS
という構成にできます。
このように、
- 外部からアクセスを受けるリソース
- アプリケーションを実行するリソース
- データベース
などを異なるサブネットに分けることができます。
AWSでシステムを構築するときには、このようなネットワークの分離が非常に重要になります。
▪️サブネットのCIDR
サブネットを作成するときには、VPCのCIDRの中からサブネットのCIDRを指定します。
例えばVPCが、
10.0.0.0/16
だった場合、
10.0.1.0/24
10.0.2.0/24
10.0.3.0/24
などのサブネットを作成できます。
イメージすると、
VPC
10.0.0.0/16
│
├─ 10.0.1.0/24
├─ 10.0.2.0/24
├─ 10.0.3.0/24
└─ ...
というように、VPCのIPアドレス範囲をさらに細かく分割して利用します。
/16と/24の違い
ここでCIDRについて少し確認しておきましょう。
例えば、
10.0.0.0/16
と
10.0.1.0/24
では、利用できるIPアドレスの範囲が異なります。
/16は/24よりも大きなネットワーク範囲を表します。
そのため、
VPC
10.0.0.0/16
の中に、
Subnet
10.0.1.0/24
のような、より小さなネットワークを作ることができます。
CIDRの数字が大きくなるほど、一般的にはネットワークの範囲は小さくなります。
▪️サブネットにはAvailability Zoneを指定する
AWSのサブネットを理解するうえで、もう一つ重要なのが**Availability Zone(AZ)**です。
サブネットは、1つのAvailability Zoneに作成します。
例えば、
VPC
10.0.0.0/16
│
├─ Subnet A
│ └─ ap-northeast-1a
│
└─ Subnet B
└─ ap-northeast-1c
という構成にできます。
ここで、
ap-northeast-1aap-northeast-1c
は、それぞれ異なるAvailability Zoneです。
つまり、
1つのサブネットを複数のAZにまたがって作ることはできません。
必要であれば、複数のAZにそれぞれサブネットを作成します。
▪️なぜ複数のAZにサブネットを作るの?
これはAWSで高可用性を実現するうえで非常に重要です。
例えば、1つのAZだけにEC2を配置すると、そのAZで障害が発生した場合にシステムへ影響が出る可能性があります。
そこで、
VPC
│
├─ AZ-a
│ └─ Subnet A
│ └─ EC2
│
└─ AZ-c
└─ Subnet B
└─ EC2
のように複数のAZへ分散させることができます。
さらにロードバランサーなどを組み合わせることで、
Internet
│
↓
ALB
↙ ↘
AZ-a AZ-c
↓ ↓
EC2 EC2
のような構成を作ることができます。
これにより、単一のAZに依存しない構成を作りやすくなります。
▪️Public Subnetとは?
AWSでは、
Public Subnet
という言葉がよく使われます。
ただし、「Public Subnet」という専用の設定が存在するわけではありません。
一般的には、
インターネットゲートウェイへのルートを持つルートテーブルが関連付けられたサブネット
をPublic Subnetと呼びます。
例えば、
Internet
│
↓
Internet Gateway
│
↓
Public Subnet
│
↓
EC2
という構成です。
ただし、サブネットがPublicだからといって、そこに配置されたすべてのリソースが自動的にインターネットからアクセス可能になるわけではありません。
例えばEC2の場合、パブリックIPv4アドレスや適切なセキュリティグループなども関係します。
▪️Private Subnetとは?
一方、Private Subnetは、一般的にインターネットゲートウェイへ直接通信するためのルートを持たないサブネットを指します。
例えば、
VPC
│
├─ Public Subnet
│ └─ ALB
│
└─ Private Subnet
└─ EC2
のような構成です。
Webシステムなどでは、外部から直接アクセスさせる必要のないアプリケーションサーバーやデータベースをPrivate Subnetに配置することがあります。
▪️Private Subnetからインターネットへアクセスするには?
ここで、
「Private Subnetはインターネットにアクセスできないの?」
という疑問が出てくるかもしれません。
実際には、Private Subnetに配置されたリソースから、インターネットへのアウトバウンド通信が必要になる場合があります。
例えば、
- OSのパッケージをダウンロードする
- 外部APIへアクセスする
- ソフトウェアを取得する
などです。
このような場合には、一般的にNAT Gatewayなどを利用します。
イメージすると、
Private Subnet
│
↓
NAT Gateway
│
↓
Internet Gateway
│
↓
Internet
という通信経路になります。
NAT Gatewayについては別の記事で詳しく解説します。
▪️サブネットとルートテーブルの関係
サブネットを理解するうえで、ルートテーブルも重要です。
ルートテーブルには、
「この宛先への通信をどこへ送るか」
というルーティング情報が設定されています。
例えばPublic Subnetに関連付けられたルートテーブルに、
宛先 ターゲット
10.0.0.0/16 local
0.0.0.0/0 Internet Gateway
というルートがあるとします。
この場合、
VPC内部
↓
local
インターネット
↓
Internet Gateway
という経路になります。
そのため、このようなサブネットを一般的にPublic Subnetとして扱います。
▪️サブネットとSecurity Groupの違い
サブネットを学んでいると、Security Groupとの違いも気になると思います。
役割が違います。
サブネット
ネットワークを分割するための単位
VPC
│
├─ Subnet A
└─ Subnet B
Security Group
リソースへの通信を制御する仕組み
Internet
│
↓
Security Group
│
↓
EC2
つまり、
サブネット = ネットワークの区画
Security Group = 通信を許可・制御する仕組み
と考えると分かりやすいでしょう。
▪️サブネットには5つのIPアドレスが予約されている
AWSのサブネットでは、サブネットのIPアドレスのうち5つがAWSによって予約されています。
例えば、
10.0.1.0/24
のサブネットでは、256個のIPv4アドレスがあります。
しかし、そのすべてをEC2などに自由に割り当てられるわけではありません。
AWSではサブネットごとに5つのIPv4アドレスが予約されています。
そのため、一般的なIPv4サブネットでは、
256個
↓
5個はAWSが予約
↓
251個が利用可能
となります。
サブネットサイズを設計するときには、この点にも注意が必要です。
▪️実際のAWSシステムではどう使う?
ここまでの内容を、実際のWebシステムに当てはめてみましょう。
例えば、
Internet
│
↓
ALB
┌──────┴──────┐
↓ ↓
AZ-a AZ-c
Public Subnet Public Subnet
│ │
└──────┬──────┘
↓
EC2
Private Subnet
│
↓
RDS
Private Subnet
のような構成を考えることができます。
この構成では、
- VPC:システム全体のネットワーク
- Public Subnet:外部からの通信を受ける領域
- Private Subnet:外部から直接アクセスさせたくない領域
- AZ:障害に備えて異なる場所へ分散
- ALB:ユーザーからのリクエストを受け付ける
- EC2:アプリケーションを実行
- RDS:データベースを提供
という役割分担になります。
このように、サブネットは単にIPアドレスを分割するだけではなく、システムのネットワーク設計や可用性・セキュリティにも関係する重要な要素です。
▪️サブネットを設計するときに考えること
実際にAWSでサブネットを設計するときには、単純に「適当に/24にする」というわけではありません。
例えば、
- どれくらいのIPアドレスが必要なのか
- PublicとPrivateをどう分けるか
- 複数のAZへどう配置するか
- 将来的にリソースが増えてもIPアドレスが足りるか
- どのサブネットにどのAWSリソースを配置するか
- どのようなルーティングにするか
などを考える必要があります。
特にAWSでは、後からサブネットのCIDRを自由に変更することが難しいため、最初のネットワーク設計が重要になります。
▪️まとめ
今回はAWSのサブネットについて解説しました。
今回のポイントをまとめます。
- サブネットはVPCの中に作成するネットワーク
- VPCのCIDRをさらに分割してサブネットを作る
- サブネットにはCIDRを指定する
- サブネットは1つのAvailability Zoneに作成する
- 高可用性を考える場合は複数のAZにサブネットを配置する
- Public Subnetは一般的にInternet Gatewayへのルートを持つ
- Private Subnetは一般的にInternet Gatewayへの直接のルートを持たない
- Private Subnetから外部へ通信する場合はNAT Gatewayなどを利用する
- サブネットにはルートテーブルを関連付ける
- Security Groupはサブネットではなくリソースへの通信を制御する
- AWSではサブネットごとに5つのIPv4アドレスが予約されている
VPCが「AWS上の大きなネットワーク」だとすると、サブネットはその中を用途や配置場所に応じて分けた「ネットワークの区画」です。
VPCとサブネットを理解すると、AWSのネットワーク構成図がかなり読みやすくなります。
次の記事では「ルートテーブル」について解説します。
*「ルートテーブル」の記事はこちら
→「https://lovelabengineer.com/2026/10/07/awsのルートテーブルとは?通信経路を決める仕組/」

No responses yet