開発者はAmazon API GatewayとAWS Lambdaを使用してサーバーレスアプリケーションを構築しています。ある特定のAPIエンドポイントへのリクエストが急増した際、バックエンドのデータベースが接続過多で過負荷になるのを防ぐため、API Gateway側で一時的にリクエストを絞り込み(スロットリング)、同時にLambda関数の最大同時実行数を制御したいと考えています。この要件を満たすための最も適切な設定の組み合わせはどれですか。
A
API Gatewayの使用量プラン(Usage Plan)でレートとバーストの制限を設定し、Lambda関数の予約済コンカレンシー(Reserved Concurrency)で最大同時実行数を制限する。
✓ 正解
API Gatewayの使用量プランによるスロットリング制御と、Lambdaの予約済コンカレンシーによる同時実行数の上限制限を組み合わせることで、バックエンドのデータベースを過負荷から確実に保護できます。
B
API Gatewayのステージ変数でLambda関数のタイムアウト時間を縮小し、DynamoDBのキャパシティユニットを自動スケーリングに設定する。
API Gatewayでは「使用量プラン」と「APIキー」を組み合わせて、秒間リクエスト数(レート)およびバーストの許容量を設定し、特定のクライアントや全体のスロットリング(制限)を行うことができます。また、AWS Lambda側では「予約済コンカレンシー(Reserved Concurrency)」を設定することで、関数が消費できる同時実行数の上限を厳格に制限できるため、バックエンドのデータベース(RDSなど)への接続数急増を防ぐ強力な保護策となります。この2つの機能を組み合わせることで、リクエストの流量制限とバックエンドの保護を確実に実現できます。