【AWS】VPCにおけるサブネットのCIDR設計・AZとの関係を丁寧に解説
生徒
「AWSのVPCでサブネットのCIDR設計ってどうやって決めればいいんでしょう?AZとの関係もよくわからなくて…」
先生
「サブネットのCIDR設計はVPCの基礎で、アベイラビリティーゾーン(AZ)との関係も重要です。正しい設計がAWS環境の安定性と拡張性に繋がりますよ。」
生徒
「具体的にCIDRって何?どうやってAZごとにサブネットを割り当てればいいのか教えてほしいです!」
先生
「わかりました。CIDRの意味から、VPCのサブネット設計、AZとの連携まで順を追って丁寧に説明しますね。」
1. CIDRとは?IPアドレス設計の基本
CIDR(サイダー:Classless Inter-Domain Routing)とは、ネットワーク上の住所である「IPアドレス」の範囲を効率的に指定するための仕組みです。AWSでネットワーク(VPC)を構築する際、最初に「どのくらいの広さの住所を確保するか」をこのCIDRを使って宣言します。
例えば、10.0.0.0/16という表記をよく目にしますが、これは「10.0.0.0から10.0.255.255まで」の範囲を指し、約6万5千個のIPアドレスを自由に使えることを意味します。スラッシュ(/)の後の数字が小さいほど、扱える住所の数は多くなります。
CIDRを「マンションの部屋番号」に例えると非常に分かりやすくなります。
- IPアドレス: 101号室、102号室といった「個別の部屋番号」
- CIDR: 1階すべて(101〜199号室)といった「部屋のまとまり」
/16や/24という数字は、いわば「マンションの何フロア分を借りるか」という契約プランのようなものです。このプランを決めることで、後から「ここは開発チーム用」「ここは本番環境用」と、サブネットという形で部屋を割り振ることができます。
IT業界では、よく使われる代表的なサイズがあります。まずは以下の感覚を掴んでおきましょう。
- /16: VPC全体によく使われる。約65,536個のIPアドレス(巨大なビル1棟分)
- /24: サブネットによく使われる。256個のIPアドレス(小規模なオフィス1フロア分)
AWSでは、設定したCIDRから「5つのIPアドレス」がAWS側の管理用(ネットワークアドレスやDNSなど)として自動的に予約され、ユーザーは使用できません。そのため、
/24(256個)を設定した場合、実際に使えるのは251個になることを覚えておきましょう。
このCIDR表記を正しく理解しておくことが、設計ミスによる「IPアドレスが足りない!」というトラブルを防ぐ第一歩になります。
2. VPCとサブネットの関係
AWSのネットワーク構築において、VPC(Virtual Private Cloud)とサブネットの関係を理解することは非常に重要です。一言でいうと、VPCは「広大な敷地」であり、サブネットはその敷地をフェンスで区切った「小さな区画」です。
まず、VPCを作成する際に「10.0.0.0/16」のような大きなCIDRブロックを割り当てます。これにより、そのVPC内では最大65,536個のIPアドレスが使用可能になります。しかし、この広大なスペースをそのまま使うのではなく、用途(WEBサーバー用、データベース用など)に合わせて「サブネット」という単位に細かく分割して管理するのがAWSの標準的な設計です。
この関係を「住所」に例えてみましょう。
- VPC: 「東京都港区」という大きなエリア(大きなCIDR:10.0.0.0/16)
- サブネット: 港区の中にある「芝公園」「赤坂」といった町名(小さなCIDR:10.0.1.0/24)
私たちは「東京都港区」という広い範囲を確保したあと、さらに管理しやすくするために「町名」という区画を作ります。これが、VPCの中にサブネットを作る作業と同じです。
重要なルールとして、サブネットのCIDRは必ずVPCのCIDRの範囲内に収まっていなければならないという点があります。例えば、VPCが「10.0.x.x」の範囲なのに、サブネットを勝手に「192.168.x.x」に設定することはできません。
また、サブネットを分けることで、以下のJavaコードのイメージのように、システム上の役割を明確に区別できるようになります。
public class NetworkDesign {
public static void main(String[] args) {
// VPCという大きなネットワーク器を作成
String myVPC = "10.0.0.0/16";
// その中に用途別のサブネット(区画)を切り出す
String publicSubnet = "10.0.1.0/24"; // 外部公開用
String privateSubnet = "10.0.2.0/24"; // データベース用
System.out.println("VPC: " + myVPC + " 内にサブネットを構築しました。");
}
}
このように、大きなVPC(敷地)を適切なサイズのサブネット(区画)に切り分けることで、セキュリティの向上や、ネットワークトラフィックの効率的な制御が可能になります。
3. サブネットのCIDR設計方法
サブネットは、VPCのCIDRの一部を切り出して設定します。例えば、10.0.0.0/16のVPCなら、10.0.1.0/24や10.0.2.0/24といった小さい範囲に分けます。
サブネットのCIDRは/28〜/16の範囲で設定可能で、/24は約256個のIPアドレスが利用可能です。
適切なサブネットサイズを選ぶことで、IPアドレスの無駄を減らし、将来の拡張にも対応しやすくなります。
4. アベイラビリティーゾーン(AZ)とサブネットの関係
AZはAWSの物理的なデータセンターの単位で、同じリージョン内に複数存在します。高可用性を確保するために、サブネットはAZごとに分けて作成します。
つまり、同じCIDRブロック内でもAZごとに異なるサブネットCIDRを割り当てる必要があります。例えば、AZ「ap-northeast-1a」には10.0.1.0/24、AZ「ap-northeast-1c」には10.0.2.0/24といった具合です。
こうすることで、障害時に別のAZにあるサブネットが影響を受けずに済みます。
5. サブネットCIDR設計の具体例
例として、10.0.0.0/16のVPCを作成し、3つのAZに以下のようにサブネットを割り当てることができます。
- AZ1(ap-northeast-1a):10.0.1.0/24
- AZ2(ap-northeast-1c):10.0.2.0/24
- AZ3(ap-northeast-1d):10.0.3.0/24
これにより、各AZに最大約250台のインスタンスを配置可能です。さらに必要に応じてサブネットを細分化したり増やしたりできます。
6. CIDR設計で気をつけるポイント
- サブネット同士でCIDRが重複しないようにする。
- VPC全体のCIDRに対して十分な余裕を持たせて設計する。
- AZごとに分けて高可用性を確保する。
- 将来の拡張を見越してIPアドレスを確保しておく。
- パブリックサブネットとプライベートサブネットを分けて設計する。
7. CIDR設計に役立つAWSツールやサービス
AWSにはVPC CIDR設計をサポートするツールがあります。例えば、AWS VPCウィザードを使えば基本的なCIDR割り当てが自動で行われます。
また、IPアドレス管理(IPAM)サービスを利用すると、大規模環境でもCIDRの割り当てや管理を効率化できます。
8. よくある質問(FAQ)
Q1: CIDRの「/24」とは何ですか?
A: 「/24」はIPアドレスのネットワーク部の長さを表し、256個のIPアドレス範囲を指します。
Q2: 同じCIDRを複数のサブネットで使えますか?
A: いいえ、CIDRはサブネット間で重複してはいけません。重複すると通信が正常に動きません。
Q3: AZが変わるとサブネットのCIDRも変えるべきですか?
A: はい、AZごとに異なるCIDRを割り当てることで障害分散が可能になります。
9. これからのCIDR設計に向けて
AWSのVPCサブネットCIDR設計はクラウドネットワークの基本です。AZとの関係を理解し、適切に設計することで、高可用性と拡張性を備えたインフラ構築が実現できます。
初心者の方も、今回のポイントを押さえて実践してみてくださいね。
まとめ
AWSにおけるVPCとサブネットのCIDR設計は、ネットワークの基盤を整えるうえで欠かせない工程であり、クラウド環境をスムーズに運用するための重要な知識です。今回の記事ではCIDRという表記方法の意味から、VPC全体のアドレス設計、サブネットの役割、さらにアベイラビリティーゾーン(AZ)との深い関係まで順を追って理解してきました。とくにCIDRはネットワーク設計の中心となる概念で、VPCの大きさやサブネットの分割方法を左右するため、適切な範囲の選択が将来の拡張性にも直結します。 また、AWSでは高可用性を実現するためにサブネットをAZごとに分けることが推奨されています。これはひとつのAZに障害が発生しても、別のAZに配置されたサブネットが動作し続けることでサービス全体が止まらないようにするためです。CIDRの重複を避けながら、パブリックサブネットとプライベートサブネットを適切に作成し、機能ごとに役割を分けて設計することで、より堅牢なネットワーク構築が可能になります。 さらに、IPアドレスの消費を最適化するためには、VPCのCIDRに十分な余裕を持たせ、サブネットのサイズも用途に応じて適切に割り当てることが重要です。/24のような使いやすい範囲を基準にしながら、将来的なインスタンス増加や新規サブネットの追加が必要になったときにも対応できるように設計の幅を残しておくことがポイントです。以下にはCIDR構造を直感的に確認できる簡易的なサンプルコードを示しながら、今回の学びを整理してみます。
サンプルプログラム(CIDRとサブネット構成のイメージ)
{
"VPC": {
"CIDR": "10.0.0.0/16",
"Subnets": [
{
"Name": "Public-Subnet-AZ1",
"CIDR": "10.0.1.0/24",
"AZ": "ap-northeast-1a"
},
{
"Name": "Public-Subnet-AZ2",
"CIDR": "10.0.2.0/24",
"AZ": "ap-northeast-1c"
},
{
"Name": "Private-Subnet-AZ1",
"CIDR": "10.0.11.0/24",
"AZ": "ap-northeast-1a"
},
{
"Name": "Private-Subnet-AZ2",
"CIDR": "10.0.12.0/24",
"AZ": "ap-northeast-1c"
}
]
}
}
このように構造化して整理すると、CIDRとサブネットがどのように関連し、AZをまたいでどのように配置されるのかが視覚的に理解できます。実際の設計では、さらにルートテーブルやインターネットゲートウェイ、NATゲートウェイなどの要素が関連してくるため、ネットワーク全体を俯瞰しながらCIDRを選定することが大切です。 特に大規模な環境ではIPAM(IPアドレス管理サービス)を用いることで、複雑なCIDR運用も整理しやすくなり、IPアドレスの利用状況を可視化しながら最適な割り当てができるようになります。CIDRは数字の羅列に見えますが、ネットワークの区画を設計するための地図のようなものであり、理解が深まるほどAWS環境全体の見通しが良くなり、より効率的で安全な設計ができるようになります。 サブネットのCIDRをAZごとに分ける理由や、重複させてはいけない理由、そして設計時に余裕を持たせる重要性を知っておくことで、ネットワークトラブルの防止にもつながります。今回の内容を繰り返し確認しながら、自分自身のVPC構成に照らし合わせて練習していくことで、CIDR設計の感覚が自然と身についていきます。
生徒
「CIDRって数字が並んでいて難しそうだと思っていたけれど、実際はIPアドレスの範囲を区切るための仕組みなんだとわかりました。AZごとにサブネットを作る理由も理解できました!」
先生
「そのとおりです。CIDRは慣れてくるととても便利で、VPC設計の自由度を高めてくれます。AZとの組み合わせを意識することで、高可用性にもつながりますね。」
生徒
「サブネットのCIDRを重複させてはいけない理由もよくわかりました。設計を間違えると通信に影響するって大事なポイントですね。」
先生
「はい。ネットワークは一度つまずくと原因を特定するのに時間がかかるので、最初の設計を丁寧に行うことがすごく大切なんです。将来的な拡張も見据えながらCIDRを割り当てると、無駄のないスムーズな運用ができますよ。」
生徒
「これから自分の環境でもCIDR設計をするとき、今日の内容を思い出して練習してみます!数字にも少し慣れてきた気がします。」
先生
「とても良い姿勢ですね。CIDRは理解すればするほど設計の幅が広がりますから、ぜひ実際のAWS環境で手を動かしながら学んでいきましょう。」