1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS VPC設計入門 CIDR・サブネット・ルートを最初に決める理由

1
Last updated at Posted at 2026-08-05

はじめに

AWSでVPCを作るとき、最初に出てくる 10.0.0.0/16/24 をなんとなく選んでいないでしょうか。

VPCは、あとからアプリやDBを置くためのネットワークの土台です。最初のCIDR、サブネット、ルートテーブルを雑に決めると、後からIPアドレスが足りない、オンプレミスとIPが重なる、どのサブネットが外へ出られるのか分からない、という状態になりやすいです。

この記事では、VPC設計の入口として、CIDR、サブネット、ルートテーブル、セキュリティグループを「現場で説明できる言葉」にして整理します。

この記事でわかること

  • VPCとサブネットをどう分けて考えるか
  • CIDRを決めるときに何を見るか
  • パブリック/プライベートサブネットを名前ではなくルートで判断する考え方
  • セキュリティグループとNACLの役割の違い
  • 最初のVPC設計で確認したいチェックリスト

先に結論

VPC設計では、まず次の順番で考えると迷いにくいです。

順番 決めること 見るポイント
1 VPC CIDR 既存ネットワークと重複しないか、将来拡張できるか
2 AZとサブネット public/private/dataなど役割ごとに分けるか
3 ルートテーブル 0.0.0.0/0 がIGW/NAT/なしのどれか
4 セキュリティグループ どこからどのポートを許可するか
5 ログと運用 Flow Logs、到達性確認、台帳管理をどうするか

VPCは「作れたか」より、「後から説明できるか」が大事です。

前提

  • 仕様確認日: 2026-07-28
  • 対象読者: AWS VPCを初めて設計する人、資格学習中の人
  • 扱う範囲: VPC、CIDR、サブネット、ルートテーブル、セキュリティグループの入口
  • 扱わない範囲: Transit Gateway、VPN、PrivateLink、Network Firewallなどの詳細設計

用語の短い説明

用語 短い説明
VPC AWS上に作る自分用の仮想ネットワーク
CIDR IPアドレス範囲を表す書き方。例: 10.0.0.0/16
Subnet VPCの中をAZや用途ごとに分けた小さなネットワーク
Route Table 通信をどこへ流すかを決める表
IGW Internet Gateway。VPCをインターネットへつなぐ入口
NAT Gateway private subnetから外へ出る通信を中継するサービス
SG Security Group。ENIに付く仮想ファイアウォール
NACL Network ACL。サブネット単位で効くステートレスな制御

CIDRは後から変えにくい土台

VPCを作るときはIPv4 CIDRを指定します。AWS公式では、VPCのIPv4 CIDRブロックには指定できるサイズ範囲があります。上限や細かな条件は変わる可能性があるため、作業前に公式ドキュメントを確認します。

実務でまず見るのは、次の3つです。

  • 社内LAN、オンプレミス、他VPC、顧客環境と重複しないか
  • 将来のAZ追加、環境追加、マネージドサービスのIP消費を見込めるか
  • サブネットを用途ごとに切り出す余白があるか

よくある失敗は、VPC全体のCIDRを決めたあと、最初のサブネットで大きく取りすぎることです。

# 悪い例: VPC全体と同じ範囲を1つのサブネットに割り当てる
VPC:    10.0.0.0/16
Subnet: 10.0.0.0/16

# よい例: 用途とAZごとに分ける余白を残す
VPC:            10.20.0.0/16
public-a:       10.20.0.0/24
public-c:       10.20.1.0/24
private-app-a:  10.20.10.0/24
private-app-c:  10.20.11.0/24
private-db-a:   10.20.20.0/24
private-db-c:   10.20.21.0/24

パブリック/プライベートは名前ではなくルートで見る

public-subnet という名前を付けても、それだけではインターネットに出られるわけではありません。

見るべきなのはルートテーブルです。

サブネットの性格 典型的なルート 説明
public subnet 0.0.0.0/0 -> Internet Gateway インターネット向け経路がある
private subnet 0.0.0.0/0 -> NAT Gateway 外へは出るが、外から直接入れない設計にしやすい
isolated/data subnet 外向きの 0.0.0.0/0 なし DBなど、外部通信をかなり絞る

