CIDRとは?AWS VPCにおけるアドレス設計をやさしく解説!初心者向けベストプラクティス
生徒
「先生、AWSのVPCでCIDRってよく出てくるんですけど、そもそもCIDRってなんですか?」
先生
「CIDRはIPアドレスの範囲を表すための表記方法のことなんですよ。AWSのVPC(仮想プライベートクラウド)では、CIDRを使ってネットワークの設計を行います。」
生徒
「なんとなく難しそうに聞こえます…でも避けては通れなさそうですね。」
先生
「大丈夫、基礎から一緒に学んでいけば理解できますよ!それではCIDRの基本から順に説明していきましょう。」
1. CIDRとは何か?初心者にもわかる定義と仕組み
AWSのネットワーク設定で必ず目にする「CIDR(サイダー:Classless Inter-Domain Routing)」とは、IPアドレスの範囲(ネットワークの広さ)を効率的に表現するための表記法です。
以前は「クラスA」「クラスB」といった固定のサイズでネットワークを区切っていましたが、それだと「アドレスが余りすぎる」「足りない」といった無駄が多く発生していました。そこで、必要な分だけ自由にネットワークの大きさを調整できるように開発されたのがCIDRです。
CIDRは、以下のようにIPアドレスの後ろに「/(スラッシュ)」と数字を付けて記述します。
10.0.0.0/16
この「/16」という数字は「プレフィックス長」と呼ばれ、IPアドレスの左側から何ビット分を「ネットワークの名前(ネットワーク部)」として固定するかを表しています。
プログラミング未経験の方には、住所の例えが分かりやすいでしょう。例えば「東京都渋谷区/2」と書いた場合、「東京都」と「渋谷区」までは固定(ネットワーク部)で、その後に続く「◯丁目◯番地」を自由に割り当てられる(ホスト部)というイメージです。
Javaのプログラム的な考え方で、CIDRが「どのアドレス範囲を含んでいるか」を判定する簡易的なイメージコードを見てみましょう。
public class CidrCheck {
public static void main(String[] args) {
// CIDRが 10.0.x.x (上位16ビット固定) のネットワークだと仮定
String myNetworkPrefix = "10.0.";
String targetIp = "10.0.1.50";
// 対象のIPが自分のネットワーク内に含まれるかチェック
if (targetIp.startsWith(myNetworkPrefix)) {
System.out.println(targetIp + " はこのネットワークの範囲内です。");
} else {
System.out.println(targetIp + " は範囲外のネットワークです。");
}
}
}
10.0.1.50 はこのネットワークの範囲内です。
このように、CIDRを使うことで「ここからここまでは私のネットワークです」という境界線を明確に引くことができます。スラッシュ後の数字が小さければネットワークは広くなり、大きければ狭くなります。この仕組みを理解することが、AWS VPC設計の第一歩となります。
2. AWS VPCにおけるCIDRの役割と設計例
AWSのVPC(Virtual Private Cloud)では、最初にCIDRブロックを指定してIPアドレスの範囲を決めます。これは、仮想ネットワーク全体に割り当てるIP空間のことです。VPCのCIDRには、IPv4 CIDRブロックを指定し、/16から/28までの範囲で選べます。
よく使われるCIDR例:
- 10.0.0.0/16(65,536個のIPアドレス)
- 192.168.0.0/24(256個のIPアドレス)
- 172.16.0.0/20(4,096個のIPアドレス)
たとえば、10.0.0.0/16というCIDRを持つVPCを作成すれば、その中に複数のサブネットを分割して作成できます。
3. サブネット設計におけるCIDRの分割
VPCを作った後は、サブネットを作成します。サブネットとは、VPC内のIPアドレス範囲をさらに細かく分けたものです。ここでもCIDRを使って、アドレス空間を分割します。
例えば、10.0.0.0/16のVPCから以下のようにサブネットを作ることができます:
- 10.0.0.0/24(256個のIP)
- 10.0.1.0/24
- 10.0.2.0/24
このように、CIDRを使えば柔軟にネットワークを設計できます。
4. CIDR設計のベストプラクティス
AWSでネットワーク設計を行う際、以下のようなCIDR設計のベストプラクティスがあります:
- 十分な余裕をもってCIDRを割り当てる:将来的なスケールを見越して、最初から広めのCIDRブロックを確保しましょう。
- パブリックサブネットとプライベートサブネットを分ける:外部アクセスが必要なリソース(EC2など)はパブリック、それ以外はプライベートに。
- AZ(アベイラビリティゾーン)ごとに均等に分割:高可用性を保つために、各サブネットを複数のAZに分けて配置します。
- 重複しないCIDR設計:複数のVPCを接続する予定がある場合は、CIDRの重複がないように設計しておきましょう。
5. CIDRの計算方法とサブネット数の求め方
CIDRの計算は、慣れると意外と簡単です。「/24」は「32 - 24 = 8ビット」がホスト用なので、2の8乗 = 256個のIPアドレスを持ちます。ただし、AWSでは以下の5つのIPアドレスは予約されており、実際に使えるのは251個になります:
- ネットワークアドレス(例: 10.0.0.0)
- ブロードキャストアドレス(例: 10.0.0.255)
- VPCのルーター(例: 10.0.0.1)
- DNSサーバー
- 将来の用途のために予約されたIP
つまり、CIDRによって「理論上のIP数」と「実際に使える数」が違うことを覚えておきましょう。
6. AWS CLIでVPCとCIDRブロックを設定する方法
AWS CLIを使えば、VPCやCIDRの設定もコマンドラインから行うことができます。以下はVPCを作成するサンプルコマンドです。
aws ec2 create-vpc --cidr-block 10.0.0.0/16
このようにコマンドを使うことで、AWSコンソールから操作するよりも素早く環境を構築できます。スクリプトで管理したいときにも便利ですね。
7. よくあるCIDRの間違いとトラブル回避策
初心者がCIDRを扱うときによくあるミスをいくつか紹介します:
- CIDRの重複:別のVPCやオンプレミスとのVPN接続時に重複すると接続できません。
- アドレスが足りない:小さなCIDRブロックを選びすぎて、後からIPが不足してしまう。
- ルーティング設定漏れ:CIDRを分けても、ルートテーブルが正しく設定されていないと通信できません。
こうしたトラブルを避けるためには、事前にしっかりと設計とテストを行うことが大切です。
まとめ
今回の記事では、AWSのVPCにおけるCIDR(Classless Inter-Domain Routing)の基礎から、実際のCIDR設計例、ベストプラクティス、CLIでの操作、よくあるミスまでを幅広く解説しました。CIDRという用語は初学者には難解に感じられるかもしれませんが、VPCやネットワーク構築、セキュリティ設計に不可欠な知識です。
AWSでCIDRを活用する場面は数多くあります。たとえば、サブネットの分割設計、可用性を高めるアベイラビリティゾーンへの分散、社内ネットワークや他のVPCとの接続の際の重複防止などです。CIDRブロックの大きさは、将来的な拡張性や運用効率を左右する要素にもなります。
また、CIDRの知識はAWSだけでなく、AzureやGoogle Cloud、さらにはオンプレミスのネットワーク構成にも応用可能です。クラウドエンジニアやインフラエンジニアを目指すなら、避けては通れないテーマです。
AWS CLIによるCIDRブロックの設定も、手動作業を自動化し、より一貫性のあるインフラ管理を可能にします。以下は、CIDRを使ってAWS上でパブリックサブネットを構成する一例です。
aws ec2 create-subnet \
--vpc-id vpc-12345678 \
--cidr-block 10.0.1.0/24 \
--availability-zone ap-northeast-1a
このように、CIDRの設定と活用を理解すれば、AWSネットワークの設計力が飛躍的に高まります。今後、VPCピアリング、Transit Gateway、VPN接続といった複雑なネットワーク構成を扱う際にも必須のスキルです。
最後に、CIDRに関する理解をさらに深めたい方は「CIDR計算ツール」や「VPCデザインパターン」などを活用して実践を積んでみてください。サブネットマスクやアドレス空間の割り当てが自由自在にできるようになれば、ネットワーク設計に対する自信がついてきます。
生徒
「先生、今回でCIDRについてかなり詳しくなれた気がします!」
先生
「そうですね。CIDRの基本構文、VPCやサブネットへの応用、そしてベストプラクティスまで学べましたね。」
生徒
「特に、/16や/24の意味が数字だけでなく、使えるIPの数にもつながっているのが面白かったです!」
先生
「それに、AWS CLIでのCIDR指定方法も習得しましたから、今後インフラ構築の自動化にも役立ちますよ。」
生徒
「CIDRはネットワークの“住所設計”みたいな感じですね。これからは怖がらずに使えそうです!」
先生
「素晴らしい理解です!AWSやネットワーク設計ではCIDRは必須。ぜひ今後も実践して覚えていきましょう。」