全般

Q: Amazon API Gateway とは何ですか?

Amazon API Gateway は、開発者があらゆる規模で API の公開、保守、モニタリング、セキュリティ保護を簡単に行えるフルマネージドサービスです。AWS マネジメントコンソールで数回クリックするだけで、Amazon Elastic Compute Cloud (Amazon EC2)、Amazon Elastic Container Service (Amazon ECS)、AWS Elastic Beanstalk で稼働中のアプリケーション、AWS Lambda で稼働中のコード、または任意のウェブアプリケーションといった、お客様のバックエンドサービスのデータやビジネスロジック、および機能にアクセスする、アプリケーションの "正面玄関" となる API を作成できます。Amazon API Gateway では、最大数十万の同時 API 呼び出しを受け付け、処理することが可能です。これにはトラフィック管理、認証とアクセス管理、モニタリング、API バージョン管理が含まれます。Amazon API Gateway に最低料金や初期費用は発生しません。REST API に関しては、受信した API 呼び出しと、送出したデータ量に対してのみ料金が発生します。WebSocket API に関しては、送受信されたメッセージと、ユーザーデバイスの WebSocket API への接続時間に対してのみ料金が発生します。

Q: Amazon API Gateway を使うメリットは何ですか?

Amazon API Gateway はシンプルかつ柔軟な全面的に管理された従量制のサービスで、アプリケーションのバックエンド用の堅牢な API の作成と運用に関するすべての側面を扱います。API Gateway を使用すれば、より少ない投資で、いっそうスピーディーに新しいサービスを立ち上げることができるので、中核となるビジネスサービスの構築に集中できます。API Gateway は、API を作成し、管理するための次のような側面をサポートするように構築されています。

1) 計測。API Gateway により、API へのサードパーティ開発者のアクセスを計測および制限するプランを定義できます。API キーごとにプランセットを定義し、スロットリングとクォータ制限を設定できます。API Gateway では、自動的に API へのトラフィックが計測され、各 API キーの使用率データを抽出できます。

2) セキュリティ。API Gateway には、お客様の API に対するアクセスを認証し、サービスを操作するアクセスを管理する、複数のツールが準備されています。API Gateway では、AWS Identity and Access Management (IAM)、Amazon Cognito といった AWS の管理ツールやセキュリティツールを使用して、API に対するアクセス認証を実施できます。API Gateway では、AWS が自身の API に使用しているのと同じ方法を使用して、お客様に代わって署名付き API コールを検証できます。また、API Gateway では、AWS Lambda の機能として記述されたカスタムオーソライザーを使用して、受信するベアラートークンを検証することもでき、バックエンドコードでの認証に関する懸念を解消できます。

3) 回復性。API Gateway はスロットリングによってトラフィックを管理できるので、バックエンド動作はトラフィックの激増に耐えられます。また、API Gateway は API コールに対する出力をキャッシュし、バックエンドシステムへの不要な呼び出しを避けることによって、お客様の API のパフォーマンスとエンドユーザーエクスペリエンスの向上に貢献します。

4) 動作のモニタリング。API が公開され、使用状態になると、API Gateway ではメトリクスを表示するダッシュボードによって、サービスの呼び出しをモニタリングできます。API Gateway ダッシュボードでは、Amazon CloudWatch との統合によって、API 呼び出し、レイテンシーデータ、エラー率といったバックエンドのパフォーマンスメトリクスを確認できます。お客様の API の各メソッドについてより詳細なメトリクスを取得できるようにすることや、エラーログ、アクセスログ、デバッグログを CloudWatch Logs に記録させることも可能です。

5) ライフサイクル管理。API を公開した後には、機能の強化や追加を実施した新しいバージョンを構築し、テストすることがしばしば必要となります。API Gateway では、複数のバージョンの API、および各バージョンのさまざまなステージのものを同時に動作させることができるため、新しい API バージョンの公開後にも既存アプリケーションに引き続き以前のバージョンを使用させることが可能です。

6) 開発者向けの設計。API Gateway では、API をすばやく作成し、静的なコンテンツをレスポンスとして割り当てることができるため、アプリケーションのためのクロスチームによる開発の労力や販売までの時間を少なくすることができます。バックエンドプロセスがまだ構築中であるときに、お客様の API に依存するチームが開発を開始することも可能です。

