Amazon VPC Lattice
VPC やアカウントをまたいだサービス間通信を統一的に管理し、認証 / 認可 / トラフィック制御を提供するアプリケーションネットワーキングサービス
概要
Amazon VPC Lattice は、複数の VPC やアカウントに分散したサービス間の通信を、統一的なコントロールプレーンで管理するアプリケーションレイヤーのネットワーキングサービスです。従来は VPC ピアリング、Transit Gateway、PrivateLink、ALB などを組み合わせて構築していたサービス間接続を、VPC Lattice のサービスネットワークという抽象化レイヤーで簡素化します。サービスの登録、トラフィックルーティング (重み付け、パスベース)、相互認証 (IAM、SigV4)、アクセスポリシーによる認可を宣言的に設定でき、マイクロサービスアーキテクチャにおけるサービスメッシュの役割を VPC レベルで担います。Lambda、ECS、EKS、EC2 など異なるコンピュートプラットフォーム上のサービスを統一的に扱えます。
サービスネットワークとサービスの設計
VPC Lattice のリソースモデルは、Service Network → Service → Target Group → Target の階層で構成されます。Service Network は複数のサービスをグループ化する論理的なネットワークで、VPC を Service Network に関連付けることで、その VPC 内のリソースがネットワーク内の全サービスにアクセスできるようになります。Service はリスナー (HTTP/HTTPS、ポート) とルーティングルールを持ち、リクエストのパスやヘッダーに基づいて適切な Target Group にトラフィックを振り分けます。Target Group には Lambda 関数、ECS タスク、EKS Pod、EC2 インスタンス、ALB を登録でき、異なるコンピュートプラットフォームのサービスを同一の Service Network 内で透過的に接続できます。クロスアカウントでの Service Network 共有は AWS RAM (Resource Access Manager) を通じて行い、組織内の複数アカウントにまたがるサービスメッシュを構築できます。
認証 / 認可とゼロトラストネットワーキング
VPC Lattice はサービス間通信にゼロトラストの原則を適用するための認証 / 認可機能を内蔵しています。認証方式として IAM (SigV4 署名) を選択すると、リクエスト元のサービスが IAM ロールで認証され、Auth Policy でサービス単位のアクセス制御を宣言的に定義できます。例えば「サービス A からサービス B への GET リクエストのみ許可し、POST は拒否する」といった細粒度のポリシーを JSON で記述します。TLS 終端は VPC Lattice が自動的に処理し、サービス間の通信は常に暗号化されます。アクセスログは S3、CloudWatch Logs、Kinesis Data Firehose に出力でき、誰がいつどのサービスにアクセスしたかの監査証跡を保持します。従来の Security Group ベースの IP アドレス制御と比較して、サービスアイデンティティに基づく論理的なアクセス制御が可能になります。
トラフィック管理と既存アーキテクチャからの移行
VPC Lattice のルーティング機能は、重み付きターゲットグループによるトラフィック分割をサポートし、カナリアデプロイやブルーグリーンデプロイを実現します。新バージョンのサービスに 10% のトラフィックを流し、メトリクスを確認しながら段階的に比率を上げるカナリアリリースが、追加のロードバランサーなしで設定できます。既存のアーキテクチャからの移行では、まず新規サービス間の接続から VPC Lattice を導入し、既存の ALB や PrivateLink ベースの接続は段階的に移行するアプローチが推奨されます。VPC Lattice は既存のネットワーク構成と共存でき、移行期間中は両方の接続方式を並行運用できます。コスト構造はデータ処理量 (GB 単位) とリクエスト数で決まり、ALB + NAT Gateway の組み合わせと比較してシンプルな料金体系です。特にクロスアカウント / クロス VPC の通信では、Transit Gateway のデータ処理料金が不要になるため、大規模なマイクロサービス環境ではコスト削減効果が顕著です。
参考資料 (AWS 公式)
本ページの一次情報は AWS 公式サイトと公式ドキュメントです。最新の仕様と料金は次の公式ページで確認できます。
本ページと公式ドキュメントの記述が食い違う場合は、公式ドキュメントを正としてください。