設計レビューでは、サブネット名ではなく「このサブネットのデフォルトルートはどこを向いているか」を確認します。

セキュリティグループとNACLを混同しない

初心者がつまずきやすいのが、セキュリティグループとNACLの違いです。

項目 Security Group Network ACL
効く場所 ENI単位 サブネット単位
状態管理 ステートフル ステートレス
ルール 許可ルール中心 許可と拒否を番号順に評価
よく使う場面 EC2やALBやRDSの通信制御 サブネット単位の追加制御

通常は、まずセキュリティグループで「誰から、どのポートへ」を絞ります。NACLは、サブネット単位で追加の境界を作りたいときに検討します。

小さなVPCテンプレート例

以下は、VPCと2つのpublic subnetを作る概念例です。実運用ではprivate subnet、NAT Gateway、ログ、タグ、命名、ルート設計を追加します。

sample-vpc.yml
AWSTemplateFormatVersion: '2010-09-09'
Description: Minimal VPC example for learning CIDR and public subnets

Parameters:
  VpcCidr:
    # 既存ネットワークと重複しないCIDRを指定する
    Type: String
    Default: 10.20.0.0/16

Resources:
  SampleVpc:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: !Ref VpcCidr
      EnableDnsHostnames: true
      EnableDnsSupport: true
      Tags:
        - Key: Name
          Value: sample-vpc

  InternetGateway:
    Type: AWS::EC2::InternetGateway

  AttachGateway:
    Type: AWS::EC2::VPCGatewayAttachment
    Properties:
      VpcId: !Ref SampleVpc
      InternetGatewayId: !Ref InternetGateway

  PublicSubnetA:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref SampleVpc
      AvailabilityZone: !Select [0, !GetAZs '']
      CidrBlock: 10.20.0.0/24
      MapPublicIpOnLaunch: true

  PublicRouteTable:
    Type: AWS::EC2::RouteTable
    Properties:
      VpcId: !Ref SampleVpc

  DefaultPublicRoute:
    Type: AWS::EC2::Route
    DependsOn: AttachGateway
    Properties:
      RouteTableId: !Ref PublicRouteTable
      DestinationCidrBlock: 0.0.0.0/0
      GatewayId: !Ref InternetGateway

  PublicSubnetARouteTableAssociation:
    Type: AWS::EC2::SubnetRouteTableAssociation
    Properties:
      SubnetId: !Ref PublicSubnetA
      RouteTableId: !Ref PublicRouteTable

構文だけ確認するなら、まず validate-template を使います。

# 実リソースを作る前にテンプレート構文だけ確認する
aws cloudformation validate-template \
  --template-body file://sample-vpc.yml

実務で使うチェックリスト

  • VPC CIDRは既存ネットワークと重複していないか
  • public/private/dataなど用途ごとにサブネットを分けたか
  • AZごとの冗長性を考えたか
  • public subnetの 0.0.0.0/0 はIGWを向いているか
  • private subnetの外向き通信にNAT Gatewayが必要か
  • DB用サブネットに不要な外向き経路がないか
  • セキュリティグループは送信元とポートを説明できるか
  • 将来ALB、RDS、EKS、VPC EndpointでIPが足りなくならないか

参考・確認先

関連記事

まとめ

  • VPCはAWSネットワークの土台で、CIDR設計は後から効いてくる
  • パブリック/プライベートはサブネット名ではなくルートテーブルで判断する
  • セキュリティグループとNACLは効く場所と状態管理が違う
  • 最初の設計では、将来のIP消費と接続先の重複を必ず見る

おわりに

まずCIDR、サブネット、ルートの3点を押さえると、VPC設計の会話がかなりしやすくなります。
Wealthy Designでは、Webシステム開発、クラウド活用、AIを使った業務改善に取り組んでいます。

会社の取り組みは、会社サイトにまとめています。
https://wealthy-design.com/

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?