Amazon API Gatewayについてまとめています。
AWS API GATEWAYは、規模に応じてAPIを作成、維持、保護をおこなうサービス
AWS API GATEWAYは、バックエンドのシステムやデータをAPI経由で利用できるようにするためのサービスです。RESTful API や WebSocket API でシステムにアクセスできるようにし、 JavaScript、iOS、Androidなど複数の言語用のクライアント SDK を生成します。
また、サードパーティ開発用のAPIキーを配布することも可能。APIキーごとにきめ細かいアクセス権限を設定できます。
APIタイプとして、RESTful APIとWEBSOKET APIの2タイプを選択可能です。HTTP経由でやりとりをおこなうRESTful APIと、双方向のリアルタイム通信をおこなうWebSocket APIの最適なタイプを選べます。
関連)Amazon API Gateway(規模に応じた API の作成、維持、保護)| AWS
以下は、AWSマネジメントコンソールから、REST APIを構築する例です。
REST APIの場合は、新しいAPIを構築するか、SwaggerまたはOpen API 3からインポートするか、サンプルAPIでサービスを構築するかを選択できます。以下は、提供されているペットストアを想定したデモのサンプルAPIの一部です。APIの動作確認ができます。
{ "swagger": "2.0", "info": { "description": "Your first API with Amazon API Gateway. This is a sample API that integrates via HTTP with our demo Pet Store endpoints", "title": "PetStore" }, "schemes": [ "https" ], "paths": { "/": { "get": { "tags": [ "pets" ], "description": "PetStore HTML web page containing API usage information", "consumes": [ "application/json" : :
Amazon API GatewayでSDKを使う
Amazon API Gatewayでは、JavaScript、iOS、Android、Rubyなど各種言語のSDKを生成することができます。以下は、JavascriptのSDKを使用する例です。まずは以下のように必要となるモジュールを読み込みます。
<script type="text/javascript" src="lib/axios/dist/axios.standalone.js"></script> <script type="text/javascript" src="lib/CryptoJS/rollups/hmac-sha256.js"></script> <script type="text/javascript" src="lib/CryptoJS/rollups/sha256.js"></script> <script type="text/javascript" src="lib/CryptoJS/components/hmac.js"></script> <script type="text/javascript" src="lib/CryptoJS/components/enc-base64.js"></script> <script type="text/javascript" src="lib/url-template/url-template.js"></script> <script type="text/javascript" src="lib/apiGatewayCore/sigV4Client.js"></script> <script type="text/javascript" src="lib/apiGatewayCore/apiGatewayClient.js"></script> <script type="text/javascript" src="lib/apiGatewayCore/simpleHttpClient.js"></script> <script type="text/javascript" src="lib/apiGatewayCore/utils.js"></script> <script type="text/javascript" src="apigClient.js"></script>
以下のコードで、SDK を初期化します。
var apigClient = apigClientFactory.newClient();
SDK を AWS認証情報で初期化するには、以下のようなコードで、アクセスキーとシークレットキーを指定します。
var apigClient = apigClientFactory.newClient({ accessKey: 'ACCESS_KEY', secretKey: 'SECRET_KEY', });
SDK で API キーを使用するには、APIキーを指定して、以下のようなコードを実行します。
var apigClient = apigClientFactory.newClient({ apiKey: 'API_KEY' });
これで、APIをJavascriptから呼び出す準備ができました。
AWS API GATEWAYの料金
AWS API GATEWAYでは、APIのリクエスト回数によって料金が決まります。
関連)料金 – Amazon API Gateway | AWS
例えば、REST APIでは、100万アクセスあたりの料金は以下の通り。リクエスト回数が多いほど単価が安くなります。
- 最初の 3 億 3,300 万: 4.25USD
- 次の 6 億 6,700 万: 3.53USD
- 次の 190 億: 3.00USD
- 200 億以上: 1.91USD
REST APIでは、キャッシュオプションも用意されています。キャッシュを設定すると、キャッシュのメモリサイズに応じて1時間あたりの料金が変化します。
以下は、HTTP APIの100万アクセスあたりの料金です。REST APIに比べると、単価が安めに設定されています。
- 最初の 3 億: 1.29USD
- 3 億以上: 1.18USD
以下は、WebSocket APIの100万アクセスあたりの料金です。こちらも、REST APIに比べると単価が安めに設定されています。
- 最初の 10 億 1.26USD
- 10 億以上 1.06USD
AWS API GATEWAYのまとめ
- AWS API GATEWAYは、API経由でシステムやデータにアクセスできるようにするサービス
- HTTP API、REST API、WEBSOCKET APIからAPIタイプが選択可能
- JavaScript、iOS、Android、Rubyなどの言語からAPI利用するためのSDKを生成可能