CloudFrontのキャッシュ設定を誤ってオリジンに負荷が集中し、深夜に呼び出された経験がある。ネットワーク周りのサービスは組み合わせ次第で挙動が大きく変わるので、それぞれの役割を整理しておく必要を感じた。
VPC — 仮想ネットワーク
図1: VPC・ALB・CloudFront・Route 53・API Gateway 構成
Amazon VPC(Virtual Private Cloud) はAWS上に作成する仮想プライベートネットワークです。 EC2・RDS・ECS などほぼすべてのリソースは VPC 内に配置されます。 VPC を適切に設計することが、セキュアな AWS 環境の出発点です。
✅ 標準的な VPC 設計パターン
パブリックサブネット(ALB・NAT GW)+ プライベートサブネット(EC2/ECS・RDS)の2層構成が基本です。RDS は必ずプライベートサブネットに配置し、インターネットからの直接アクセスを遮断します。
ALB / NLB — ロードバランサー
AWS のロードバランサーには主に2種類あります。
| 比較項目 | ALB(Application LB) | NLB(Network LB) |
|---|---|---|
| OSI 層 | L7(HTTP/HTTPS/gRPC) | L4(TCP/UDP/TLS) |
| ルーティング | パスベース・ホストベース・ヘッダーベース | ポートベース(固定 IP アドレスを持てる) |
| SSL 終端 | ALB で終端(ACM 証明書を直接アタッチ) | TLS パススルーまたは NLB で終端 |
| WebSocket | 対応 | 対応 |
| 主な用途 | Webアプリ・マイクロサービスルーティング | ゲーム・IoT・固定IP必要なユースケース |
💡 ALB を選ぶべきケース
大多数のWebアプリには ALB で十分です。パスベースルーティング(/api/ → ECS サービスA、/admin/ → ECS サービスB)でマイクロサービスへのトラフィック振り分けも容易に実現できます。
CloudFront — CDN
Amazon CloudFront は世界450箇所以上のエッジロケーションを持つ CDN(Content Delivery Network)です。 S3・ALB・EC2・API Gateway などをオリジンとして設定し、コンテンツをキャッシュ・配信します。
Route 53 — DNS
Amazon Route 53 は高可用・高性能なマネージド DNS サービスです。 ドメイン名と IP アドレスの名前解決に加え、ヘルスチェックと組み合わせたフェイルオーバーやレイテンシーベースルーティングも提供します。
| ルーティングポリシー | 用途 |
|---|---|
| シンプルルーティング | 1つのリソースに固定でルーティング |
| 加重ルーティング | 複数リソースにトラフィックを割合で分散(カナリアリリース) |
| レイテンシーベース | ユーザーに最も近いリージョンに誘導 |
| フェイルオーバー | プライマリが不健全になった場合にセカンダリへ切り替え(DR構成) |
| 地理的ルーティング | ユーザーの地理的位置に基づいてルーティング |
API Gateway — APIゲートウェイ
Amazon API Gateway は REST/WebSocket/HTTP API を作成・管理・デプロイするフルマネージドサービスです。 Lambda・EC2・ECS などのバックエンドとクライアントの間に立ち、認証・レート制限・ルーティングを担います。
ネットワークサービス一覧と役割
| サービス | OSI 層 | 役割 | 代表的な用途 |
|---|---|---|---|
| VPC | L3 | 仮想ネットワーク空間 | 全AWSリソースの土台 |
| ALB | L7 | HTTP/S ロードバランサー | WebアプリへのトラフィックをECS/EC2に分散 |
| NLB | L4 | TCP/UDP ロードバランサー | 固定IP・超高スループット・UDP が必要なユースケース |
| CloudFront | L7 | CDN・エッジキャッシュ | 静的コンテンツ配信・DDoS軽減・HTTPS強制 |
| Route 53 | DNS | 名前解決・ルーティング | ドメイン管理・DR フェイルオーバー |
| API Gateway | L7 | API 管理・ゲートウェイ | サーバーレスAPI・Lambda 統合・スロットリング |
AWSネットワーク設計でよくある誤り
VPC・サブネット・セキュリティグループの設計ミスは、セキュリティホールやサービス間疎通障害の原因になります。
| 誤り/失敗パターン | 何が起きるか | 正しい対処/防止策 |
|---|---|---|
| 全リソースをパブリックサブネットに配置する | DBやバックエンドサービスがインターネットに直接露出しセキュリティリスクが高まる | DBはプライベートサブネット、Webサーバーはパブリックサブネットに分けてLBを経由させる |
| セキュリティグループのインバウンドを0.0.0.0/0(全開放)にする | 全IPからのアクセスが可能になり不正アクセスリスクが高まる | SSHは管理IP限定、DBはアプリのセキュリティグループIDのみ許可するように絞る |
| VPCのCIDRブロックを小さく設定してサブネットが足りなくなる | IPアドレスが枯渇しリソース追加ができなくなる | 拡張余地を見込んで/16程度のCIDRをVPCに割り当て、サブネットは/24単位で切る |