AWSのVPCとCIDRをまとめてみた
はじめに
AWSを使い始めてVPCを作っていたとき、ふと気になったことがありました。
「異なるVPCに同じCIDRを設定していいの?」
「そもそも、VPCのIPアドレスってどこで見るの?」
今回は、こういった素朴な疑問をきっかけに、VPCの基本・CIDRの仕組み・Public/Privateサブネット・NAT GatewayとALBの違いについて、初心者にもわかりやすく整理してみました。
そもそもVPCとは?
VPC(Virtual Private Cloud)とは、AWS上に構築できる仮想的なネットワーク空間のことです。仮想化技術を用いることで、クラウド上に自分専用のネットワークの“箱”を作ることができます。
このVPC内にはEC2やRDSなどのAWSサービスを配置でき、IPアドレスの割り当て、サブネットへの分割、外部との通信制御(ルートテーブルやセキュリティグループなど)を行うことが可能です。
つまり、VPCを使うことで、クラウド上でもオンプレミスのようにネットワーク構成を自由に設計・制御できるようになり、セキュアかつ柔軟なインフラ構築が実現できます
VPCに「IPアドレス」はない?
結論からいうと、VPCには1つのIPアドレスが割り当てられているわけではありません。
CIDR(Classless Inter-Domain Routing)という形式でIPアドレスの“範囲”を持ったネットワークの箱のようなものです。
たとえば 10.0.0.0/16
というCIDRブロックを指定すると、「この範囲内のIPアドレスを自由に使っていいですよ」という意味になります。
この箱の中で、サブネットを作成したり、EC2などのリソースに個別のIPアドレスを割り振ったりします。
つまり、VPCは「IPアドレスを1つ持っている」ものではなく、「IPアドレスのプールを持っている」ものと捉えると理解しやすいです。
VPC同士でCIDRが同じでもいいの?
はい、VPCは完全に分離されているのでCIDRが重複していても問題ありません。
ただ、VPCピアリングやTransit Gatewayなど、VPC同士を繋げたいときはCIDRが被っていると通信できません。
さっきからでてくるCIDRとは?
IPアドレス(IPv4)は、実は全部で32ビットの数字で構成されています。
例えば、10.0.0.1
というIPアドレスも、裏ではこんな感じの2進数になっています:
10 .0 .0 .1
00001010.00000000.00000000.00000001
これで 全部で32ビット(= 8ビット × 4つ)
つまり、IPアドレスとは、 0〜255の数字を4つ並べた、2進数のかたまりということです。
/16 ってなに?
10.0.0.0/16
というCIDRブロックを指定すると、「この範囲内のIPアドレスを自由に使っていいですよ」
と説明をしましたが、このスラッシュ(CIDR表記)の /16
というのは、
「このIPアドレスの最初の16ビット分が“ネットワーク部分”ですよ」という意味になります。
つまり:
-
最初の 16ビット(= 10.0) → ネットワーク(固定)
-
残りの 16ビット(= 0.0 〜 255.255) → ホスト(可変)
10.0.0.0/16 の例:
[ ネットワーク部分 ] [ ホスト部分 ]
10 .0 .0 .0
00001010.00000000 | 00000000.00000000
(16ビット) (16ビット)
→ 残り16ビットを自由に使えるから、2の16乗 = 65,536個のIPアドレス!
わかりやすく例えると
-
/32 → 完全に1個の家(IPアドレス1つ)
-
/24 → 1つの町に最大256軒の家(= 256個のIP)
-
/16 → かなり大きな市区町村(65,536個のIP)
AWSでよくある構成
CIDR | 使えるIPの数(実際は -5個) | 用途のイメージ |
---|---|---|
/16 | 65,536個 | VPC全体で使う |
/24 | 256個 | サブネット1つ分によく使う |
/28 | 16個 | テスト用や小規模サブネット |
この「32ビットの中の何ビットがネットワーク?何ビットがホスト?」っていう考えが、CIDRの正体ということです!
サブネットとIPアドレスの割り当て方
VPCの中では、CIDRブロックをさらに分割して サブネット を作成し、その中にEC2やRDSといったリソースを配置します。
- VPC(10.0.0.0/16)
- Subnet A(10.0.0.0/24)→ EC2に
10.0.0.10
が割り当てられる - Subnet B(10.0.1.0/24)→ RDSに
10.0.1.20
が割り当てられる
- Subnet A(10.0.0.0/24)→ EC2に
このように、IPアドレスが直接割り当てられるのは、サブネット上のリソースだけです。
また、各サブネットにはAWSによって予約されているIPが5つほどあり、例えば /24 だと実際に使えるのは251個程度になります。
Publicサブネット / Privateサブネット の違い
AWSのネットワーク設計において基本となるのが、Publicサブネット と Privateサブネット を使い分ける構成です。
Publicサブネットとは?
- インターネットゲートウェイ(IGW)と接続されていて、外部と直接通信できるサブネット。
- 通常は、ALB(Application Load Balancer)やNAT Gateway など、外部アクセスが必要なリソースを配置します。
Privateサブネットとは?
- インターネットゲートウェイには接続されておらず、直接インターネットと通信できないサブネット。
- 通常は、EC2やRDSなどのアプリケーションやデータベースを配置します。
- 外部に出る必要がある場合は、Public Subnet内のNAT Gatewayを経由します。
VPC(10.0.0.0/16)
├── Public Subnet(10.0.0.0/24)→ ALB, NAT Gateway
└── Private Subnet(10.0.1.0/24)→ EC2, RDS
NAT GatewayとALBの違い
機能 | 通信の向き | 使い道 |
---|---|---|
NAT Gateway | 内 → 外(出口) | EC2が外部APIやOSアップデートなどを行う場合に必要 |
ALB(Application Load Balancer) | 外 → 内(入口) | クライアントからのリクエストを受けて、EC2等に振り分ける |
まとめ
- ✅ VPCにはIPアドレスそのものはなく、CIDRによって「使えるIP範囲」が定義されている
- ✅ 異なるVPCでCIDRが同じでも、つながなければ問題ない(接続するなら重複NG)
- ✅ サブネットとリソースの関係を理解することで、構成の全体像がつかめる
- ✅ ALBとNAT Gatewayの役割の違いを押さえると、ネットワーク構成がグッと分かりやすくなる
この記事では、VPC設計の基本的な概念を整理してみました。
「なんとなくVPCを作っていたけど、CIDRってこういう意味だったのか!」
「PublicとPrivateって、設計に意味があったんだな!」
そんな風に思ってもらえたら嬉しいです。
Discussion