Dev Study
AWSサービスの内部原理 コース

40. 統合タイプ — プロキシは素通し、非プロキシは翻訳

API Gateway の5つの統合タイプは、同じ4段パイプラインの「真ん中2段」をどう扱うかだけの違い——それを図で追っていきます。

① 土台はいつも同じ「4段パイプライン」

クライアント
バックエンドへ
① メソッドリクエストクライアントからの入力を受け取る
② 統合リクエストバックエンド向けに整える
ここが分岐点
生の応答
バックエンドLambda / AWSサービス / HTTP
HTTPレスポンス
③ 統合レスポンス生の応答を受ける
ここも分岐点
④ メソッドレスポンスクライアント向けに整える
クライアントへ返却
  • 名前の末尾に PROXY が付く → 真ん中2段を素通し(パススルー)
  • PROXY が付かない → 真ん中2段で翻訳(変換)を行う
  • プロキシ=配管をまっすぐ通す / 非プロキシ=途中に変換器を挟む

リクエストは必ずこの4段を通る。5つの統合タイプの違いは、真ん中2段(統合リクエスト/統合レスポンス)を自分で書くか書かないか、の一点に集約される。

② AWS_PROXY:素通しだが「プロトコル変換」は起きている

HTTPリクエストヘッダー・パス変数・クエリ・ボディ
入力としてそのまま渡す
決まったJSONイベントあらゆる情報を1つの形式に
決まった出力形式を返す
Lambda 関数変換ロジックはコード側にある
API Gateway が HTTPレスポンスに組み立て
statusCode / headers / body決まった出力オブジェクト
クライアント
  • 公式:「統合リクエストも統合レスポンスも設定しない。受信リクエストをそのまま Lambda への入力として渡す」
  • 素通し=変換が消えるのではなく、変換ロジックが API Gateway の設定側から Lambda のコード側へ移っただけ
  • HTTP という通信の型 → イベントオブジェクトを引数に取る関数呼び出し、というプロトコル変換

統合リクエスト/レスポンスは一切設定しない。だが HTTP がそのまま流れるのではなく、API Gateway が決まった JSON イベントに詰め替える——HTTP をイベント駆動の関数呼び出しへ変換している。

③ 非プロキシ(AWS / HTTP):真ん中2段を自分で書く

メソッドリクエスト
翻訳された呼び出し
統合リクエスト自分で書く
データマッピング必須
生の応答
DynamoDBAWS統合
SQSAWS統合
任意のHTTPエンドポイントHTTP統合
マッピングテンプレート
統合レスポンス自分で書く
データマッピング必須
メソッドレスポンス
  • AWS 統合=「API が AWS のサービスアクションを公開できるようにする」もの
  • Lambda カスタム統合は AWS 統合の特殊例(統合先が Lambda の関数呼び出しアクションに固定)
  • 利点:似た入出力形式なら複数バックエンドでテンプレートを再利用でき、バックエンドを変換ロジックから切り離せる

マッピングテンプレートで JSON を別の形の JSON に組み替える(直列化)。AWS 統合なら HTTP リクエストが DynamoDB や SQS の API 呼び出しへ翻訳される。

④ MOCK:バックエンドに行かず、その場で答える

クライアント
固定応答を返却
API Gatewayあらかじめ決めた応答をその場で返す
バックエンド先送りされない=到達しない
存在しなくてよい
クライアントへ即応答
  • 実例1:CORS プリフライトに応じる OPTIONS メソッドの応答(コンソールが MOCK 統合で自動生成)
  • 実例2:エラー時に返るゲートウェイレスポンスも MOCK 統合の一例
  • バックエンドに触れずヘッダーや固定応答だけ返したい場面の最短経路

リクエストをバックエンドへ先送りせず、API Gateway 自身がレスポンスを返す。テストで使う「スタブ/モック」の考え方が統合タイプとして製品化されたもの。

⑤ 選択の軸は2つ:「変換を誰が書くか」×「バックエンドに行くか」

AWS_PROXY素通し → Lambda
変換はコード側
HTTP_PROXY素通し → 任意のHTTP
そのまま流す
非プロキシ系:真ん中2段を自分で書く
AWS翻訳 → AWSサービス
変換は設定側
HTTP翻訳 → 任意のHTTP
マッピングテンプレート
MOCKどこにも行かない。API Gateway 自身が答える
  • Lambda を素早くつなぐ → AWS_PROXY
  • 複数バックエンドで変換を共通化したい → 非プロキシ(AWS / HTTP)
  • バックエンド抜きで応答を返したい → MOCK

5タイプはすべて同じ4段パイプラインの上にあり、真ん中2段の扱いを変えているだけ。この2軸で見れば暗記ではなく原理で選べる。

公式ドキュメントで詳しく ↗