API Gateway ユースケース - Amazon API Gateway

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

API Gateway ユースケース

API Gateway を使用して HTTP API を作成する

HTTP API を使用すると、REST API よりも低いレイテンシーとコストで RESTful API を作成することができます。

HTTP API を使用して、AWS Lambda 関数またはルーティング可能な HTTP エンドポイントにリクエストを送信できます。

たとえば、バックエンドの Lambda 関数と統合する HTTP API を作成できます。クライアントが API を呼び出すと、API Gateway はリクエストを Lambda 関数に送信し、関数のレスポンスをクライアントに返します。

HTTP API は、OpenID ConnectOAuth 2.0 認証をサポートしています。クロスオリジンリソース共有 (CORS) と自動デプロイのサポートが組み込まれています。

詳細については、「選択項目 HTTP APIおよび REST APIs」を参照してください。

API Gateway を使用して REST API を作成する

API Gateway REST API はリソースとメソッドで構成されます。リソースは、リソースパスを介してアプリがアクセスできる論理エンティティを表します。メソッドは、API のユーザーによって送信される REST API リクエストや、ユーザーに返るレスポンスに対応しています。

たとえば、/incomes はアプリユーザーの収益を表すリソースのパスです。リソースには、適切な HTTP 動詞 (GET、POST、PUT、PATCH、DELETE など) によって定義されるオペレーションを 1 つ以上含めることができます。リソースパスとオペレーションの組み合わせによって API のメソッドが識別されます。たとえば、POST /incomes メソッドで呼び出し元が得た収益を追加し、GET /expenses メソッドで、呼び出し元によって報告済みの経費をクエリすることができます。

アプリがリクエストされたデータの保存先および取り込み先をバックエンドで把握する必要はありません。API Gateway REST API で、フロントエンドは、メソッドリクエストメソッドレスポンスによってカプセル化されます。API は統合リクエスト統合レスポンスを使用してバックエンドと連結します。

たとえば、DynamoDB をバックエンドとして使用した場合、API 開発者は、受信するメソッドリクエストを選択されたバックエンドに転送するように統合リクエストを設定します。この設定には、適切な DynamoDB アクションの仕様、IAM のロールとポリシー、および必要な入力データ変換などがあります。バックエンドは、統合レスポンスとして API Gateway に結果を返します。

統合レスポンスをクライアントの (一定の HTTP ステータスコードの) 適切なメソッドレスポンスにルーティングするには、統合からメソッドまで必要なレスポンスパラメータをマッピングするように統合レスポンスを設定できます。その後、必要に応じて、バックエンドの出力データ形式をフロントエンドの出力データ形式に変換します。API Gateway を使用することでペイロードのスキーマまたはモデルを定義し、本文マッピングテンプレートを容易に設定できるようにします。

API Gateway は、次のような REST API 管理機能を提供します。

  • OpenAPI に対する API Gateway 拡張を使用した SDK の生成と API ドキュメントの作成のサポート。

  • HTTP リクエストのスロットリング

API Gateway を使用して WebSocket API を作成する

WebSocket API では、クライアントとサーバーの両方がいつでも相互にメッセージを送信できます。バックエンドサーバーは接続されたユーザーとデバイスに簡単にデータをプッシュでき、複雑なポーリングメカニズムを実装する必要がありません。

たとえば、API Gateway WebSocket API と AWS Lambda を使用してサーバーレスアプリケーションを構築し、チャットルームで個々のユーザーまたはユーザーのグループとの間でメッセージを送受信することができます。または、メッセージの内容に基づいて、AWS Lambda、Amazon Kinesis、HTTP エンドポイントなどのバックエンドサービスを呼び出すことができます。

API Gateway WebSocket API を使用して、安全なリアルタイムの通信アプリケーションを構築でき、接続または大規模なデータ交換を管理するためにサーバーをプロビジョニングまたは管理する必要がありません。ターゲットを絞ったユースケースには、次のようなリアルタイムのアプリケーションが含まれます。

  • チャットアプリケーション

  • 株式相場表示などのリアルタイムのダッシュボード

  • リアルタイムのアラートおよび通知

API Gateway は、次のような WebSocket API 管理機能を提供します。

  • 接続とメッセージのモニタリングとスロットリング

  • AWS X-Ray を使用した、API からバックエンドサービスへのメッセージのトレース。

  • HTTP/HTTPS エンドポイントとの簡単な統合

API Gateway を使用するユーザー

API Gateway を使用するのは、API 開発者とアプリ開発者です。

API 開発者は API Gateway で必要な機能を使用できるようにするため、API を作成しデプロイします。API 開発者は、API を所有する AWS アカウントの IAM ユーザーである必要があります。

アプリ開発者は、API Gateway で API 開発者によって作成された WebSocket または REST API を呼び出して、AWS サービスを呼び出すために機能するアプリケーションを構築します。

アプリ開発者は、API 開発者の顧客です。アプリ開発者には、AWS アカウントは必要ありません。これは、API に IAM のアクセス許可が必要ないか、Amazon Cognito ユーザープール ID フェデレーションによってサポートされているサードパーティーのフェデレーテッド ID プロバイダーのユーザー認証をサポートしていることを前提としているためです。そのような ID プロバイダーには、Amazon、Amazon Cognito ユーザープール、Facebook、Google などがあります。

API Gateway API の作成と管理

API 開発者は API 管理に API Gateway サービスコンポーネント (apigateway) を使用して、API を作成、設定、およびデプロイします。

API 開発者として、API を作成および管理するには、「API リファレンス」の説明に従って、API Gateway コンソールを使用するか、「Amazon API Gateway の開始方法」を呼び出します。API を呼び出す方法には、複数の方法があります。これには、AWS Command Line Interface (AWS CLI) の使用や AWS SDK の使用が含まれます。また、AWS CloudFormation テンプレート または (REST API と HTTP API の場合) OpenAPI の API Gateway 拡張の使用 を使用してAPI を作成することもできます。

API Gateway を使用できるリージョン、および関連する管理サービスエンドポイントのリストについては、「Amazon API Gateway エンドポイントとクォータ」を参照してください。

API Gateway API を呼び出す

アプリ開発者は API の実行に execute-api という API Gateway サービスコンポーネントを使用し、API Gateway で作成またはデプロイされた API を呼び出します。基礎となるプログラミングエンティティは、作成された API によって公開されます。このような API を呼び出す方法はいくつかあります。詳細については、「Amazon API Gateway で REST API を呼び出す」と「WebSocket API の呼び出し」を参照してください。