Amazon Web Services ブログ

Amazon API Gatewayのための利用プラン

昨年、開発者がモバイル、web、エンタープライズそしてIoTアプリケーション向けバックエンドWebサービスを構築できるようにするため、 Amazon API Gateway を紹介しました( Amazon API Gateway – Build and Run Scalable Application Backend to learn more を参照)。そのときから、AWSの顧客は  AWS LambdaAmazon Elastic Compute Cloud (EC2)、そしてAWSの外で稼働するサーバ上で実行されるAPIの実装を行ってきました。多くの場合、我々の顧客は彼らのAPIの上でアプリケーションを開発するパートナー開発者のエコシステムを作ることを計画しています。API Gateway を利用することで、我々の顧客は彼らの顧客それぞれにAPIキーを作成することが可能です。
これらのキーはAPIの各ユーザを特定し、キーの所有者がアクセス可能なサービスのセットとサービスのステージ(テスト、ベータそして本番といった環境)をAPI開発者がコントロールすることが可能です。APIはしばしばビジネス価値の代わりとして提供されるため、我々の顧客はAPIを構築し、それらへのアクセスを規制し、使用量に基づいて課金することによって、それらを収益化したいと我々に教えてくれました。
新しい利用プラン
このユースケースをサポートするため、API GatewayのUsage Planをご紹介します。この新機能により、開発者はAPIを構築、収益化することと、彼らの周りでエコシステムを作ることが可能になります。異なるレベルのアクセス(Bronze、Silver、Gold)、異なるカテゴリのユーザ(学生、個人、プロフェッショナルもしくはエンタープライズ)などに対して利用プランを作成することができます。プランは名前が付けられ、APIに対するアクセスの以下の面をコントロールします。

  • スロットリング – リクエストレート全体(平均秒間リクエスト)とバーストキャパシティ
  • クオータ – 一日あたり、週あたり、もしくは月あたりに可能なリクエストの数
  • API / ステージ – アクセス可能なAPIとAPIのステージ

仮に利用プランを使うことを選択するならば、あなたのAPIそれぞれがプランと紐付けられなければなりません。幸い、API Gatewayはデフォルトプランを作成し、それらにAPIを紐付けることができます。あなたがやろうとすることを確認するだけです。

デフォルトプランはスロットリングもクオータもありませんし、APIの挙動を変更しません。

利用プランの作成
Let’s step through the process of creating a Usage Plan.  利用プランの作成プロセスを一つずつ見ていきましょう。API Gatewayのコンソールを開き、Usage Plans、に移動しCreateをクリックしてください。 名前、説明を入力し、それからスロットリングとクオータのオプションを必要に応じて設定します。

スロットリングはToken Bucket モデルを使って実装されています。バケットはバースト値により示されるトークン数を保持するのに十分な大きさで、指定レートで新規トークンを取得します。各APIリクエストはバケットから1つのトークンを削除します。Token Bucketを使うことで、時折のバーストに対応するケイパビリティを持った安定したリクエストのストリームをサポートするAPIを持つことが可能になります。 2つの異なる方法でスロットリングを利用したり考えたりできます。ビジネス的な観点からは、それにより各顧客が生成可能なリクエストがどの程度かコントロールするために利用プランを使うことができます。技術的な観点からは、APIとして実装するために使われているサービスを過度なリクエストから遮断することができます。もし、それらのサービスがAWSの外で実装されていて、要求に合うようスケールできないならば、これは特に重要なことです。

Nextをクリックし、そしてそれから利用プランを通じてアクセスされるAPIとAPIステージを選択します。

プラン作成のために Next をクリックし、それからいくつかのAPIキーを追加します。既存のキーを追加する、もしくは新しいものを作成することが可能です。

料金プランを既存のAPIキーにアタッチすることを計画しているならば、キーは同じステージに関連する複数のプランを参照できないので最初にキーからデフォルトプランを削除しなければなりません。2つ目のブラウザタブ内でAPIキーを開き、デフォルトプランの右にある”x”をクリックすることでこれができます。

(プランにキーを追加しているタブ上で)1つもしくは複数のAPIキー(APIのサブスクライバを示す)を選択し、Doneをクリックします。

あなたのユーザ(サブスクライバ)がAPIキーを使ってAPIコールを開始したら間もなく、プランで指定された通りに彼らの利用量はスロットルされ、制限されます。Usageをクリックすることでいつでも彼らの利用量を見ることができます。

クオータはリアルタイムに適用され守られます。利用量のデータは最大30分遅れます。

Export Usage Dataをクリックすることで利用量のデータはダウンロード可能です。

その後、望み通りにデータを処理し、分析することが可能です。例えば、コールごとベースでサブスクライバに請求書発行することが可能です。

サブスクライバの一つがAPIを非常によく利用していて、期間内のクオータに近づきつつある場合、利用プランを変更することなく彼らに利用を増やすことを許可することができます。Extensionをクリックして、期間内の残りを用意するために許可するリクエスト数を入力するだけです。

利用プランを使用する
先だって言及したように、利用量に対する請求書発行やAPIを中心としたエコシステムを作るのに利用プランを使えます。

アクセスをコントロールしたり、監視することができ、必要に応じて選択的に特別なアクセスを個別のサブスクライバに許可することができます。例えば、特定のAPIステージに対するアクセスを許可するAPIキーと利用プランを作成することができます。多くのサブスクライバは本番ステージへのアクセスが必要です。少しのサブスクライバは開発もしくはベータテストのステージへのアクセスが必要です。

まとめの前に、APIキーは識別のためであり、認証のためではないことを指摘しておきます。キーはリクエストの署名のためには使われず、セキュリティ機構として使うべきではありません(これは完全に Cognito Your User Poolsのユースケースです)。

今すぐ利用可能
この機能は今すぐ利用可能で、本日より使う始められます。


Jeff;(翻訳はSA西谷が担当しました。原文:New – Usage Plans for Amazon API Gateway