NHN Cloud Meetup 編集部
API Gatewayサービスの紹介
2021.04.13
1,148
API Gatewayサービスとは
API Gatewayは、さまざまなバックエンドポイントサービスのゲートウェイと機能してAPIのエンドポイントを1つに統合できるサービスです。API Gatewayを利用すると、次のようなメリットがあります。
・API Gatewayから提供されるプラグインで、バックエンドエンドポイントサービスのコードを変更すると、配布せずに機能を追加できます。(HTTPSの暗号化通信、認証、CORS、要求/応答処理、IP ACLアクセス制限など)
・ダッシュボードからAPIリクエスト数、平均応答時間、HTTPステータスコードグループ(2xx、5xx …)別の応答数などの指標を確認できます。
API Gateway動作方式
1.ゲートウェイクライアントは、すべての要求(Request)をAPI Gatewayに統合してリクエストし、API Gatewayはゲートウェイクライアントリクエストとマッピングされるリソースを検索します。
2.リクエストにバックエンドリクエスト処理のプラグインを適用します。
3.バックエンドポイントにリクエストを送信します。
4.バックエンドポイントの応答処理をAPI Gatewayが担当します。
5.バックエンドポイント応答にフロントエンド応答処理のプラグインを適用します。
6.ゲートウェイクライアントに応答します。
API Gatewayサービスを始める
1.サービス作成
API Gatewayサービスとは、API Gatewayを通じてサービスを提供するAPIを管理する単位のことです。
API Gatewayサービス別に1つのAPIリソースと複数のステージを管理することができ、ダッシュボードでAPI指標を確認できます。
2.リソース作成
リソースでは、API GatewayからサービスするAPIを設計できます。
ツリー形式でAPIを登録でき、APIのパスとメソッドを簡単に管理することができます。
ゲートウェイクライアントはAPI Gatewayのリソースに定義されたAPIに対してリクエストが行えます。
パス変数
パス変数(Path variable)を宣言できます。
– パス変数を宣言するには、リソースパスを{variableName}形式で作成します。
– バックエンドポイントURLのパスに動的パスを設定する場合、${request.path.variableName}形式で設定できます。
– パス変数はプラグインでも使用できます。
– サブパスを含むパス変数を宣言できます。
– 個別のリソースパスを作成しなくても、特定のサブパスに含まれるすべてのAPIを連動する際に活用できます。
– サブパスを含むパス変数を宣言するには、リソースパスを{variableName+}形式で作成します。
バックエンド>エンドポイントタイプ
– HTTP(S):リソースに連動するバックエンドポイントURLを作成します。
– ユーザー定義応答:定義した応答(HTTPステータスコード、ヘッダ、本文/Body)を処理します。
3.プラグイン設定
バックエンドリクエスト処理
API Gatewayがバックエンドポイントにリクエストを送信する前に、元のリクエストを処理することができます。
– バックエンドリクエスト処理のサポートプラグイン
– CORS(Cross-Origin Resource Sharing, CORS):他の情報源(Origin)のリクエストを許可できるようにCORS関連のヘッダーを設定できます。
– リクエストヘッダの変更:ゲートウェイクライアントの元リクエストにヘッダを追加したり変更することができます。
フロントエンド応答処理
ゲートウェイクライアントに応答を返す前に、元の応答を処理することができます。
– バックエンドリクエスト処理のサポートプラグイン
– 応答ヘッダを変更:バックエンドポイントの元の応答にヘッダを追加したり変更することができます。
4.ステージ作成
ステージは、リソースを展開する段階のことを指します。
環境(Profile)別、バージョン別にリソースを配置することができ、さまざまな用途に活用できます。
ステージ別に固有のAPIエンドポイントURLが提供されます。
使用例:環境別にステージを作成
– ステージ別に環境固有のバックエンドポイントURLを設定できます。
– 例:アルファ環境のステージ
使用例:バージョン別にステージを作成
ステージ別にバージョン別のバックエンドポイントURLを設定できます。
既存のバージョンのAPI(v1)を維持しつつ、新しいバージョンのAPI(v2)を配置できます。
v1
v2
5.ステージ設定
IP ACL
クライアントIPに対して単一IPまたはIP帯域を設定してアクセスの許可または拒否を行います。
認証
– HMAC:ゲートウェイクライアントのリクエストに対する署名を検証します。
– JWT:JWTトークンの署名とクレームを検証します。
1秒当たりのリクエスト制限
– 1秒当たりのリクエスト数を制限してバックエンドポイントのトラフィック負荷を制限できます。
– クライアントIPアドレス、特定のリクエストヘッダの値、パス変数など、さまざまな制限キーの条件を追加して使用できます。
事前呼び出しAPI
– 事前呼び出しAPIでは、バックエンドポイントを呼び出す前にユーザーが指定したAPIを呼び出します。応答HTTPステータスコードが200OKの場合にのみ、バックエンドポイントにリクエストを送信します。
6.配布
設定されたステージをAPI Gatewayサービスに適用するため、ステージを配布します。
7.APIリクエスト
ステージの配布が完了するとAPIをリクエストできます。
ステージのURLを確認してからAPIを呼び出します。
8.ダッシュボード
API Gatewayのダッシュボードでは、サービスステージ別に統計情報を確認することができます。
API呼び出し成功数/失敗数、APIの平均応答速度、送信ネットワークトラフィックの統計データを確認できます。
統計データはAPIの品質管理の用途としてご活用いただけます。
リソース統計から、各APIの統計情報を確認できます。