オンプレミスでネットワークを設計してきたエンジニアがAWSに移行するとき、最初に戸惑うのがVPC(Virtual Private Cloud)の設計です。物理スイッチやルーターを触ってきた経験があるからこそ、「クラウドのネットワークは何がどう違うのか」が気になるところでしょう。
この記事では、Amazon VPCの基本概念からサブネット設計、インターネットゲートウェイの設定、ルートテーブルの仕組みまで、オンプレのネットワークと比較しながら体系的に解説します。VPCの設計パターンを押さえておけば、EC2やRDSを配置するときの判断に迷わなくなります。

Amazon VPCとは?オンプレのネットワークとの違い
Amazon VPCは、AWS上に自分専用の仮想ネットワークを構築するサービスです。オンプレミスでいえば、自社データセンター内のネットワーク一式をクラウド上に再現するイメージです。
オンプレミスのネットワーク構築では、物理的なスイッチ、ルーター、ファイアウォールを購入し、ラッキングして、ケーブルを配線します。障害が起きたらデータセンターに駆けつける必要がありました。VPCでは、これらがすべてソフトウェア定義(SDN)になります。マネジメントコンソールやAWS CLIから数分でネットワークを作成でき、物理機器のトラブルとは無縁です。
ただし、VPCにはオンプレとは異なるルールがあります。
・CIDRブロックは後から縮小できない: VPC作成時に指定するIPアドレス範囲は拡張は可能ですが、縮小はできません。最初の設計が重要です
・アベイラビリティゾーン(AZ)を意識したサブネット設計が必須: オンプレではVLANで論理分割しますが、VPCではAZごとにサブネットを配置します
・デフォルトVPCが存在する: AWSアカウントを作成すると、各リージョンにデフォルトVPCが自動作成されます。本番環境ではカスタムVPCを作成して使うのが鉄則です
VPCの基本コンポーネントを理解する
VPCを正しく設計するために、まず主要なコンポーネントを押さえましょう。
1. CIDRブロック
VPCのIPアドレス範囲を決めるのがCIDRブロックです。RFC 1918で定義されたプライベートIPアドレス範囲から選ぶのが標準的です。
・10.0.0.0/16: 65,536個のIPアドレスが使える。中〜大規模向け
・172.16.0.0/16: 同上。オンプレとのVPN接続時にアドレス帯が被らないよう注意
・192.168.0.0/16: 同上。小規模検証環境で使われることが多い
現場でよく採用されるのは10.0.0.0/16です。将来のサブネット追加やVPCピアリングを見越して、余裕のあるアドレス空間を確保しておきましょう。オンプレ側のネットワークと重複しないことが絶対条件です。
2. サブネット
VPCのCIDRブロックを細かく分割したものがサブネットです。オンプレミスでいうVLANに相当します。
AWSのサブネットには大きく2種類あります。
・パブリックサブネット: インターネットゲートウェイへのルートを持つサブネット。Webサーバーや踏み台サーバーを配置します
・プライベートサブネット: インターネットゲートウェイへの直接ルートがないサブネット。データベースやアプリケーションサーバーを配置します
各サブネットは1つのAZに紐づきます。高可用性を確保するためには、最低2つのAZにまたがってサブネットを配置するのが基本です。
3. インターネットゲートウェイ(IGW)
VPCとインターネットを接続するためのコンポーネントです。オンプレでいうエッジルーターのインターネット回線接続部分に相当します。
IGWの特徴は、AWS側で完全に冗長化されているため、ユーザーが冗長構成を考える必要がないことです。オンプレでは回線の冗長化やルーターの二重化で苦労した方も多いでしょうが、IGWでは不要です。
4. ルートテーブル
サブネット内のトラフィックがどこに向かうかを制御するのがルートテーブルです。オンプレのルーティングテーブルと同じ概念です。
パブリックサブネットのルートテーブルには、0.0.0.0/0(デフォルトルート)の送信先としてIGWを指定します。プライベートサブネットのルートテーブルには、IGWへのルートを含めません。
5. NATゲートウェイ
プライベートサブネットのリソースがインターネットにアクセスする必要がある場合(OSのアップデートなど)に使用します。オンプレのNATルーターと同じ役割です。
NATゲートウェイはパブリックサブネットに配置し、プライベートサブネットのルートテーブルから参照させます。注意点として、NATゲートウェイには時間課金とデータ転送課金の両方がかかります。コスト管理の観点で、検証環境ではNATインスタンス(EC2ベース)で代用する選択肢もあります。