7) リアルタイム双方向通信。 チャットアプリ、ストリーミングダッシュボード、通知といったリアルタイム双方向通信アプリケーションを構築します。サーバーの起動や管理にわずらわされることもなくなります。API Gateway は接続されたユーザー間の永続的な接続を維持し、メッセージの転送ができます。

Q: Amazon API Gateway でサポートされるのはどのタイプの API ですか?

Amazon API Gateway は HTTP/REST API と WebSocket API の作成をサポートします。

HTTP/REST API: Amazon API Gateway において、HTTP/REST API はリソースとメソッド(すなわち、エンドポイント)のグループです。HTTP/REST API はさまざまなステージにデプロイすることができ、新しいバージョンにクローンすることもできます。

WebSocket API: Amazon API Gateway において、WebSocket API は接続クライアントとのあいだに永続的な接続を維持して、メッセージ送受信をリアルタイムで可能にします。API Gateway の WebSocket API を使用すれば、接続したクライアントからのメッセージを受信した際に呼び出される AWS Lambda 関数、Amazon Kinesis、または任意の HTTP エンドポイントとのバックエンドでの連携を定義することができます。

Q: Amazon API Gateway の REST API の使用を開始するにはどのようにすればよいですか?

Amazon API Gateway を使用したカスタム API の作成はスピーディーで、簡単です。シンプルな「Hello World」であれば、次のようなステップになります。

1.Amazon API Gateway コンソールに移動します。

2.既存の REST API を選択するか、API の名前を入力して新規作成します。

3.REST API ツリーで [Create Resource (リソースの作成)] をクリックします。

4.「cars」のようにリソースの名前を選択します。

5.新しいリソースが選択された状態で、ボタンをクリックして新しいメソッドを作成し、そのメソッドに関連付けられた HTTP の動詞を選択します (例: GET)。

6.統合タイプを選択し (例: HTTP Proxy)、Amazon API Gateway が呼び出す URL を入力します。

7.マッピングテンプレートを使用して、リクエストとレスポンスがどのように変換されるかを定義します。または、変換を全く適用せずにすべてのリクエストとレスポンスのデータをそのままパススルーさせるデフォルト設定を受け入れます。

8.メソッドのセキュリティ設定を行います。

9.新しい API をステージにデプロイします。

10.「Stage management (ステージの管理)」ページで、キャッシュとスロットリングの設定を行います。

11.Amazon API Gateway コンソールの [Client Platforms] タブでボタンをクリックして、sayHello オペレーションを呼び出すヘルパーメソッドを含む Android、iOS SDK または JavaScript ライブラリをダウンロードします。SDK ライブラリは、ローカルメソッドの呼び出しと類似の方法でお客様の API の呼び出しを行います。クライアント SDK はリトライを自動的に処理し、開発者にネットワークや他の障害状況について知らせます。SDK ライブラリには、クライアントアプリケーションをお客様の API に対して認証するのに必要なロジックが含まれています。

12.ダウンロードされた SDK をお客様のモバイルアプリケーションに統合します。カスタム API を呼び出すコードを作成します。たとえば、iOS アプリケーションでは getCar(int carId) API を次のようにして呼び出します。

–(void)getSampleCar

{

NSString *response = [MyServiceClient getCar:1323];

NSLog( @"Response was [%@]", response );

}

13. アプリケーションを実行します。

Q: Amazon API Gateway の WebSocket API の使用を開始するにはどのようにすればよいですか?

使用を開始するには、AWS マネジメントコンソール、AWS CLI または AWS SDK を使用して WebSocket API を作成します。それから WebSocket のルーティングを設定し、AWS Lambda、 Amazon Kinesis、 HTTP エンドポイントなどのバックエンドサービスがメッセージの内容に基づいて呼び出されるように指定できます。API Gateway の WebSocket API の使用を開始するには、ドキュメントを参照してください。

Q: HTTPS エンドポイントを作成できますか?

