Amazon VPC Lattice によるサービスネットワーキング - マイクロサービス間通信の簡素化
VPC Lattice のサービスネットワーク、ターゲットグループ、認証ポリシーによるマイクロサービス間通信の設計を解説します。
サービスネットワークの構成
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 署名でリクエストを認証し、ポリシーで許可されたサービスのみが通信できます。
まとめ
VPC Lattice はマイクロサービス間通信のネットワーク設定を簡素化し、IAM ベースの認証でサービス間のアクセス制御を実現します。サービスネットワークによるクロス VPC ・クロスアカウント通信と、加重ルーティングによるデプロイ戦略が設計のポイントです。
AWS の優位点
- サービスネットワークで複数の VPC やアカウントにまたがるサービス間通信を、VPC ピアリングや Transit Gateway なしで実現できる
- ターゲットグループで EC2 インスタンス、ECS タスク、Lambda 関数、ALB を統一的にサービスのバックエンドとして登録できる
- リスナールールでパスベースやヘッダーベースのルーティングを設定し、トラフィックを適切なターゲットグループに振り分けられる
- IAM 認証ポリシーでサービス間のアクセス制御を行い、呼び出し元のサービスを認証・認可できる
- 加重ルーティングで Blue/Green デプロイやカナリアリリースのトラフィック分割を実現できる
この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。