実践:VPCとサブネットをAWS CLIで作成する
ここからは、実際にVPCを構築する手順を見ていきます。マネジメントコンソールでも操作できますが、再現性を重視してAWS CLIで進めます。
1. VPCの作成
東京リージョン(ap-northeast-1)にVPCを作成します。
# AWS CLI: VPCを作成(CIDRブロック: 10.0.0.0/16) aws ec2 create-vpc \ --cidr-block 10.0.0.0/16 \ --tag-specifications 'ResourceType=vpc,Tags=[{Key=Name,Value=my-production-vpc}]' \ --region ap-northeast-1
作成後、VPC IDが返されます。このIDはサブネット作成時に使います。
2. サブネットの作成
パブリックサブネットとプライベートサブネットを2つのAZに作成します。
# AWS CLI: パブリックサブネット(AZ-a) aws ec2 create-subnet \ --vpc-id vpc-xxxxxxxxx \ --cidr-block 10.0.1.0/24 \ --availability-zone ap-northeast-1a \ --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=public-subnet-1a}]' # AWS CLI: パブリックサブネット(AZ-c) aws ec2 create-subnet \ --vpc-id vpc-xxxxxxxxx \ --cidr-block 10.0.2.0/24 \ --availability-zone ap-northeast-1c \ --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=public-subnet-1c}]' # AWS CLI: プライベートサブネット(AZ-a) aws ec2 create-subnet \ --vpc-id vpc-xxxxxxxxx \ --cidr-block 10.0.11.0/24 \ --availability-zone ap-northeast-1a \ --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=private-subnet-1a}]' # AWS CLI: プライベートサブネット(AZ-c) aws ec2 create-subnet \ --vpc-id vpc-xxxxxxxxx \ --cidr-block 10.0.12.0/24 \ --availability-zone ap-northeast-1c \ --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=private-subnet-1c}]'
パブリックサブネットは10.0.1.0/24と10.0.2.0/24、プライベートサブネットは10.0.11.0/24と10.0.12.0/24としています。番号帯を分けておくと、後から見たときにどちらの種類かすぐに判別できます。
3. インターネットゲートウェイの作成とアタッチ
# AWS CLI: インターネットゲートウェイを作成 aws ec2 create-internet-gateway \ --tag-specifications 'ResourceType=internet-gateway,Tags=[{Key=Name,Value=my-igw}]' # AWS CLI: VPCにアタッチ aws ec2 attach-internet-gateway \ --internet-gateway-id igw-xxxxxxxxx \ --vpc-id vpc-xxxxxxxxx
4. ルートテーブルの設定
パブリックサブネット用のルートテーブルを作成し、デフォルトルートをIGWに向けます。
# AWS CLI: パブリック用ルートテーブルを作成 aws ec2 create-route-table \ --vpc-id vpc-xxxxxxxxx \ --tag-specifications 'ResourceType=route-table,Tags=[{Key=Name,Value=public-rt}]' # AWS CLI: デフォルトルートをIGWに向ける aws ec2 create-route \ --route-table-id rtb-xxxxxxxxx \ --destination-cidr-block 0.0.0.0/0 \ --gateway-id igw-xxxxxxxxx # AWS CLI: パブリックサブネットにルートテーブルを関連付け aws ec2 associate-route-table \ --route-table-id rtb-xxxxxxxxx \ --subnet-id subnet-xxxxxxxxx
プライベートサブネットにはVPCのメインルートテーブルが自動で関連付けられます。メインルートテーブルにはIGWへのルートを追加しないようにしてください。
現場で使えるサブネット設計パターン
VPCの設計パターンは、システムの規模と要件によって変わります。ここでは現場でよく使われる3つのパターンを紹介します。
パターン1: 2層構成(Web + DB)
最もシンプルな構成です。パブリックサブネットにWebサーバー、プライベートサブネットにDBを配置します。
| サブネット種別 | CIDR | 配置するリソース |
|---|---|---|
| パブリック(AZ-a) | 10.0.1.0/24 | EC2(Webサーバー)、ALB |
| パブリック(AZ-c) | 10.0.2.0/24 | EC2(Webサーバー)、ALB |
| プライベート(AZ-a) | 10.0.11.0/24 | RDS(プライマリ) |
| プライベート(AZ-c) | 10.0.12.0/24 | RDS(スタンバイ) |
パターン2: 3層構成(Web + App + DB)
アプリケーション層を分離する構成です。業務システムやマイクロサービスアーキテクチャでよく使われます。パブリックサブネットにはALBのみを配置し、アプリケーションサーバーもプライベートサブネットに配置することで、セキュリティを強化します。
パターン3: オンプレ接続構成
AWS Site-to-Site VPNやAWS Direct Connectを使ってオンプレミスとAWSを接続する構成です。オンプレとのIPアドレス帯の重複を避けるため、CIDR設計が特に重要になります。仮想プライベートゲートウェイ(VGW)をVPCにアタッチし、プライベートサブネットのルートテーブルにオンプレ側のCIDRへのルートを追加します。
料金の仕組み:VPC自体は無料、注意すべきはNAT
VPCの料金体系はオンプレとは大きく異なります。
・VPC本体: 無料。何個作成しても課金されません
・サブネット: 無料
・インターネットゲートウェイ: 無料
・NATゲートウェイ: 時間課金($0.062/時間)+ データ処理料金($0.062/GB)。東京リージョン、2026年3月時点
・Elastic IPアドレス: 使用中のEIPは無料。未使用・追加EIPは$0.005/時間(2024年2月の料金改定後)。2026年3月時点
・VPCピアリング: 接続自体は無料。AZ間のデータ転送に課金あり
コストの観点で最も注意すべきはNATゲートウェイです。24時間稼働させると月額約$45(時間課金のみ)。さらにデータ転送量が多ければ、簡単に月額$100を超えます。検証環境では、NATゲートウェイの代わりにNATインスタンスを使うか、必要なときだけ手動で起動するのも手です。
よくあるトラブルと対処法
EC2にパブリックIPがあるのにインターネットに出られない
最も多いトラブルです。以下の3点を順番に確認してください。
・IGWがVPCにアタッチされているか: アタッチし忘れは意外と多い
・ルートテーブルに0.0.0.0/0 → IGWのルートがあるか: サブネットに正しいルートテーブルが関連付けられているかも確認
・セキュリティグループのアウトバウンドルール: デフォルトでは全許可ですが、カスタムルールで制限していないか確認
プライベートサブネットのEC2からyum/aptが使えない
NATゲートウェイが正しく設定されていないケースがほとんどです。NATゲートウェイがパブリックサブネットに配置されているか、プライベートサブネットのルートテーブルに0.0.0.0/0 → NATゲートウェイのルートがあるか確認しましょう。
VPCのCIDRが足りなくなった
VPCにはセカンダリCIDRブロックを追加できます(最大5つ)。既存のリソースに影響を与えずにアドレス空間を拡張できるので、設計段階で余裕を持たせておくのが安心です。