はい。Amazon API Gateway で作成された API はすべて、HTTPS エンドポイントのみ公開します。Amazon API Gateway は非暗号化 (HTTP) エンドポイントをサポートしません。デフォルトでは、自動的に Amazon API Gateweay 証明書を使用する API に対して、Amazon API Gateway によって内部ドメインが割り当てられます。お客様の API をカスタムドメイン名で動作するよう設定する場合、そのドメイン用にお客様自身の証明書を指定できます。

Q: Amazon API Gateway ではどのようなデータタイプを使用できますか ?

Amazon API Gateway で構築される API は、REST API 向けの HTTP を介して送られるどのようなペイロードも受け入れ可能です。代表的なデータフォーマットには JSON、XML、クエリ文字列パラメータ、リクエストヘッダーなどがあります。お客様の API に対するレスポンスとしてあらゆるコンテンツタイプを宣言することが可能です。さらに、変換テンプレートによってバックエンドからのレスポンスを必要なフォーマットに変換できます。

Q: Amazon API Gateway はどのようなバックエンドと通信できますか?

Amazon API Gateway では、アカウントで AWS Lambda 関数を実行したり、AWS Step Functions ステートマシンを起動できるほか、AWS Elastic Beanstalk や Amazon EC2 上でホストされる HTTP エンドポイントや、パブリックインターネット経由でアクセスできる非 AWS でホストされている HTTP ベースのオペレーションを呼び出すことができます。また、Gateway では、マッピングテンプレートを指定して、返る静的コンテンツを生成することもできるため、バックエンドの準備が整う前に API をモックすることができます。API Gateway を AWS の他のサービスに直接統合することもできます。例えば、データを Amazon Kinesis に直接送信する API メソッドを API Gateway で表示できます。

Q: Amazon API Gateway はどのようなクライアントプラットフォーム用の SDK を生成できますか?

API Gateway では、Android および iOS (Swift と Objective-C) を使用したモバイルアプリケーション開発向けのカスタム SDK や、JavaScript を使用したウェブアプリケーション開発向けのカスタム SDK を生成できます。また、Ruby や Java 向けの SDK も生成できます。API とそのモデルが API Gateway で定義されると、AWS コンソールや API Gateway の API を使用して、クライアント SDK の生成とダウンロードを実行できます。Client SDK は Amazon API Gateway の REST API に対してのみ生成されます。

Q: Amazon API Gateway は、どの AWS リージョンで利用できますか?

Amazon API Gateway の REST API は、こちらのすべてのリージョンで利用できます。

WebSocket API は米国東部 (バージニア北部)、米国西部(北カリフォルニア)、米国西部(オレゴン)、アジアパシフィック(東京)、アジアパシフィック(シドニー)、欧州(アイルランド)、欧州(フランクフルト)で作成できます。

Q: Amazon API Gateway コンソールではどのような管理が実行できますか?

Amazon API Gateway コンソールによって、REST API およびそれに関連付けられたリソースとメソッドを定義し、API のライフサイクルを管理し、クライアント SDK を生成し、API メトリクスを参照することができます。また、API Gateway コンソールを使用して、API の利用プランを定義し、開発者の API キーを管理し、そしてスロットリングとクォータ制限を設定できます。同様のアクションはすべて、API Gateway API を介しても実行できます。

Q: リソースとは何ですか?

リソースとは、お客様の API のドメインの一部である、型付きオブジェクトです。各リソースには関連するデータモデル、他のリソースへの関連があり、異なる方法に応答できます。リソースを変数として定義して、複数の子リソースへのリクエストをインターセプトすることもできます。

Q: メソッドとは何ですか?

REST API 内部の各リソースは、1 つ以上の標準 HTTP メソッドをサポートできます。それぞれのリソースに対してサポートされることが必要な動詞 (GET、POST、PUT、PATCH、DELETE、HEAD、OPTIONS) と、その実装を定義します。たとえば、cars リソースに対する GET は車のリストを返すはずです。リソース内のすべてのメソッドをバックエンドの単一のエンドポイントに関連付けるには、API Gateway が特別な "ANY" メソッドもサポートしている必要があります。

Q: 使用量プランとは何ですか?

