企業が複数のチーム、ベンダー、インフラストラクチャにわたってAIエージェントを展開するにつれて、エージェント間通信の管理は増大する運用負荷となります。集中化レイヤーがない場合、新しいエージェントを統合するたびにポイントツーポイント接続、個別の認証情報、カスタムルーティングロジックが追加されます。チームはエージェント機能の構築ではなく、接続の配線にエンジニアリングサイクルを費やします。アクセス制御は断片化し、どのクライアントがどのエージェントにアクセスできるかを強制する単一の場所がありません。その結果、新しいエージェントワークフローの市場投入までの時間が遅れ、一貫性のない認証ポリシーによるセキュリティリスクが増大し、ネットワークに新しいエージェントが追加されるたびに運用オーバーヘッドが二次関数的に増加します。
ゲートウェイパターンは、エージェントがAmazon ECS、AWS Lambda、Amazon Bedrock AgentCoreランタイム、非AWSクラウド、またはハイブリッド環境のいずれで実行されていても、エージェントの前に単一のエントリポイントを配置することでこの問題に対処します。ルーティングを集中管理し、特定のランタイム、フレームワーク、オーケストレーションレイヤーにチームを縛ることなく、きめ細かい権限を強制します。このパターンは、エージェント間通信を標準化するAgent-to-Agent(A2A)プロトコルに基づいています。中央オーケストレーターがない場合、20のエージェントのデプロイには最大190のポイントツーポイント接続が必要になります。
この記事では、AWS上でサーバーレスA2Aゲートウェイを構築し、パスベースのルーティング(/agents/{agentId})を使用して複数のエージェントを単一ドメインでホストする方法を学びます。標準のA2Aクライアントはそのまま動作します。このソリューションには3つのレイヤーがあります。管理レイヤー:一元化されたエージェントレジストリと意味検索を備えた発見。制御レイヤー:JSON Web Token(JWT)スコープとLambdaオーソライザーを使用したきめ細かいアクセス制御。実行レイヤー:OAuthバックエンド認証とServer-Sent Events(SSE)ストリーミングをサポートする単一ドメインルーティング。
アーキテクチャ
Amazon API Gateway(REST API)が単一のエントリポイントとして機能します。アーキテクチャはREST APIを使用します。これは、REST APIがレスポンスのストリーミングをサポートしているためです。ストリーミングはSSEベースのリアルタイムエージェント応答に必要です。LambdaオーソライザーはJWTスコープを検査し、特定のエージェントパス(/agents/agent-a/*)へのアクセスを許可し、その他を拒否するIAMポリシーを生成します。
Lambda関数はゲートウェイロジックを実装します。オーソライザー:JWTを検証し、スコープからエージェントへのマッピングに基づいてIAMポリシーを生成。レジストリ:呼び出し元がアクセスできるエージェントをリストし、URLをゲートウェイを指すように書き換え。検索:Amazon BedrockのAmazon Titan Text Embeddingsを使用した意味的なエージェント発見。プロキシ:Lambda Web Adapterを介してOAuth認証でリクエストをバックエンドエージェントにルーティングし、SSEストリーミングをサポート。管理:エージェントの登録とライフサイクル管理。
Amazon DynamoDBは3つのテーブルを保存します。エージェントレジストリはエージェントIDをバックエンドURL、認証設定、キャッシュされたエージェントカードにマッピングします。権限テーブルはJWTスコープを許可されたエージェントにマッピングします。レート制限カウンターテーブルは1分あたりのリクエストをカウントします。
Amazon CognitoはOAuth 2.0クライアントクレデンシャルフローを使用して認証を処理します。トークン内のスコープにより、呼び出し元がアクセスできるエージェントが決まります。
ゲートウェイの設計
A2AネイティブエンドポイントはA2Aプロトコル仕様に従い、バックエンドエージェントにルーティングします。ゲートウェイは仕様で定義された2つのプロトコルバインディング、JSON-RPCとHTTP+JSON/RESTをサポートしています。さらに、ゲートウェイエンドポイントはエージェントの発見、検索、ライフサイクル管理を提供します。
3層モデル
エージェントのデプロイが増えるにつれて、チームは何が利用可能かを把握する必要があります。管理レイヤーは、エージェントの機能、バックエンドURL、ステータスがカタログ化された一元化されたレジストリを提供します。制御レイヤーはJWTスコープに基づいてきめ細かい権限を強制し、未承認のリクエストはAPI Gatewayレベルで拒否されます。実行レイヤーはバックエンドエージェントへの実際のリクエストルーティングを処理し、SSEストリーミングとOAuth認証をサポートします。
デプロイとテスト
ゲートウェイはTerraformで完全にデプロイされます。前提条件はTerraform >= 1.5.0、Python 3.12、有効な認証情報で設定されたAWS CLI、Dockerです。コードはaws-samples GitHubリポジトリで入手できます。リポジトリをクローンし、変数を設定し、Lambdaパッケージをビルドしてデプロイします。テストでは、認証情報の取得、JWTの取得、サンプルエージェントのデプロイ、ゲートウェイへのエージェント登録、権限の更新、メッセージの送信を行います。
このソリューションは、エンタープライズAIアプリケーション向けのスケーラブルで安全かつ管理しやすいエージェント通信インフラストラクチャを提供します。