Amazon API Gateway は、デベロッパーがあらゆる規模で API の公開、保守、モニタリング、セキュリティ保護、運用を簡単に行えるフルマネージドサービスです。セキュアで信頼性の高い API を大規模に稼働させるために、差別化にはつながらない面倒な作業を処理する従量制のサービスです。

モバイルデバイスの増加と IoT の台頭によって、バックエンドのシステムやデータを API 経由でアプリケーションから利用できるようにしておくことが、いよいよ一般的になっています。こうした API を使用しているアプリケーションは数多く、開発者コミュニティでも多用しているため、API の開発と管理に費やされる時間と労力は増え続けています。このような API が利用しやすくなるように、API Gateway では JavaScript、iOS、Android などの複数の言語用のクライアント SDK を生成できます。

RESTful API および WebSocket API のサポート

API Gateway を利用すると、HTTP API または REST API を使用して RESTful API を作成できます。HTTP API の使用は、API 管理機能を必要としない API を構築するために最適な手法です。HTTP API は、サーバーレスのワークロードと HTTP に最適化されています。これにより、API Gateway から提供される REST API と比較しても、コストを最大で 71% 削減しながら、レイテンシーを 60% 低減できます。利用率プランや API キーなど、API のプロキシ機能と管理機能を単一のソリューションとして実現したいワークロード向けとして、API Gateway では REST API もご提供しています。HTTP API と REST API で提供する機能の比較対象表については、こちらのドキュメントをご参照ください。チャットアプリケーションやストリーミングダッシュボードといった、リアルタイムの双方向通信アプリケーションを構築するには、WebSocket API を使用します。API Gateway が提供する RESTful API と WebSocket API の使用法の詳細については、当社のよくある質問ページをご参照ください。

AWS ELB および AWS Cloud Map とのプライベート統合

API Gateway を使用して、VPC のプライベートリソースにリクエストをルーティングできます。ユーザーは HTTP API を活用して、ECS タスクなど、AWS Cloud Map に登録されたプライベート ALB、プライベート NLB、および IP ベースサービスの背後にあるサービス向けの API を構築できます。

回復性

API Gateway では、1 秒間あたりのリクエスト数に基づき、API の各 HTTP メソッドに対するスロットリングルールを設定できるため、バックエンドシステムへのトラフィック管理に役立ちます。API Gateway は、API が受信するどのようなレベルのトラフィックでも処理するので、インフラストラクチャの保守に煩わされることなく、ビジネスのロジックとサービスに焦点を合わせることができます。REST API を使用している場合、すべてのリクエストがバックエンドサービスをヒットすることのないよう、キーと秒単位の有効期限のカスタマイズが可能なキャッシュを、お使いの API データに設定することもできます。

API の作成およびデプロイが容易

API Gateway を使用すると、AWS Lambda で実行しているコードのカスタム API をすばやく簡単に作成し、Lambda コードを API から簡単に呼び出せます。API Gateway では、AWS Lambda コードをお客様のアカウント内で実行し、AWS Step Functions のステートマシンを開始できます。また、パブリックアクセス可能な HTTP エンドポイントを使用して、AWS Elastic Beanstalk、Amazon EC2、あるいは AWS 以外のウェブサービスを呼び出すこともできます。API Gateway コンソールを使用すれば、お客様の REST API およびそれに関連付けられたリソースとメソッドの定義、API のライフサイクル管理、クライアント SDK の生成、API メトリクスの表示が可能です。

API 動作のモニタリング

API がデプロイされ、使用状態になると、API Gateway ではダッシュボードによってサービスの呼び出しを視覚的にモニタリングできます。API Gateway コンソールは Amazon CloudWatch と統合されているので、API 呼び出し、レイテンシー、エラー率といったバックエンドのパフォーマンスメトリクスを知ることができます。API Gateway では CloudWatch を使用してモニタリング情報を記録するので、API Gateway の API にカスタムアラームを設定できます。API Gateway では、効率的なデバッグのために API 実行エラーを CloudWatch Logs に記録することもできます。

AWS 認証

AWS サービスへの API リクエストの認証と検証を実行するため、API Gateway では REST API と WebSocket API 用の署名バージョン 4 を活用できます。署名バージョン 4 による認証では、AWS Identity and Access Management (IAM)、およびお客様の API やその他の AWS リソースすべてに対するアクセスを認証するためのアクセスポリシーを使用できます。また、AWS Lambda 関数を使用して、JWT トークンや SAML アサーションなどのベアラートークンを検証および認証できます。

サードパーティ開発者用の API キー

REST API を使用している場合、API Gateway は、サードパーティ開発者のエコシステムがお客様の API にアクセスする際の権限を管理するのに役立ちます。API Gateway で API キーを作成し、それぞれの API キーにきめ細かいアクセス権限を設定して配布することで、サードパーティ開発者をお客様の API にアクセスさせることができます。また、個別の API キーのスロットリングとリクエストクォータ制限を設定するプランを定義できます。API キーの使用は完全に任意であり、メソッドごとに有効にする必要があります。

SDK の世代

REST API を使用している場合、API Gateway では、いくつかのプラットフォーム向けのクライアント SDK を生成できます。これを使用すれば、お客様のアプリケーションからの新しい API のテストや、サードパーティ開発者への SDK 配布を、迅速に実施できます。生成された SDK では、API キーを扱い、リクエストに署名するのに AWS 認証情報を使用します。API Gateway では、Java、JavaScript、Java for Android、iOS 用の Objective-C と Swift、Ruby でクライアント SDK を生成できます。AWS CLI を使用して、get-sdk コマンドを呼び出すことによって、サポートされているプラットフォーム用の API の SDK を生成およびダウンロードできます。

API ライフサイクルの管理

REST API を使用している場合、API Gateway では同じ API の複数のバージョンを同時に実行させることができるため、最新バージョンの公開後であっても、アプリケーションから以前のバージョンの API を呼び出すことができます。API Gateway では、それぞれのバージョンの API について、アルファ版、ベータ版、製品版といった複数のリリースステージを管理することもできます。各 API ステージは、API セットアップに基づいてさまざまなバックエンドエンドポイントとやり取りするように設定できます。API の特定のステージとバージョンをカスタムドメイン名と関連付け、API Gateway から管理できます。ステージとバージョンの管理によって、従来の API リリースに機能強化や新機能の追加を行った新しいバージョンの API をテストすることが容易になり、最新リリースに対応してユーザーコミュニティが移行する場合の下位互換性も確保できます。