Zenn
🧮

AWSのVPCとCIDRをまとめてみた

に公開
1

はじめに

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 が割り当てられる

このように、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って、設計に意味があったんだな!」

そんな風に思ってもらえたら嬉しいです。

1

Discussion

ログインするとコメントできます