Amazon API Gatewayとは
Amazon API Gatewayとは、HTTP API、REST API、WebSocket APIを作成、公開、管理、モニタリング、保護するためのフルマネージド型のサービスです。
以下の図のようにAmazon API Gatewayはクライアントとバックエンド(Lambda関数など)の間を中継して、データの送受信や認証などを行います。
Amazon API GatewayのAPIの種類
Amazon API Gatewayは本記事作成時点(2021年6月13日)で以下のアプリケーションを選択することができます。
(1) HTTP API/REST API
HTTP API/REST APIは「クライアント」と「AWSのサービス(LambdaやDynamoDBなど)またはHTTPエンドポイント」間をステートレスに接続します。
以下のHTTPメソッドを用いてAmazon API Gatewayにアクセスして、データを取得や更新などを行います。
HTTPメソッド | 概要 |
---|---|
GET | 指定したリソースのデータを返すメソッド |
POST | データを送信して処理するメソッド |
PUT | データを更新するメソッド |
PATCH | リソースを部分的に変更するメソッド |
HEAD | GETメソッドのデータ内、HTTPヘッダのみを返すメソッド |
OPTIONS | 通信オプションの返すメソッド |
DELETE | 指定したリソースを削除するメソッド |
ANY | 上記全てのメソッドを有効にする |
APIにアクセスする際は、「https://[API ID].execute-api.[リージョンID].amazonaws.com/[ステージ名]/…」のURLにアクセスします。
また、HTTP APIは、AWS LambdaやHTTPエンドポイントなどのAWSのサービスとの低レイテンシーで低コストで利用できます。
しかし、現時点(2021/6/13時点)では旧世代のREST APIの方がより多くの機能を利用できます。
(3) WebSocket API
WebSocket APIは「クライアント」と「AWSのサービス(LambdaやDynamoDBなど)またはHTTPエンドポイント」間をステートフルに接続します。
WebSocket APIはリクエストを受け取って応答するREST APIとは異なり、クライアントアプリとバックエンド間の双方向通信をサポートします。
以下のルート(どの処理をするか)を振り分けます。
ルート | 概要 |
---|---|
$connect | クライアントとWebSocket API間の永続的な接続が開始されたときに呼び出すルートです。 AWSが事前に定義されています。 |
$disconnect | クライアントまたはサーバーがAPIから切断したときに呼び出すルートです。 AWSが事前に定義されています。 |
$default | 一致するルートが見つからないときに呼び出すルートです。 AWSが事前に定義されています。 |
その他 | ユーザが独自に作成するルートです。 |
APIにアクセスする際は、以下のURLにアクセスします。
(1) WebSocket URL
wss://[API ID].execute-api.[リージョンID].amazonaws.com/[ステージ名]
(2) Callback URL
wss://[API ID].execute-api.[リージョンID].amazonaws.com/@connections/[ステージ名]
Amazon API Gatewayの料金
Amazon API Gatewayは主に以下の2個の料金が掛かります。
(1) API料金
HTTP API、REST API、WebSocket APIのそれぞれで以下のAPI料金が発生します。
(a) HTTP API : APIコール数に応じた料金
(b) REST API : APIコール数及び使用しているキャッシュメモリサイズに応じた料金
(c) WebSocket API : メッセージ数及び接続時間に応じた料金
(2) データ転送料金
アウトバウンドのデータ転送量に応じた料金が発生します。
Amazon API Gatewayの料金については、以下のAWSの公式サイトをご確認ください。
AWSに関する記事
AWSについての関連記事は以下の通りです。
必要に応じて、ご確認ください。