使用量プランにより、サードパーティ開発者のプランを宣言することで、アクセスを特定の API に制限し、スロットリングとリクエストクォータ制限を定義し、そして API キーに関連付けることができます。また、API キーごとの使用データを抽出することで、API の使用状況を分析して、請求伝票を作成できます。使用量プランは、ベーシック、プロフェッショナル、エンタープライズなどを作成できます。例えば、最大値を 1 日あたり 1,000 件のリクエストと毎秒 5 件のリクエスト (RPS) に設定したベーシックな使用量プランなどを作成できます。

Q: Amazon API Gateway API のライフサイクルとは何ですか?

Amazon API Gateway では、それぞれの REST API に複数のステージを持たせることができます。ステージは、API の開発ライフサイクルを助けることを意図したものです。例えば、API を構築してから開発ステージにデプロイすることや、製品版としての準備ができたときに本番ステージにデプロイすることができます。

Q: ステージとは何ですか?

Amazon API Gateway のステージは、タグに似ています。ステージは、デプロイ環境からアクセス可能なパス経路を定義します。例えば、開発ステージを定義し、お客様の cars API をそこにデプロイできます。このリソースは、https://www.myapi.com/dev/cars でアクセスできるようになります。カスタムドメイン名を設定してステージを直接指示すれば、パスパラメータの追加を不要にすることも可能です。例えば、myapi.com を直接開発ステージに指定した場合、cars リソースには https://www.myapi.com/cars でアクセスできます。ステージは、API コンフィギュレーションまたはマッピングテンプレートからアクセスできる変数を使って設定できます。

Q: ステージ変数とは何ですか?

ステージ変数を使うと、ステージに関連した設定値のキー/値ペアを定義できます。この値は環境変数に似ており、ユーザーの API コンフィギュレーションで使用できます。例えば、ステージ変数としてメソッド統合の HTTP エンドポイントを定義し、エンドポイントをハードコーディングする代わりにその変数を API コンフィギュレーションで使用することができます。こうすると、同じ API コンフィギュレーションを使って各ステージ (dev、beta、prod など) に異なるエンドポイントが使用できるようになります。ステージ変数はマッピングテンプレートでもアクセスでき、これを使用して設定パラメータをお客様の Lambda または HTTP バックエンドに渡すことができます。

Q: リソースポリシーとは何ですか?

リソースポリシーは、指定されたプリンシパル (通常、IAM ユーザーまたはロール) による API 呼び出しを可能にするかどうかを制御するために、ユーザーが API にアタッチする JSON ポリシードキュメントです。リソースポリシーを使用すると、異なる AWS アカウントのユーザーからの API への安全なアクセスを有効にすることや、指定されたソース IP アドレス範囲または CIDR ブロックのみから API を呼び出せるようにすることが可能になります。リソースポリシーは Amazon API Gateway の REST API で使用できます。

Q: デプロイするステージを間違えた場合どうなりますか?

Amazon API Gateway には、デプロイの履歴が保存されます。どの時点でも、Amazon API Gateway の API またはコンソールを使用することで、ステージを以前のデプロイにロールバックさせられます。

Q: 同じ REST API の複数のバージョンを実行できますか?

はい。Amazon API Gateway を使用すると、既存の API のクローンを作成できます。API の次期メジャーバージョンの使用開始準備が整ったら、バージョン 1 とバージョン 2 の API を同時に使い続けることができます。

Q: 自作の Swagger API 定義を使用できますか?

はい。オープンソースの Swagger インポートツール を使用すれば、自作の Swagger API 定義を Amazon API Gateway にインポートできます。Swagger importer tool では、新規の API のデプロイおよび既存の API の更新を実行できます。

Q: API Gateway の自分の API を収益化するにはどうすればよいですか?

API Gateway の自分の API を収益化するには、AWS Marketplace に製品として公開します。まず AWS Marketplace に出品者として登録する必要があります。その後、API Gateway の使用量プランを製品として提出します。API の収益化の詳細については、「こちらを参照してください」。

Q: Amazon API Gateway の自分の API はどのようにドキュメント化すればよいですか?

