BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース AmazonがAPI Gateway Usage Planを導入

AmazonがAPI Gateway Usage Planを導入

原文(投稿日:2016/08/28)へのリンク

Amazonは先頃,同社のAPI Gatewayサービスをアップデートして,新たにUsage Planを追加した。Usage PlanはAmazon API Gatewayユーザに対して,さまざまなアクセスレベルとユーザカテゴリによるAPIの利用管理と収益化の手段を提供する。APIを公開する企業の一般的なパターンのひとつとして,サードパーティのエコシステムを通じてAPIを収益化する方法があるが,Usage Planでは,サードパーティ開発者の使用パターンや課金をAPIキーのレベルで管理することが可能だ。

Amazonが最初に,企業がAWS LambdaやEC2上で動作するAPI, あるいは公開エンドポイント上にホストされたAPIの防御と管理を行なう手段として,自社のAPI Gatewayサービスをローンチしたのは2015年7月だった。今回そのサービスが更新され,Usage Planによる詳細なAPI管理が可能になった。具体的には,Usage PlanによってBronze, Silver, Goldのように,さまざまなアクセスレベルを割り当てることができる。Student, Individual, Professional, Enterpriseなど,ユーザのカテゴリ別の設定も可能だ。Usage Planを使うことでAPI Gatewayのユーザは,以下のようなAPIの特性をコントロールすることができる。

  • スロットリング — 全般的な要求レート(1秒あたりの平均要求数)とバースト許容度。
  • クォータ — 日,週,月毎に実行可能な要求数。
  • API / ステージ — アクセス可能なAPIとAPIステージ。

Usage Planの作成には,API Gateway Consoleを使用する。管理者がUsage Planを使って,秒あたりのAPI要求数とバースト要求数に上限を設けることで,プロセスのスロットリングが可能になる。一定期間内の要求の合計数を対象としたクォータや上限値を設けることもできる。

先日のブログ記事では,Amazon Web ServiceのチーフエンジニアであるJeff Barr氏が,スロットリングの実装について解説した。

スロットリングはToken Bucketモデルを使用して実装されています。バケットにはBurstの値で指示されたトークン数を保持するのに十分な大きさがあり,Rateで指定された新たなトークンを獲得します。API要求が発行されるごとに,バケットからトークンを1つ削除します。Token Bucketを使用することによって,一時的なバーストも収容可能な,安定した要求ストリームを持ったAPIを実現できるのです。

ビジネスおよび技術的な観点からは,スロットリングによって,低いプランのユーザによるパフォーマンス上の問題が,高いプランのユーザのAPIコールを妨げないことを保証できるようになる。

イメージ引用: https://aws.amazon.com/blogs/aws/new-usage-plans-for-amazon-api-gateway/

予定外の利用によって当月のクォータ制限を超過しそうな場合には,サービス停止を回避する目的で,一次的に制限を拡張することも可能だ。

イメージ引用: https://aws.amazon.com/blogs/aws/new-usage-plans-for-amazon-api-gateway/

Usage PlanはAPI Gatewayステージ単位で使用することもできる。ステージとは,テスト環境と運用環境というように,それぞれ独立した管理が可能なコンピューティング環境のためにAmazonが用意したものだ。開発中のAPIを比較的パワーの低いテスト環境でホストする場合,そのようなステージや環境のための,特別なポリシをAPI利用者に設定することも可能だ。

Amazonでは現在,APIキーのレベルで使用量を測定しているので,使用量データ(Export Usage Data)機能を通じてAPIの使用情報を提供することもできる。管理者はデータの日付範囲と,JSONやCSVなどのフォーマットを指定することが可能だ。取得した情報をAPIユーザに提供して,コストの正当性を証明することができる。

イメージ引用: https://aws.amazon.com/blogs/aws/new-usage-plans-for-amazon-api-gateway/

使用量の計測とスロットリング,クォータは,いずれもAmazon API Gateway独自のものではない。MicrosoftのAzure API Managementサービスなど,競合サービスも一般的なAPI管理機能を有している。Microsoftは,製品,API,運用など,さまざまなスコープレベルで適用可能なポリシを利用して,スロットリングやクォータなどの機能を実現している。使用量のトラッキングはDeveloper, Product, Subscription, API, Operationのレベルで実行される。

 
 

この記事を評価

関連性
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT