はじめに
AWSを利用する際、最も重要な設計領域の1つがVPC(Virtual Private Cloud)とネットワークアーキテクチャです。VPCの構成は後々のセキュリティ、スケーラビリティ、運用性に大きな影響を与えます。
本章では、以下の重要要素を体系的に解説します:
- CIDR計画とサブネット設計
- NAT GatewayとVPCエンドポイント
- Transit Gatewayを用いたVPC間接続
- NACL(ネットワークACL)とセキュリティグループの設計戦略
社内システム〜マルチアカウント運用まで対応可能な、堅牢かつ柔軟なVPC設計を実現しましょう。
CIDR計画とサブネット設計
CIDR(Classless Inter-Domain Routing)は、VPCのIPアドレス空間を定義するもので、ネットワーク分割の基盤となります。初期設計時に明確なIP計画を立てておかないと、拡張時に衝突が起きやすくなります。
おすすめCIDR計画の指針
- 将来の拡張に備え、/16〜/20のVPCを確保(例:10.0.0.0/16)
- サブネットは用途別(Public、Private、Isolated)に分割
- AZ単位に分けて可用性確保
例:3AZ構成のサブネット設計
用途 | AZ A | AZ B | AZ C |
---|---|---|---|
Public | 10.0.0.0/24 | 10.0.1.0/24 | 10.0.2.0/24 |
Private | 10.0.10.0/24 | 10.0.11.0/24 | 10.0.12.0/24 |
Isolated | 10.0.20.0/24 | 10.0.21.0/24 | 10.0.22.0/24 |
NAT GatewayとVPCエンドポイント
NAT Gatewayの役割
Privateサブネット内のインスタンスがインターネットへアクセスするために必要なのがNAT Gatewayです。EC2からのOSアップデートやパッケージ取得などが主な用途です。
# パブリックサブネットにNAT Gatewayを作成し、ルートテーブルで使用 0.0.0.0/0 → NAT Gateway
単一NAT Gatewayの可用性リスクに注意し、可能であればAZごとに配置するのが理想です(コストとのバランスも考慮)。
VPCエンドポイントの活用
NAT経由ではなく、VPC内からAWSサービスへ直接接続する仕組みがVPCエンドポイントです。これによりコスト削減とセキュリティ向上が実現できます。
- Interfaceエンドポイント: SSM、Secrets Managerなど
- Gatewayエンドポイント: S3、DynamoDB用(無料)
# S3向けのGatewayエンドポイントを作成(例)
aws ec2 create-vpc-endpoint \ --vpc-id vpc-xxxxxx \ --service-name com.amazonaws.ap-northeast-1.s3 \ --route-table-ids rtb-xxxxxx \ --vpc-endpoint-type Gateway
Transit Gatewayによる複数VPC接続
マルチアカウント・マルチVPC環境が一般化する中で、VPC間の接続を効率化するハブ構成が求められています。その代表的ソリューションがTransit Gatewayです。
Transit Gatewayのメリット
- VPC間をフルメッシュで接続せずに済む
- オンプレミスとの統合もしやすい
- IAM制御、ルート制御も一元化
従来の「VPC Peering」は規模が大きくなると管理が煩雑になりますが、Transit Gatewayを使えばスケーラブルかつ集中管理されたネットワーク構成が可能です。
# Transit Gatewayの作成例(CLI)
aws ec2 create-transit-gateway \ --description "My TGW" \ --options AmazonSideAsn=64512
NACLとセキュリティグループの設計
AWSでは、ステートレスなNACLと、ステートフルなセキュリティグループの2段階でトラフィック制御が行えます。用途や粒度によって使い分けが必要です。
セキュリティグループ(SG)の特徴
- インスタンス単位で適用
- ステートフル(リクエストに対するレスポンスは自動許可)
- 「許可ルール」のみ定義可能
NACLの特徴
- サブネット単位で適用
- ステートレス(戻りトラフィックも明示的に許可が必要)
- 許可と拒否ルールの両方を設定可能
NACLはDDoS防御や、IPレンジでのブラックリスト運用などに活用されます。
ルール設計の注意点
# セキュリティグループの例:
HTTP/HTTPSを許可 Inbound: - TCP 80 from 0.0.0.0/0 - TCP 443 from 0.0.0.0/0 Outbound: - All traffic allowed (デフォルト)
# NACLの例:社内IPのみSSHを許可 Inbound: 100 Allow TCP 22 from 10.1.0.0/16 110 Deny ALL from 0.0.0.0/0
まとめ
VPCとネットワークの設計は、AWSインフラ全体の信頼性・可用性・セキュリティに直結する最重要項目です。本章では、以下の観点から構築・改善のポイントを解説しました。
- 明確なCIDR設計とサブネット分離で拡張性を確保
- NATとVPCエンドポイントを使い分けてセキュアな通信を実現
- Transit GatewayでマルチVPCを統合
- セキュリティグループとNACLで多層防御を構築