API Gateway では、メソッドやリソースといった API の各部分に関連付けられたドキュメントの作成、更新、削除を実行できます。ドキュメントに関連付けられた API には、AWS SDK、CLI、RESTful コール経由、または API Gateway コンソールでドキュメント文字列を直接編集することによりアクセスできます。ドキュメントを Swagger ファイルとしてインポートすることも可能です。API の一部としても、個別にもインポートできるため、API の定義に影響を与えずにドキュメントを更新できます。API Gateway は、Swagger ファイルからインポートされた、または Swagger ファイルにエクスポートされたドキュメントのオープン API 仕様に準拠しています。ドキュメントは API ゲートウェイの REST API に向けてサポートされています。

Q: 自分の API で頻繁に発生するエラーメッセージやその他のドキュメントの冗長コピーの作成を避けるにはどうすればよいですか?

API Gateway では、規格に準拠した API ドキュメントがサポートされているほか、ドキュメントの継承もサポートされているため、ドキュメントの文字列を定義してから、複数の場所で使用することが簡単になります。継承によって API ドキュメントの定義プロセスは簡単になり、Swagger ファイルとして API をエクスポートする場合には標準の表現形式に変換できます。

Q: 特定の Amazon VPC や VPC エンドポイントに対するプライベート API へのアクセスを制限できますか?

はい。リソースポリシーを API に適用して、特定の Amazon VPC や Amazon VPC エンドポイントへのアクセスを制限できます。また、リソースポリシーを使用して、異なるアカウントの Amazon VPC や VPC エンドポイントに、プライベート API へのアクセス権を付与することもできます。

セキュリティと認証

Q: API へのアクセスを認証するにはどうすればよいですか?

Amazon API Gateway では、認証を要求する API メソッドを設定することもできます。認証を要求するメソッドを設定する場合、AWS Signature Version 4 または Lambda オーソライザーを活用して、お客様独自のベアラートークン認証戦略をサポートできます。

Q: AWS Signature Version 4 はどのように機能しますか?

AWS 認証情報 (アクセスおよびシークレットキー) を使用して、AWS の他のサービスと同様に、お客様のサービスへのリクエストに署名し、アクセスを認証できます。Amazon API Gateway の API リクエストの署名は、そのサービス用に生成されたカスタム API Gateway SDK によって管理されます。Amazon Cognito を使用して、お客様の AWS アカウント内のロールに関連付けられた一時的な認証情報を取得できます。

Q: Lambda オーソライザーとは何ですか?

Lambda オーソライザーは AWS Lambda の機能です。カスタムリクエストオーソライザーを使うと、OAuth などのベアラートークン認証戦略を使用して、API へのアクセスを認証できるようになります。API が呼び出されると、API Gateway では、Lambda オーソライザーが構成されているかどうかがチェックされた後、受信する認証トークンを使って Lambda の機能が呼び出されます。Lambda を使用すると、リクエスト認証に使用する IAM ポリシーを返すさまざまな認証戦略 (JWT の検証、OAuth のプロバイダー呼び出しなど) を実装できます。オーソライザーから返されたポリシーが有効なら、受信するトークンに関連付けられたポリシーが API Gateway から最大で 1 時間キャッシュされます。

Q: Amazon API Gateway はサードパーティ開発者に配布するための API キーを生成できますか?

はい。API Gateway では、API キーを生成し、使用量プランに関連付けることができます。各 API キーから受信した呼び出しは監視され、各ステージに対して設定できる Amazon CloudWatch Logs に含められます。ただし、API キーを認証に使用することは推奨しません。API キーは、サードパーティ開発者による使用を監視し、署名付き API 呼び出しや OAuth といったより強固なメカニズムを活用するために使用してください。

Q: API に対する脅威や悪用への対応や防止はどうすればよいですか?

API Gateway は、お客様の API 内のメソッドごとやルートごとのスロットリングをサポートしています。1 秒間当たりの標準速度制限とバースト速度制限を、それぞれの REST API と WebSocket API のルートに設定できます。さらに、API Gateway は、偽装リクエスト (Layer 7) によるものでも SYN フラッド (Layer 3) によるものでも、分散型サービス拒否 (DDoS) 攻撃から自動的にお客様のバックエンドシステムを保護します。

Q: API Gateway がバックエンドを呼び出していると確認できますか?

