Networking and Content Delivery

Amazon API Gateway

LambdaやFMの呼び出しをHTTP/WebSocketの口として公開する汎用サービス。AIP-C01では「生成AIサービスではない」からこそ、統合タイムアウトとストリーミング対応の限界がそのまま出題の分岐点になります。

  • B|実装まわり
  • D2 実装と統合
  • D3 安全性・セキュリティ・ガバナンス
  • D4 運用効率と最適化

ひとことで言うと

Lambda や HTTP バックエンドを、外部から呼べる URL として公開する窓口です。生成AI固有のサービスではなく、エージェントのツールやチャットUIの背後にある既存の仕組みをそのまま使っているだけです。

要するに、人間用の受付窓口です。AgentCore Gateway が「エージェント専用の通用口(MCP変換・ツール発見・認可を一括で持つ)」だとすると、API Gateway は昔からある正面の受付。REST/HTTP でリクエストを受け、Lambda に渡し、レスポンスを返す。エージェントの文脈で出てくるのは、この受付に「生成が長い」「トークンを少しずつ返したい」という新しい要求が来たときです。

なぜ生まれたか

もともとはサーバーレスの前段(認証・スロットリング・バージョニング)を肩代わりする汎用サービスとして生まれました。GenAI 文脈での摩擦点は別で、モデル呼び出しの応答時間がAPI Gatewayの前提より長いことです。

摩擦API Gateway 側の受け皿
FM呼び出しは数秒〜十数秒かかることがある統合タイムアウト(既定・上限とも 29,000ミリ秒。Regional/privateに限り引き上げ申請可)
生成し終わるまで待たせると体感が悪いLambda プロキシ統合のレスポンスストリーミング(InvokeWithResponseStream を使う専用の統合)
対話をプッシュ配信したいWebSocket API($connect/$default/$disconnect ルート)

何に使うか

用途使い方関連ドメイン
エージェントのツールをHTTPで公開Lambda 統合+usage plan・APIキーでレート制御D2
Bedrock の生成をトークン単位で中継Lambda プロキシ統合のストリーミング(後述)D2, D4
動的モデル切替の窓口API Gateway → Lambda → AppConfig でモデルIDを注入(コード変更なし)D1
モデル呼び出しのレート制限・バックオフ観測使用量プラン、X-RayD4

試験でどう問われるか

問われ方正解に寄る条件引っかけの選択肢
チャットの応答を少しずつ表示したいLambda プロキシ統合をストリーミング用に設定し、Lambda 側は InvokeWithResponseStream 形式で出力する通常のLambdaプロキシ統合のままタイムアウトだけ延ばす(バッファ方式は仕様上ストリームできない)
モデル呼び出しが29秒を超えて打ち切られる非同期化(SQS+ワーカー、Step Functions)に設計を変える統合タイムアウトの引き上げだけで解決しようとする(Regional/private限定・上限あり)
エージェントに MCP 経由でツールを渡したいAgentCore Gateway を使う(API/Lambdaを MCP互換ツールへ変換する専用サービス)API Gateway でツールを公開しようとする(プロトコル変換や意味検索の機能を持たない)
特定クライアントの乱発呼び出しを抑えたい使用量プラン+APIキーでスロットリングWAF だけで対応しようとする(レート制御の主役ではない)

「ストリーミングにすればタイムアウトが伸びる」わけではありません。統合タイムアウトの上限はストリーミング統合でも変わりません。ストリーミングが解決するのは「体感(TTFB)」であって「打ち切りまでの時間」ではないため、モデルの生成が長時間に及ぶワークロードは、ストリーミングと非同期化を別問題として設計する必要があります。

実務でどう使うか

  • 統合タイムアウトの上限は 29,000ミリ秒。 引き上げは Regional/private API に限られ、エッジ最適化APIでは不可です。Bedrock の生成が長引くシナリオでは、API Gateway 側だけをいじっても解決しません
  • WebSocket は接続時間そのものに上限があります。 アイドルタイムアウト600秒に加えて、接続時間の上限は7,200秒(2時間)。長時間の音声・チャットセッションでは、無操作でなくても強制切断されるため、再接続ロジックが要ります
  • API のペイロード上限は10MB(WebSocket以外)。 画像・音声などマルチモーダル入力を直接ボディに載せず、S3の署名付きURLを渡す設計が定石です

WebSocketの制約も見落としがちです。1メッセージのペイロードは128KB、フレームサイズは32KBが上限。大きめのツール実行結果をWebSocket経由でそのまま流すと、分割送信の実装が必要になります。

取り違えやすいもの

迷う相手切り分けの一言
AgentCore GatewayAPI Gateway は人間/クライアント向けのHTTP窓口。AgentCore Gateway はエージェント向けにAPIをMCPツールへ変換し、認可・意味検索まで持つ専用サービス
AWS AppSyncAPI Gateway はREST/WebSocketの汎用中継。AppSync はGraphQLとPub/Sub(Events)に特化し、サブスクリプションでの配信管理までマネージド
Lambda 関数URLどちらもストリーミング可能。関数URLは Lambda 単体を素早く公開する最小構成、API Gateway は使用量プラン・カスタムドメイン・複数バックエンドの集約が要るときに選ぶ

想起チェック

Q1. Bedrock の生成トークンを少しずつクライアントに返したい。API Gateway側で何を変える?

Lambda プロキシ統合をレスポンスストリーミング用に設定します(InvokeWithResponseStream を使う専用の統合方式)。Lambda 関数側もメタデータ+8バイトのnullデリミタ+ペイロードという専用フォーマットで出力する必要があります。

Q2. エージェントに社内APIをツールとして使わせたい。API GatewayとAgentCore Gatewayのどちらを選ぶ?

AgentCore Gatewayです。API/Lambda/既存サービスをMCP互換ツールに変換し、意味検索によるツール発見・OAuthの入出両方向認可までを1つのマネージドサービスで持ちます。API Gateway はここまでの機能を持ちません。

Q3. 統合タイムアウトの上限は何ミリ秒?誰でも引き上げられる?

29,000ミリ秒が既定かつ上限です。引き上げはService Quotasから申請できますが、Regional APIまたはprivate APIに限られ、エッジ最適化APIでは引き上げられません。

出典(AWS公式)