Amazon API Gateway
開発者ガイド

Amazon API Gateway の概念

API Gateway

API Gateway は以下をサポートする AWS サービスです。

  • バックエンド HTTP エンドポイント、AWS Lambda 関数、その他の AWS サービスを公開するための REST アプリケーションプログラミングインターフェイス (API) の作成、デプロイ、管理。

  • AWS Lambda 関数またはその他の AWS のサービスを公開するための WebSocket API の作成、デプロイ、管理。

  • フロントエンド HTTP および WebSocket エンドポイントによって公開された API メソッドの呼び出し。

API Gateway REST API

バックエンドの HTTP エンドポイント、Lambda 関数、またはその他の AWS サービスを使用して統合されている HTTP リソースおよびメソッドのコレクション。このコレクションは、1 つ以上のステージでデプロイできます。通常、API リソースはアプリケーションロジックに従ってリソースツリーで整理されます。各 API リソースは、API Gateway でサポートされている一意の HTTP 動詞を持つ 1 つ以上の API メソッドを公開できます。

API Gateway WebSocket API

バックエンドの HTTP エンドポイント、Lambda 関数、またはその他の AWS のサービスを使用して統合されている WebSocket ルートとルートキーのコレクション。コレクションは、1 つ以上のステージでデプロイできます。API メソッドは、登録されたカスタムドメイン名と関連付けることができるフロントエンド WebSocket 接続を通じて呼び出されます。

API デプロイ

API Gateway API の特定時点のスナップショット。クライアントが使用できるようにするには、デプロイが 1 つ以上の API ステージに関連付けられている必要があります。

API 開発者

API Gateway デプロイメントを所有する AWS アカウント (プログラムによるアクセスもサポートするサービスプロバイダなど)。

API エンドポイント

特定のリージョンにデプロイされる API Gateway の API のホスト名。ホスト名の形式は {api-id}.execute-api.{region}.amazonaws.comです。次のタイプの API エンドポイントがサポートされています。

API キー

API Gateway で、REST または WebSocket API を使用するアプリ開発者を識別するために使用される英数字の文字列。ユーザーに代わって API Gateway が API キーを生成することも、CSV ファイルからインポートすることもできます。API キーを Lambda オーソライザーまたは使用量プランと一緒に使用して、API へのアクセスを制御します。

API エンドポイント」を参照してください。

API 所有者

API 開発者を参照してください。

API ステージ

REST または WebSocket API (例: 'dev'、'prod'、'beta'、'v2' など) のライフサイクル状態への論理的な参照。API ステージは API ID とステージ名によって識別されます。

アプリケーション開発者

AWS アカウントを持っているか持っていないアプリケーション作成者であり、API 開発者によってデプロイされた API を操作します。アプリケーション開発者は、顧客です。アプリケーション開発者は通常、API キーによって識別されます。

コールバック URL

新しいクライアントに WebSocket 接続を介して接続するときは、API Gateway で統合を呼び出し、クライアントのコールバック URL を保存できます。次に、このコールバック URL を使用して、バックエンドシステムからクライアントにメッセージを送信することができます。

開発者ポータル

お客様の顧客による API 製品 (API Gateway 使用量プラン) の登録、検出、サブスクライブ、API キーの管理、API の使用状況メトリクスの表示を許可するアプリケーション。

エッジ最適化 API エンドポイント

通常は AWS リージョンからのクライアントアクセスを容易にするための CloudFront ディストリビューションを使用し、指定されたリージョンにデプロイされる API Gateway API のデフォルトのホスト名。API リクエストは最寄の CloudFront 接続ポイント (POP) にルーティングされます。一般的にはこれによって地理的に分散したクライアントへの接続時間が改善します。

API エンドポイント」を参照してください。

統合リクエスト

API Gateway の WebSocket API ルートまたは REST API メソッドの内部インターフェイス。このインターフェイスでは、ルートリクエストまたはパラメータの本文、およびメソッドリクエストの本文を、バックエンドで必要な形式にマップします。

統合レスポンス

API Gateway の WebSocket API ルートまたは REST API メソッドの内部インターフェイス。このインターフェイスでは、バックエンドから受け取ったステータスコード、ヘッダー、ペイロードをクライアントアプリに返されるレスポンス形式にマップします。

マッピングテンプレート

Velocity Template Language (VTL)」で表現されるスクリプト。リクエストボディを、フロントエンドデータ形式からバックエンドのデータ形式に変換します。または、バックエンドのデータ形式からフロントエンドのデータ形式に変換します。マッピングテンプレートは、統合リクエストまたは統合レスポンスで指定できます。コンテキストおよびステージ変数として、実行時に利用できるデータを参照できます。このマッピングは、統合を通じてヘッダーまたは本文をそのままクライアントからリクエストのバックエンドに渡す、単純なアイデンティティ転換とすることができます。レスポンスについても同じです。この場合、ペイロードはバックエンドからクライアントに渡されます。

メソッドリクエスト