はい。Amazon API Gateway では、クライアント側 SSL 証明書の生成や、使用できる証明書のパブリックキーの作成を行うことができます。バックエンドへの呼び出しは、生成された証明書を使用して行うことができます。また、その証明書のパブリックキーを使用して Amazon API Gateway による呼び出しであることを検証することができます。

Q: AWS CloudTrail を Amazon API Gateway と共用できますか?

はい。Amazon API Gateway は AWS CloudTrail と統合され、お客様の REST API について全面的に監査可能な変更履歴を提供します。REST API の作成、変更、削除またはデプロイを行う Amazon API Gateway の API に対する API 呼び出しは、すべてお客様の AWS アカウント内の CloudTrail にログが記録されます。

Q: Amazon API Gateway は Amazon Virtual Private Cloud (Amazon VPC) とどのように連携しますか?

Amazon API Gateway では、VPC リンクを使用してプライベート統合を設定することで、Amazon VPC で実行されているバックエンドの HTTP/HTTPS リソースにリクエストを中継できます。Amazon API Gateway のクライアント側 SSL 証明書は、バックエンドシステムへのリクエストが、その証明書のパブリックキーを使用して API Gateway によって送信されたことを検証するために使用できます。また、プライベート API を Amazon API Gateway に作成して、Amazon VPC エンドポイント経由で自分の Amazon VPC 内のリソースからのみアクセス可能にすることもできます。

Q: 特定の Amazon VPC や VPC エンドポイントに対するプライベート API へのアクセスを制限できますか?

はい。リソースポリシーを API に適用して、特定の Amazon VPC や Amazon VPC エンドポイントへのアクセスを制限できます。また、リソースポリシーを使用して、異なるアカウントの Amazon VPC や VPC エンドポイントに、プライベート API へのアクセス権を付与することもできます。

Q: TLS 1.1 以降を使用するために API Gateway で自分の REST API を設定することはできますか?

はい、お客様のアカウントでカスタム SSL 証明書を使用して CloudFront ディストリビューションを設定し、API ゲートウェイのリージョン API で使用することができます。セキュリティとコンプライアンスの要件に基づいて、TLS 1.1 以降の CloudFront ディストリビューションにセキュリティポリシーを設定できます。

管理、メトリクス、ログ記録

Q: Amazon API Gateway の API はどのようにして監視できますか?

Amazon API Gateway は API 呼び出し、レイテンシー、エラー率をお客様の AWS アカウント内の Amazon CloudWatch に記録します。メトリクスは、REST API ダッシュボード内の Amazon API Gateway コンソールでも利用できます。また、API Gateway ではサードパーティ開発者の使用を計測し、そのデータを API Gateway コンソールと API を介して利用可能です。

Q: Amazon API Gateway メトリクスに対してアラームを設定できますか?

設定できます。Amazon API Gateway はログ情報とメトリクスを Amazon CloudWatch に送ります。Amazon CloudWatch コンソールを使用して、カスタムアラームを設定できます。

Q: Amazon API Gateway のメトリクスはどのようにして設定できますか?

デフォルトでは、Amazon API Gateway は REST API レベルのトラフィックを監視します。オプションとして、デプロイ構成 API またはコンソール画面から、REST API 内の各メソッドに対して詳細なメトリクスを有効にできます。詳細なメトリクスは Amazon CloudWatch にもログが記録され、CloudWatch のレートで料金が発生します。

Q: 私の顧客が使用している API のバージョンを判別できますか?

はい。メトリクスの詳細は REST API とステージによって指定されます。さらに、お客様の REST API 内の各メソッドに対するメトリクスを有効にすることができます。

Q: Amazon API Gateway ではロギングがサポートされていますか?

はい。Amazon API Gateway は Amazon CloudWatch Logs と統合されています。お客様の API 内の各ステージにロギングを有効にすることも可能です。お客様の REST API 内の各メソッドについて、ログの詳細度と、リクエストとレスポンスのデータ全体を記録するかどうかを設定できます。

Q: ログはいつ参照可能になりますか?

ログ、アラーム、エラー率およびその他のメトリクスは Amazon CloudWatch に保存され、リアルタイムに近い状態で利用できます。

