Amazon VPC Lattice によるサービスネットワーキング - マイクロサービス間通信の簡素化
Envoy プロキシ不要の L7 サービスネットワーキングで、クロス VPC・クロスアカウントのマイクロサービス間通信を簡素化する。IAM 認証と App Mesh との使い分けを紹介します。
サービスネットワークの構成
VPC Lattice はアプリケーションレイヤー (L7) のサービスネットワーキングを提供し、複数の VPC やアカウントにまたがるサービス間通信を簡素化します。サービスネットワークは論理的な境界で、関連するサービスをグループ化します。VPC をサービスネットワークに関連付けると、その VPC 内のリソースからサービスネットワーク内の全サービスにアクセスできます。各サービスには自動生成された DNS 名が割り当てられ、VPC ピアリングや Transit Gateway の設定なしにクロス VPC 通信が可能です。RAM (Resource Access Manager) でサービスネットワークやサービスを他のアカウントと共有できます。
ルーティングと認証
サービスにはリスナー (HTTP または HTTPS) を設定し、リスナールールでリクエストのパス、ヘッダー、メソッドに基づくルーティングを定義します。ターゲットグループには EC2 インスタンス、IP アドレス、ECS タスク、Lambda 関数、ALB を登録でき、異なるコンピュートタイプを統一的に扱えます。加重ルーティングで複数のターゲットグループにトラフィックを分割し、カナリアリリースや Blue/Green デプロイを実現します。IAM 認証ポリシーをサービスネットワークまたはサービスに適用し、呼び出し元の IAM ロールに基づくアクセス制御を行います。SigV4 署名でリクエストを認証し、ポリシーで許可されたサービスのみが通信できます。
App Mesh との使い分け
VPC Lattice と App Mesh はどちらもサービス間通信を管理しますが、対象レイヤーと運用モデルが異なります。 VPC Lattice は L7 のサービスネットワーキングを AWS マネージドで提供し、 Envoy プロキシのデプロイや管理が不要です。 App Mesh は Envoy ベースのサービスメッシュで、サーキットブレーカーやリトライポリシーの細かい制御が可能ですが、サイドカープロキシの運用負荷があります。 VPC Lattice はクロス VPC ・クロスアカウントのサービス間通信に強みがあり、マイクロサービスが複数の VPC やアカウントに分散している環境に適しています。 App Mesh は単一 VPC 内のきめ細かいトラフィック制御 (カナリアデプロイ、トラフィックシフト) に適しています。両者を併用し、 VPC 間通信は Lattice 、 VPC 内通信は App Mesh で管理する構成も可能です。 サービスメッシュの基礎から応用まで、書籍 (Amazon)で体系的に学べます。
VPC Lattice の料金
VPC Lattice の料金はサービスの時間課金、リクエスト数、データ処理量の 3 要素で構成されます。サービスは 1 つあたり約 0.025 ドル/時で、リクエストは 100 万リクエストあたり約 0.10 ドル、データ処理は 1 GB あたり約 0.025 ドルです (2026 年 8 月時点)。ALB と比較すると、リクエスト単価は低いものの、サービス数が多い環境ではサービスの時間課金が積み上がります。サービスネットワークへの VPC アソシエーションは無料で、複数の VPC からサービスにアクセスしても追加のネットワーク料金は発生しません。アクセスログを S3 に出力してトラフィックパターンを分析し、利用頻度の低いサービスの統合を検討することでコストを最適化します。
VPC やアカウントをまたぐ接続の簡素化
マイクロサービスが複数の VPC やアカウントに分散すると、サービス間の通信経路を確保するのが煩雑になります。従来はピアリングや Transit Gateway でネットワークをつなぎ、IP の重複に気を配り、ルーティングを設計する必要がありました。VPC Lattice は、こうしたネットワークの詳細を意識せずに、サービス単位で論理的に接続できる仕組みを提供します。サービスをネットワークに登録すれば、境界を越えて互いに呼び出せるようになります。アプリケーション開発者が、低レイヤーのネットワーク設計に深入りせずにサービス連携を実現できる点が、大きな利点です。
観測性とアクセス制御
サービス間通信が増えると、どのサービスがどのサービスを呼んでいるか、通信が正常かを把握することが運用上重要になります。VPC Lattice は、通信のログを記録し、サービス間のやり取りを可視化する手段を備えています。これにより、依存関係の把握や、障害時の切り分けがしやすくなります。アクセス制御では、認証ポリシーを使って、許可されたサービスやプリンシパルだけが特定のサービスを呼び出せるよう制限できます。ネットワークレベルの制御に加えて、サービス単位できめ細かく通信を許可・拒否できるため、ゼロトラストに近い通信制御を実現できます。
まとめ
VPC Lattice はマイクロサービス間通信のネットワーク設定を簡素化し、IAM ベースの認証でサービス間のアクセス制御を実現します。サービスネットワークによるクロス VPC・クロスアカウント通信を Envoy プロキシなしで提供し、App Mesh と比較して運用負荷を大幅に削減します。L7 のルーティングルールでパスやヘッダーに基づくトラフィック制御を行い、アクセスログでトラフィックパターンを分析します。