Amazon VPC のネットワーク設計 - サブネット構成と NAT Gateway の最適化

パブリック/プライベートサブネットの分離設計、セキュリティグループの層別管理、Gateway VPC エンドポイントによる NAT Gateway コスト削減を紹介します。

VPC の概要

VPC は AWS 上に論理的に分離された仮想ネットワークを構築するサービスです。CIDR ブロックで IP アドレス範囲を定義し、サブネット、ルートテーブル、セキュリティグループ、ネットワーク ACL でネットワークを制御します。パブリックサブネットとプライベートサブネットの分離で、インターネットに公開するリソースと内部リソースのセキュリティ境界を確立します。

サブネット設計と NAT Gateway

パブリックサブネットはインターネットゲートウェイへのルートを持ち、ALB や NAT Gateway を配置します。プライベートサブネットはインターネットへの直接ルートを持たず、EC2RDSLambda を配置します。NAT Gateway はプライベートサブネットからのアウトバウンド通信 (パッケージ更新、API 呼び出し) を提供しますが、時間課金とデータ処理課金が発生します。S3 や DynamoDB へのアクセスは VPC エンドポイント (ゲートウェイ型、無料) を使用し、NAT Gateway を経由しないことでコストを削減します。VPC Flow Logs は ENI レベルのトラフィックを CloudWatch Logs や S3 に記録し、不正アクセスの検出や通信障害の調査に使用します。

セキュリティグループと NACL の設計

セキュリティグループはステートフルなインスタンスレベルのファイアウォールで、許可ルールのみを定義します。アプリケーション層 (ALB)、ビジネスロジック層 (EC2/ECS)、データ層 (RDS) ごとにセキュリティグループを分離し、層間の通信をセキュリティグループ ID で参照する設計が推奨されます。ネットワーク ACL はステートレスなサブネットレベルのファイアウォールで、許可と拒否の両方を定義できます。特定の IP レンジからのアクセスを明示的にブロックする場合や、サブネット単位での粗い制御に使用します。 VPC Flow Logs を有効にして、セキュリティグループと NACL で拒否されたトラフィックを分析し、ルールの過不足を定期的に見直します。 ネットワーク設計の知見を広げたい場合はAmazon の専門書も活用できます。

NAT Gateway のコスト最適化

NAT Gateway はデータ処理料金 (1 GB あたり約 0.062 ドル) と時間課金 (約 0.062 ドル/時) が発生し、大量のアウトバウンド通信がある環境ではコストが急増します。S3 と DynamoDB への通信は Gateway VPC エンドポイント (無料) を設定して NAT Gateway を経由させないことが最も効果的な削減策です。ECR、CloudWatch Logs、STS など頻繁にアクセスする AWS サービスにはインターフェース VPC エンドポイントを設定し、NAT Gateway のデータ処理量を削減します。マルチ AZ 構成で各 AZ に NAT Gateway を配置する場合、AZ 間のデータ転送料金は発生しませんが、NAT Gateway の時間課金が AZ 数分になります。Cost Explorer で NAT Gateway のコストを月次追跡し、VPC エンドポイントの追加による削減効果を定量的に評価します。

まとめ

VPC はサブネット分離、セキュリティグループ、ネットワーク ACL でネットワークセキュリティを多層的に確保するサービスです。アプリケーション層、ビジネスロジック層、データ層ごとにセキュリティグループを分離し、VPC Flow Logs でトラフィックを分析します。Gateway VPC エンドポイントで S3/DynamoDB への無料プライベート接続を確立し、NAT Gateway のデータ処理コストを最適化します。