ある企業は、8つのAWSアカウントに分散した12のマイクロサービスを運用しています。サービス間通信の実装について以下の要件があります。 ・サービス間のmTLS(相互TLS)認証 ・IAMポリシーによるサービスレベルのきめ細かいアクセス制御 ・HTTP/1.1・HTTP/2をサポートしたロードバランシングとヘルスチェック ・VPCピアリングのフルメッシュ化を避け、管理の複雑さを最小化 ・新しいサービスを既存ネットワーク変更なしで追加できること これらすべての要件を満たす最適なソリューションはどれか?
Amazon VPC Latticeは、マイクロサービスアーキテクチャにおけるクロスVPC・クロスアカウントのサービス間通信を簡素化するAWSマネージドサービスです。サービスネットワーク(論理的な通信境界)にサービスを登録し、各VPCをサービスネットワークに関連付けることで、VPCピアリングやTGWのフルメッシュ構成なしにサービス間通信を実現します。 VPC LatticeはmTLS認証をネイティブサポートし、ACMが管理する証明書を使用した相互TLS認証を設定できます。IAMリソースポリシーをサービスに直接アタッチすることで、送信元アカウント・IAMロール・VPCに基づくきめ細かいアクセス制御が可能です。HTTP/1.1、HTTP/2、gRPCのロードバランシングとヘルスチェックも組み込まれています。AWS RAMでサービスネットワークを共有するため、新しいサービスを追加する際に既存のVPCネットワーク変更は不要です。 選択肢AのTransit GatewayはVPC間IPルーティングのハブとして機能しますが、mTLS認証やIAMベースのサービスレベルアクセス制御、HTTP/2ロードバランシングをネイティブに提供しません。 選択肢BのAWS PrivateLinkは個別サービスのエンドポイント公開には有効ですが、12サービス × 8アカウントの組み合わせで多数のエンドポイントが必要となり管理が複雑です。またmTLS認証やIAMアクセス制御のネイティブサポートもありません。 選択肢DのECS Service Connect + Cloud Mapはコンテナ(ECS)環境でのサービスディスカバリに有用ですが、mTLS認証のネイティブサポートやクロスアカウント統合管理機能はVPC Latticeほど充実していません。