Amazon API Gateway
開発者ガイド

Amazon API Gateway の概念

API Gateway

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

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

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

API Gateway API

バックエンドの HTTP エンドポイント、Lambda 関数、またはその他の AWS サービスを使用して統合されているリソースおよびメソッドのコレクション。コレクションは、1 つ以上のステージでデプロイできます。API メソッドは、登録されたカスタムドメイン名と関連付けることができるフロントエンド HTTP エンドポイントを通じて呼び出されます。メソッドを呼び出す権限は、IAM ロールおよびポリシー、または API Gateway Lambda オーソライザー (以前のカスタムオーソライザー) を使用して付与されます。API は、バックエンドで認証される証明書を提示できます。通常、API リソースはアプリケーションロジックに従ってリソースツリーで整理されます。各 API リソースは、API Gateway でサポートされている一意の HTTP 動詞が必要な 1 つ以上の API メソッドを公開できます。

API デプロイ

API Gateway API リソースおよびメソッドのポイントインタイムスナップショットです。クライアントが使用できるようにするには、デプロイが 1 つ以上の API ステージに関連付けられている必要があります。

API 開発者

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

API エンドポイント

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

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

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

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

API キー

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

API 所有者

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

API ステージ

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

アプリケーション開発者

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

統合リクエスト

メソッドリクエストのパラメータと本文をバックエンドに必要な形式にマッピングする、API Gateway の API メソッドの内部インターフェイス。

統合レスポンス

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

マッピングテンプレート

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

メソッドリクエスト

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

メソッドレスポンス

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

モデル

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

プライベート API

インターフェイス VPC エンドポイント経由で公開され、パブリックインターネットから隔離された API

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

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

プロキシ統合

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

使用量プラン

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