本記事のまとめ
Amazon VPCはAWSのネットワーク基盤です。オンプレのネットワーク設計経験がある方なら、VLANがサブネットに、エッジルーターがIGWに、NATルーターがNATゲートウェイに置き換わったと考えれば理解しやすいでしょう。
| やりたいこと | AWSサービス/機能 | オンプレ相当 |
|---|---|---|
| 仮想ネットワークを作る | Amazon VPC | データセンター内ネットワーク |
| ネットワークを分割する | サブネット | VLAN |
| インターネットに接続する | インターネットゲートウェイ | エッジルーター + ISP回線 |
| 内部からだけ外に出る | NATゲートウェイ | NATルーター |
| トラフィック経路を制御する | ルートテーブル | ルーティングテーブル |
まずは検証用のカスタムVPCを1つ作り、パブリック/プライベートサブネットの2層構成を試してみてください。手を動かすことで、ルートテーブルとIGWの関係が体感できます。
VPCの設計、自信を持ってできますか?
VPCはAWSのすべてのサービスの土台です。ここを正しく設計できるかどうかで、その後の運用コストとセキュリティレベルが決まります。
オンプレの経験を活かしながら、現場で使えるクラウドスキルを体系的に身につけたい方へ、メルマガで実践的なクラウド活用ノウハウをお届けしています。
Linuxサーバーの基礎やEC2上でのサーバー構築については、姉妹サイトLinuxMaster.JPで詳しく解説しています。


コメント