DVA-C02開発MEDIUM単一選択

ある企業が、API GatewayのREST APIをモバイルアプリと社内管理ツールの両方に公開している。モバイルアプリには1秒あたり500リクエストまで、管理ツールには1秒あたり50リクエストまでという異なるスロットリング制限を設けたい。最小の構成変更でクライアント種別ごとに異なるスロットリングレートを設定する方法として最も適切なものはどれか。

  1. A. Lambda Authorizerでクライアント種別を判定し、Lambda関数内でリクエスト数をカウントしてスロットリング処理を実装する
  2. B. モバイルアプリ用と管理ツール用にAPI Gatewayのリソースを完全に別々のAPIとして2つデプロイする
  3. C. API Gatewayのステージレベルのスロットリングを500に設定し、管理ツールのリクエストはLambdaで50以下に制限する
  4. D. APIキーを発行してUsage Planに紐付け、モバイルアプリ用と管理ツール用で別々のUsage Planにスロットリング設定を行う
解答と解説を見る

正解: D

API GatewayのUsage Planは、APIキーと組み合わせてリクエストのスロットリングとクォータを制御する機能である。モバイルアプリ用のAPIキーを「500 rps」のUsage Planに、管理ツール用のAPIキーを「50 rps」のUsage Planにそれぞれ割り当てることで、クライアント種別ごとに独立したスロットリング制限を最小構成で実現できる。選択肢AのLambda Authorizer内でのカスタムレート制限は実装が複雑で、Lambdaの実行コストも増加し、分散環境での正確なカウントには追加のキャッシュ(ElastiCache等)が必要になる。選択肢CはAPIステージ全体での500 rps制限は設定できるが、管理ツールのリクエストをLambda内で50以下に制限することはAPI Gatewayの本来の機能を迂回する不適切な実装であり、管理ツールのリクエストがLambdaのスロットリング処理を通過する保証もない。選択肢BはAPIを2つに分割することで実現できるが、API定義・ステージ・ドメイン設定の二重管理が必要になり運用負荷が大きい。

▸ この試験を本気で演習する(全150問・無料)