VPC の基本設計
VPC(Virtual Private Cloud)は AWS 上の論理的なネットワーク分離単位だ。 オンプレの VLAN 分離やネットワークゾーン設計に相当する。
VPC 設計の基本原則:
- パブリックサブネット:インターネットから直接アクセスされる層(ALB/NLB、NAT Gateway 等)
- プライベートサブネット:EC2/ECS/RDS などのアプリ・DB 層。インターネットから直接アクセス不可
- マルチ AZ 構成:同一 VPC 内の複数 AZ にサブネットを配置し、可用性を確保
💡 CIDR 設計の注意
VPC の CIDR(IP アドレス範囲)はオンプレ環境と重複しないように設計する。将来のハイブリッド接続(Direct Connect / VPN)を見越して、オンプレの IP レンジと重ならない CIDR(例: 10.100.0.0/16)を割り当てよう。後から変えることは非常に困難だ。
推奨サブネット構成例(3層アーキテクチャ):
| 層 | サブネット種別 | 配置するもの |
|---|---|---|
| フロント | パブリック(AZ-a / AZ-c) | ALB / NAT Gateway / Bastion Host |
| アプリ | プライベート(AZ-a / AZ-c) | EC2 / ECS / Lambda |
| DB | プライベート(AZ-a / AZ-c) | RDS / Aurora / ElastiCache |
ロードバランサーの判断フロー
ALB(Application Load Balancer)
ALB は L7(アプリケーション層)のロードバランサーで、HTTP/HTTPS トラフィックを パスやホストヘッダーで振り分けできる。 オンプレの F5 BIG-IP や HAProxy の多くのユースケースに対応する。
ALB の主な機能:
- パスベースルーティング:
/api/*は ECS、/static/*は S3 など URL パスで振り分け - ホストベースルーティング:
api.example.comとapp.example.comを1つの ALB で捌く - ヘルスチェック:バックエンドの HTTP ステータスコードでヘルスを判定
- SSL/TLS ターミネーション:証明書は ACM(AWS Certificate Manager)で無料管理
- WAF 統合:AWS WAF と連携してリクエストフィルタリング
- gRPC / WebSocket 対応:モダンなプロトコルもサポート
NLB(Network Load Balancer)
NLB は L4(ネットワーク層)のロードバランサーで、TCP/UDP/TLS トラフィックを超低レイテンシで処理する。 ALB と異なり、リクエスト内容を見ずに送信元/宛先ポートで転送する。
NLB を選ぶケース:
- 固定 IP が必要(NLB は Elastic IP を割り当てられる)
- ゲームサーバー・金融取引など超低レイテンシが必要な TCP 通信
- SMTP / FTP など非 HTTP プロトコル
- PrivateLink でサービスを公開する
オンプレとのハイブリッド接続
移行期間中はオンプレと AWS が共存するハイブリッド構成になる。 また「Retain」戦略で一部システムをオンプレに残す場合も、オンプレ-AWS 間の接続が必要になる。
Direct Connect vs Site-to-Site VPN
| 観点 | Direct Connect | Site-to-Site VPN |
|---|---|---|
| 接続方式 | 専用線(1〜100Gbps) | インターネット上の IPSec 暗号化トンネル |
| 帯域 | 安定・高帯域(SLA保証) | インターネット品質に依存 |
| レイテンシ | 低・安定 | 変動あり |
| セキュリティ | 閉域(暗号化なしでも物理的に分離) | IPSec 暗号化(インターネット経由) |
| コスト | 高い(ポート料金 + データ転送) | 低い(時間課金) |
| 開通リードタイム | 数週間〜数ヶ月 | 数時間〜数日 |
| 向いているケース | 本番移行・基幹系ハイブリッド | 移行前テスト・開発環境・小規模 |
💡 Direct Connect + VPN のバックアップ構成
Direct Connect は単一障害点になるリスクがある。本番環境では Direct Connect + Site-to-Site VPN(バックアップ) の冗長構成を推奨する。Direct Connect が落ちた際に自動で VPN にフェイルオーバーするよう BGP ルーティングを設定する。
セキュリティグループの設計方針
セキュリティグループは EC2 / RDS / ECS タスクなどに付与する仮想ファイアウォールだ。 オンプレのホストベース FW(firewalld / iptables)に相当する。
設計の基本原則:
- 最小権限原則:必要なポートのみ開放。「全ポート開放(0.0.0.0/0)」は NG
- セキュリティグループ参照:IP アドレスではなく、送信元のセキュリティグループ ID で指定(動的な IP 変更に強い)
- 層ごとに分ける:ALB 用・EC2 用・RDS 用でセキュリティグループを分割し、ALB → EC2 → RDS の一方向接続のみ許可
⚠️ NACLとセキュリティグループの違い
NACL(ネットワークACL)はサブネット単位のステートレスなファイアウォール。セキュリティグループはリソース単位のステートフルなファイアウォールだ。基本はセキュリティグループで制御し、NACL は追加の防御層として必要な場合のみ設定する。
実務での判断ポイント
- ALB のアクセスログ:ALB のアクセスログを S3 に出力する設定を最初から入れておく。トラブルシューティングで後から有効化しようとすると過去ログが取れない
- VPC フローログ:VPC フローログを CloudWatch Logs に出力し、予期しない通信を検出できるようにする。セキュリティ監査でも必要になることが多い
- NAT Gateway のコスト:プライベートサブネットからインターネットへのアクセスには NAT Gateway が必要だが、データ転送量に応じたコストが発生する。S3 / DynamoDB へのアクセスは VPC Endpoint 経由にすることで NAT Gateway を経由せず(コスト削減&セキュリティ強化)
✅ 次の章では…
PART 06 では非同期処理・ジョブの選び方を解説する。SQS / SNS / EventBridge / Step Functions の使い分けを判断フローで整理する。