スロットリングとキャッシュ

Q: どのようにバックエンドシステムとアプリケーションをトラフィックの激増から守ることができますか?

Amazon API Gateway には、グローバルレベルやサービス呼び出しレベルなど、複数のレベルのスロットリングが準備されています。スロットリング制限は、標準レート時とバースト時に設定できます。例えば、API の所有者は、自分の REST API 内の特定のメソッドに 1 秒間当たり 1,000 リクエストのレート制限を設定し、数秒の間、毎秒 2,000 回のバーストリクエストにも対応できるよう Amazon API Gateway を設定できます。Amazon API Gateway は、1 秒間当たりのリクエスト数を追跡します。上限を超えたリクエストには、429 HTTP レスポンスが返されます。Amazon API Gateway によって生成されたクライアント SDK では、このレスポンスが返されると自動的に呼び出しのリトライを行います。

Q: API を呼び出している個々の開発者をスロットリングできますか?

はい。使用量プランで、個々の API キーのスロットリング制限を設定できます。

Q: スロットリングはどのように役立ちますか?

スロットリングは、バックエンドサービスがパフォーマンスと可用性を維持できるよう、API トラフィックが確実に制御されるようにします。

Q: Amazon API Gateway の受信 API トラフィックに対するスロットリングはどのレベルで実行されますか?

スロットリングレート制限はメソッドレベルで設定できます。お客様のメソッドに設定されるスロットリング制限は、Amazon API Gateway API または Amazon API Gateway コンソールを介して編集できます。

Q: スロットリングルールはどのように適用されますか?

最初に、API Gateway で、AWS アカウント制限に照らし合わせてチェックされます。トラフィックが設定されているアカウントの制限未満であれば、API Gateway ではステージまたはメソッドに設定された制限値がチェックされます。トラフィックがステージの制限未満であれば、API Gateway では API キーごとに基づいて設定された使用量プランの制限が適用されます。

Q: Amazon API Gateway には API の結果のキャッシュ機能がありますか?

はい。API 呼び出しのキャッシュは、API Gateway キャッシュをプロビジョニングし、キャッシュサイズをギガバイト単位で指定することで追加できます。キャッシュは、お客様の API の特定のステージに対してプロビジョニングされます。これにより、パフォーマンスは向上し、バックエンドに送られるトラフィックは減少します。キャッシュ設定では、キャッシュキーの構築方法と、各メソッドに対して格納されるデータの有効期限 (TTL) を制御できます。API Gateway では、各ステージのキャッシュの無効化を助ける管理用 API も公開されています。キャッシュは API Gateway の REST API で利用可能です。

Q: 大量のユーザーが同時に私の API を呼び出した場合はどうなりますか?

キャッシュが有効にされておらず、スロットリング制限も適用されていない場合は、アカウントレベルのスロットリング制限に達するまですべてのリクエストがバックエンドサービスに送られます。スロットリング制限が設定されている場合、Amazon API Gateway は必要な量のみリクエストを減らし、定義された上限数までをバックエンドサービスに送ります。キャッシュが設定されている場合 (およびスロットリング制限が設定されている場合のみ)、カスタマイズ可能な時間、重複しているリクエストに対してはキャッシュされたレスポンスが Amazon API Gateway によって返されます。バックエンドとクライアントとの間のこのバランスは、バックエンドによってサポートされるアプリケーション用 API のパフォーマンスを最適なものにします。スロットリングされたリクエストは、Amazon API Gateway によって生成されたクライアントサイド SDK によって自動的にリトライされます。デフォルトでは、お客様の API メソッドに対するキャッシュは Amazon API Gateway によって設定されていません。

Q: API はどのようにスケールされますか?

Amazon API Gateway は、設定されたバックエンド動作に対し、プロキシとして振る舞います。Amazon API Gateway は、お客様の API が受信するトラフィック量を処理できるよう、自動的にスケールされます。Amazon API Gateway によってバックエンド動作の呼び出しに対し独断的な制限やスロットリングが行われることはありません。Amazon API Gateway コンソールで設定されたスロットリングとキャッシュによってインターセプトされるリクエストを除き、リクエストはすべてバックエンドの動作に送られます。

請求

