Instiq
第2章 · 実装と統合·v1.0.0·更新 2026/6/22·読了目安 約11分

変更要約: 初版: ドメイン2(実装と統合)の5節を作成

2.4FM API 統合

この節の要点

FM API を堅牢に統合する技法を学びます。同期/非同期(SQS)、Bedrock ストリーミング(WebSocket/SSE)、指数バックオフ/レート制限/フォールバック、X-Ray による可観測性、モデルルーティング を扱います。

FM 呼び出しは遅く・失敗しうる・トークン課金という性質があります。同期/非同期の使い分け、ストリーミング、再試行、ルーティングで堅牢に統合します。

2.4.1堅牢な API 統合

  • 同期/非同期:即時応答は同期、長時間処理は SQS で非同期化して呼び出し側をブロックしない。
  • ストリーミングBedrock ストリーミング API + WebSocket/SSE で生成テキストを逐次返し、体感レイテンシを下げる。
  • 回復性指数バックオフで 429/スロットリングを捌き、API Gateway でレート制限、障害時はフォールバックで縮退運転。
  • 可観測性AWS X-Ray でサービス境界をまたいで FM API 呼び出しをトレースする。
  • モデルルーティング:内容に応じて専門 FM へ静的/動的にルーティング(Step FunctionsAPI Gateway の変換)。
試験ポイント

「逐次表示で体感を上げる=ストリーミング(WebSocket/SSE)」「429/スロットリング=指数バックオフ+API Gateway レート制限」「長時間処理=SQS で非同期」「FM 呼び出しの分散トレース=X-Ray」「内容で最適モデルへ=モデルルーティング」 は頻出です。

統合の堅牢性は「待たせない・落とさない・追える」で測ります。チャットは Bedrock ストリーミング APIAPI Gateway(WebSocket/SSE・チャンク転送)で逐次表示し、長時間バッチは SQS で非同期化して Lambda ワーカーが処理。スロットリング(429)は AWS SDK指数バックオフ+ジッターで再試行し、API Gateway でクライアント側のレート制限、過負荷時はフォールバックモデル/キャッシュで graceful degradation。失敗の可視化は AWS X-Ray でサービス境界をまたいでトレースし、レイテンシのボトルネック(埋め込み/検索/生成のどこか)を特定します。ルーティングは、単純なら API Gateway のリクエスト変換で静的に、文脈依存なら Step Functions で動的に最適 FM を選びます。これらにより、遅延・失敗・コストに強い API 層を構築します。

課題対策補足
応答が遅く感じるストリーミングWebSocket/SSE で逐次
429/スロットリング指数バックオフ+レート制限SDK+API Gateway
長時間処理SQS で非同期呼び出し側を解放
ボトルネック特定X-Rayサービス境界をトレース
注意

ひっかけ: 「スロットリングはリトライ回数を即上限まで増やせば解決」は誤りです。指数バックオフ+ジッターで間隔を空けて再試行し、根本対策は容量(プロビジョンド/Cross-Region)。また「長い生成は同期で待たせればよい」も誤り(SQS で非同期化+ストリーミングが定石)。

ストリーミング・指数バックオフ・SQS非同期・X-Ray の堅牢な統合図。
待たせない/落とさない/追える

2.4.2この節のまとめ

  • 待たせない=ストリーミング/SQS 非同期/落とさない=指数バックオフ+レート制限+フォールバック
  • 追える=X-Ray/最適化=モデルルーティング

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. チャット UI で、生成完了まで数秒かかる長い回答の体感レイテンシを下げたい。最適な手段は?

Q2. ピーク時に Bedrock が 429(スロットリング)を返す。クライアント側でまず取るべき適切な対策は?

Q3. 複数のマイクロサービスと Bedrock 呼び出しを横断するリクエストで、レイテンシのボトルネックがどの区間かを特定したい。最適なのは?

理解度を確認第2章「実装と統合」の問題を解く