AWSでVPCを設計し始めたとき、こう感じる方は少なくありません。この「5つ減る」という挙動はAWSの仕様であり、すべてのサブネットに一律に適用されます。
AWSはサブネットごとに、先頭4つと末尾1つ(合計5つ)のIPアドレスをあらかじめ予約しています。この予約はユーザーが変更できず、サブネットのCIDRを決めるときに「必要なホスト数に5を足す」というステップを省くと、後から構成を変更する場面が出てきます。
この記事では、5つの予約アドレスの正体と、VPC設計でのCIDR選定に与える影響を実例を交えて解説します。
この記事のポイント
・各サブネットから先頭4つ+ブロードキャストの計5つのIPが予約されて使えない
・.0はネットワーク、.1はVPCルーター、.2はAmazon DNS、.3は将来用
・/27(32IP)なら使用可能は27個、/28(16IP)なら11個になる
・必要なホスト数に5を足してCIDRを決めるのが設計の鉄則
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
AWSがIPアドレスを5つ予約する理由
AWSのVPCは、クラウド上でも「ルーターやDNSサーバーを動かす」という実際のネットワーク構成を内部に持っています。それらのコンポーネントを動かすために、AWSはサブネットの一部のIPアドレスを予約する設計を採っています。オンプレミスのネットワーク設計でも、ネットワークアドレス(xxx.0)とブロードキャストアドレス(末尾)は使えません。AWSはそこにさらに3つ(.1/.2/.3)を加えているため、合計5つになります。
5つの予約アドレスの正体
10.0.1.0/27 のサブネットを例に、5つの予約アドレスをひとつずつ確認します。# 10.0.1.0/27 サブネット(総32アドレス)の予約済みIPアドレス # これらはEC2インスタンスに割り当てられない 10.0.1.0 --- ネットワークアドレス (予約 #1) 10.0.1.1 --- VPCルーター (予約 #2) 10.0.1.2 --- Amazon DNSサーバー (予約 #3) 10.0.1.3 --- AWSが将来利用のために予約 (予約 #4) 10.0.1.31 --- ブロードキャストアドレス (予約 #5) # 使用可能: 10.0.1.4 ~ 10.0.1.30(27個)
1. ネットワークアドレス(xxx.0)
サブネット全体を識別するためのアドレスです。IPネットワークの標準仕様に基づくもので、オンプレミスでも使えません。AWS固有の制限ではなく、すべてのIPネットワークで共通のルールです。2. VPCルーター(xxx.1)
VPCのローカルルーターが使用するIPアドレスです。EC2インスタンスのデフォルトゲートウェイとして機能し、VPC内の異なるサブネット間の通信や、インターネットゲートウェイ(IGW)・NATゲートウェイへのルーティングを担当します。ルートテーブルで0.0.0.0/0 → igw-xxxx と設定した場合も、パケットは最初にこの .1 を経由して転送されます。3. Amazon DNSサーバー(xxx.2)
AWS Provided DNS(AmazonProvidedDNS)として機能するアドレスです。VPC内のEC2インスタンスはデフォルトでこのアドレスをDNSリゾルバーとして利用します。Amazon Linux 2023 の EC2 インスタンスで /etc/resolv.conf を確認すると、次のような出力が得られます。
$ cat /etc/resolv.conf ; generated by /usr/lib/systemd/resolved.conf.d/vpc-dns.conf search ap-northeast-1.compute.internal nameserver 10.0.0.2
このDNSサーバーを使うことで、EC2インスタンスのプライベートDNS名(例:
ip-10-0-1-10.ap-northeast-1.compute.internal)が解決できます。4. AWSが将来利用のために予約(xxx.3)
AWSの公式ドキュメントには「将来の利用のために予約」と明記されています。現時点では具体的な用途はありませんが、ユーザーへの割り当ては不可です。将来のサービス拡張に備えた枠として確保されています。5. ブロードキャストアドレス(最終アドレス)
サブネットの末尾アドレスです。VPCはブロードキャストをサポートしていませんが、このアドレスは予約されたままになっています。/27 であれば xxx.31、/28 であれば xxx.15 がこれにあたります。使用可能IP数の計算とCIDR選定の実践
サブネットの設計では「必要なホスト数に5を足してから、そのIPが収まるCIDRを選ぶ」のが基本手順です。以下の表を参考にしてください。| プレフィックス | 総IPアドレス数 | 使用可能IP数 | 用途例 |
|---|---|---|---|
| /28 | 16 | 11 | NATゲートウェイ専用サブネット(最小構成) |
| /27 | 32 | 27 | 小規模Web層・プライベートサブネット |
| /26 | 64 | 59 | ALBサブネット・中規模EC2クラスター |
| /24 | 256 | 251 | 汎用パブリック・プライベートサブネット |
AvailableIpAddressCount が「総数 - 5」になっていることがわかります。$ aws ec2 describe-subnets \ --subnet-ids subnet-0a1b2c3d4e5f6a7b8 \ --query 'Subnets[0].{CIDR:CidrBlock,AvailableIPs:AvailableIpAddressCount}' \ --output json { "CIDR": "10.0.1.0/27", "AvailableIPs": 27 }
NATゲートウェイとALBに必要なIPを考慮する
NATゲートウェイはサブネットから1つのIPを消費します(ENIに割り当て)。Application Load Balancer(ALB)は各AZのサブネットに最低8つのIPアドレスを確保するため、ALB専用サブネットには /27 以上(使用可能27個以上)を推奨します。AWSのEC2・VPC設計を体系的に学びたい場合は、AWSをAmazon Linuxで実践的に学ぶ入門コースも参考にしてください。
予約アドレスを知らないと起きる設計ミス
1. /28サブネットを選んだらIPがすぐ枯渇した
「16個あれば十分」と見積もって /28 を選ぶと、使えるのは11個だけです。NATゲートウェイ・ALB・EC2インスタンスを同一サブネットに配置しようとするとすぐに枯渇します。対策は「用途ごとにサブネットを分割する」こと。NATゲートウェイは /28 でも収まりますが、ALBには /27 以上を別途用意するのが原則です。
2. DNS解決が機能しない
.2 の Amazon DNS は、VPCの「DNSリゾルーション(enableDnsSupport)」オプションがONでないと機能しません。デフォルトはONですが、カスタムVPCを手動作成した際にOFFにしてしまうケースがあります。EC2インスタンスから名前解決ができない場合は、まずこのVPCオプションを確認してください。本記事のまとめ
| 予約アドレス | 役割 | 変更の可否 |
|---|---|---|
| xxx.0 | ネットワークアドレス | 変更不可 |
| xxx.1 | VPCルーター(デフォルトゲートウェイ) | 変更不可 |
| xxx.2 | Amazon DNSサーバー(AWS Provided DNS) | 変更不可 |
| xxx.3 | AWSが将来利用のために予約 | 変更不可 |
| 末尾アドレス | ブロードキャストアドレス | 変更不可 |
AWSのEC2・VPC設計からサーバー管理まで、実践的に学べる無料マニュアル(図解60P)をプレゼントしています。
>> AWSをAmazon Linuxで学ぶ無料マニュアルを受け取る
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら
- 前のページへ:AWS VPC Reachability Analyzerで疎通問題を診断する方法|セキュリティグループ・ルートテーブルの設定ミスをCLIで特定する実践手順
- この記事の属するカテゴリ:AWS(Amazon Linux)へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。
登録無料・いつでも解除できます