Q : Amazon API Gateway の使用料金はどのように請求されますか ?

Amazon API Gateway は、100 万回の API 呼び出しにつき、データ転送にかかるコストがギガバイト単位で加算されます。API のキャッシュをプロビジョニングすることを選択した場合は、時間別の料金が適用されます。API Gateway は WebSocket API に対しては、送受信されるメッセージとクライアントが API に接続している時間 (分) に基づいて請求します。API コール、データ転送、および地域ごとのキャッシングコストの詳細については、API Gateway 価格設定ページをご覧ください。

Q: サードパーティ開発者によって行われた Amazon API Gateway の API 呼び出しの料金は誰が支払うのですか?

API Gateway にある API の呼び出しについては、API の所有者に課金されます。

Q: API レスポンスがキャッシュされたデータから提供された場合でも API 呼び出しとして課金されますか?

はい。API 呼び出しは、レスポンスがバックエンド動作により発生したものであっても、Amazon API Gateway のキャッシュ動作によるものであっても、等しく計数され、課金されます。

WebSocket API

Q: Amazon API Gateway の WebSocket ルーティングとは何ですか?

Amazon API Gateway の WebSocket ルーティングは、メッセージを特定の統合に正しくルーティングするために使用されます。自分の WebSocket API を定義する時に呼び出すルーティングキーと統合バックエンドを特定します。ルーティングキーはメッセージの本文中にあります。ルーティングキーが一致しなくてもデフォルトの統合が設定できます。ルーティングの詳細は、こちらのドキュメントをご覧ください。

Q: 接続しているクライアントにバックエンドサービスからメッセージを送信するにはどうすればよいですか?

新しいクライアントが WebSocket API に接続すると、コールバック URL という固有の URL が新しいクライアント用に作成されます。このコールバック URL を使用して、バックエンドサービスからクライアントにメッセージを送信することができます。

Q:  Amazon API Gateway にある自分の WebSocket API へのアクセスを承認するにはどうすればよいですか?

Amazon API Gateway では、IAM ロールと IAM ポリシー、または AWS Lambda Authorizers のいずれかを使用して WebSocket API へのアクセスを承認できます。

クライアントが Amazon API Gateway の WebSocket 接続から接続しているとき、または切断しているときがバックエンドサービスにはどのようにしてわかるのですか?

クライアントが接続または切断すると、 $ connect および $ disconnect ルートを使用して Amazon API Gateway サービスからバックエンド AWS Lambda 関数または HTTP エンドポイントにメッセージが送信されます。接続しているユーザーのリストに対してクライアントを追加または削除するなどの適切な処置を取ることができます。

Q: バックエンドサービスはクライアントが WebSocket 接続にまだ接続しているかどうかをどのように判別できますか?

接続時にコールバック URL の GET メソッドを使用して、クライアントが WebSocket 接続に接続されているかどうかを判別できます。コールバック URL の使用に関しては本文を参照して下さい。

Q: バックエンドサービスからクライアントとの接続を切断できますか?

はい、コールバック URL を使用して、接続されたクライアントをバックエンドサービスから切断することができます。

Q: WebSocket APIでサポートされるメッセージの最大サイズはどのくらいですか?

サポートされるメッセージの最大サイズは 128 KB です。WebSocket API に関するその他の制限についてはドキュメントを参照してください。

Q : Amazon API Gateway の WebSocket API の使用料金はどのように請求されますか?

接続時間(分)とメッセージの2つのメトリクスに基づいて請求されます。

接続時間 (分):クライアントまたはデバイスが WebSocket 接続に接続する総時間(分単位)。

メッセージ:送信メッセージ数と、接続しているクライアントからの受信メッセージ数。メッセージは 32KB 単位で請求されます。WebSocket API の料金の詳細と例については料金ページを参照してください。

Q: WebSocket 接続でメッセージが認証や承認されなかった場合でも、私の API 使用料金にカウントされますか?

いいえ、WebSocket 接続でメッセージが認証や承認されなかった場合は、API 使用料金にカウントされません。

Amazon API Gateway の詳細

料金ページを見る
始める準備はできましたか?
サインアップ
ご不明な点がおありですか?
お問い合わせ