API Gateway での REST API メソッドのパブリックインターフェイスであり、アプリケーション開発者が API を介してバックエンドにアクセスするために送る必要のあるパラメータと本文が定義されています。

メソッドレスポンス

REST API のパブリックインターフェイスであり、アプリケーション開発者が API からのレスポンスに求めるステータスコード、ヘッダー、本文モデルが定義されています。

Mock 統合

Mock 統合では、API のレスポンスは統合バックエンドを必要とすることなく、API Gateway から直接生成されます。API 開発者は、API Gateway がモック統合リクエストにどのように応答するかを決定します。そのため、特定のステータスコードとレスポンスを関連付ける、メソッドの統合リクエストと統合レスポンスを設定します。

モデル

リクエストまたはレスポンスペイロードのデータ構造を指定するデータスキーマ。API の厳密に型指定された SDK を生成するために、モデルが必要です。また、ペイロードの検証にも使用されます。モデルは、サンプルマッピングテンプレートを生成して本稼働マッピングテンプレートの作成を開始するうえで役立ちます。このモデルは有益ですが、マッピングテンプレートを作成するうえで必須ではありません。

プライベート API

プライベート API エンドポイント」を参照してください。

プライベート API エンドポイント

インターフェイス VPC エンドポイントを介して公開された API エンドポイント。これにより、クライアントは VPC 内部で安全にプライベート API リソースにアクセスすることができます。プライベート API はパブリックインターネットからは分離されており、アクセス権限を付与されている API Gateway の VPC エンドポイントを使用してのみアクセスできます。

プライベートインテグレーション

クライアントが、リソースをパブリックインターネットに公開することなく、プライベート REST API エンドポイントを介してお客様の VPC 内のリソースにアクセスする、API Gateway の統合タイプです。

プロキシ統合

REST または WebSocket API 用の簡略化された API Gateway 統合設定。HTTP プロキシ統合または Lambda プロキシ統合としてプロキシ統合を設定できます。HTTP プロキシ統合の場合、API Gateway はフロントエンドと HTTP バックエンド間のリクエストとレスポンスの全体を渡します。Lambda プロキシ統合の場合、API Gateway はバックエンド Lambda 関数への入力としてリクエスト全体を送信します。次に、API Gateway は Lambda 関数の出力をフロントエンド HTTP レスポンスに変換します。REST API でのプロキシ統合は、プロキシリソースとともに最もよく使用されます。プロキシリソースは、greedy パス変数 ({proxy+} など) とキャッチオールの ANY メソッドの組み合わせによって表されます。

リージョン API エンドポイント

指定されたリージョンにデプロイされ、同じ AWS リージョン内の EC2 インスタンスなどのクライアントに対応する目的である API のホスト名。API リクエストは、CloudFront ディストリビューションを経由せず、リージョン固有の API Gateway を直接ターゲットとします。リージョン内のリクエストについては、リージョンエンドポイントは、CloudFront ディストリビューションへの不要なラウンドトリップをバイパスします。さらに、レイテンシーに基づくルーティングをリージョン別エンドポイントに適用することにより、同じリージョン別 API エンドポイント設定を使用した複数のリージョンへの API のデプロイ、デプロイされた各 API への同じカスタムドメイン名の設定、Route 53 でのレイテンシーに基づく DNS レコードの設定による、レイテンシーが最も低いリージョンへのクライアントリクエストのルーティングを行うことができます。

API エンドポイント」を参照してください。

ルート

API Gateway の WebSocket ルートは、メッセージの内容に基づいて、受信メッセージを AWS Lambda 関数など特定の統合に転送するために使用されます。WebSocket API を定義するときは、ルートキーおよび統合バックエンドを指定します。ルートキーはメッセージの本文中にある属性です。受信メッセージでルートキーが一致した場合、統合バックエンドが呼び出されます。デフォルトのルートは、一致しないルートキーに対して設定したり、ルーティングを実行してリクエストを処理するバックエンドコンポーネントにそのままメッセージを渡すプロキシモデルを指定したりできます。

ルートリクエスト

API Gateway での WebSocket API メソッドのパブリックインターフェイスであり、アプリケーション開発者が API を介してバックエンドにアクセスするためにリクエストで送る必要のある本文が定義されています。

ルートレスポンス

WebSocket API のパブリックインターフェイスであり、アプリケーション開発者が API Gateway に求めるステータスコード、ヘッダー、本文モデルが定義されています。

使用量プラン

使用量プランにより、選択した API クライアントは、1 つ以上のデプロイされた REST API または WebSocket API にアクセスできます。使用料プランを使用して、スロットリングとクォータ制限を設定できます。これらは、個々のクライアント API キーに適用されます。

WebSocket 接続

API Gateway はクライアントと API Gateway 自身の永続的な接続を維持します。API Gateway と、Lambda 関数などのバックエンド統合の間には、永続的な接続はありません。バックエンドサービスは、クライアントから受け取ったメッセージのコンテンツに基づいて、必要に応じて呼び出されます。