無限ノック › DVA 練習問題一覧 › 問題
DVAAWSのサービスを使用した開発

開発者は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のキャパシティユニットを自動スケーリングに設定する。
ステージ変数はバックエンドのエンドポイントやLambdaエイリアスの切り替え等に用いるものであり、リクエスト全体のスロットリングやデータベース保護の機能はありません。
C
API Gatewayのキャッシュ機能を有効化して全リクエストをキャッシュし、Lambda関数のプロビジョンドコンカレンシーを無効化する。
キャッシュ機能はレスポンスの高速化には寄与しますが、動的なデータ書き込みを伴うリクエストの流量制御やバックエンドの保護手段としては不適切です。
D
AWS Lambda関数のコード内にスリープ処理をハードコードし、データベースへの接続間隔を強制的に一定時間空けるように制御する。
Lambdaのコード内にスリープ処理を埋め込むアプローチは、実行時間が長引くことでコストが増大するうえ、同時実行数の増加そのものを防げないため不適切です。

解説

API Gatewayでは「使用量プラン」と「APIキー」を組み合わせて、秒間リクエスト数(レート)およびバーストの許容量を設定し、特定のクライアントや全体のスロットリング(制限)を行うことができます。また、AWS Lambda側では「予約済コンカレンシー(Reserved Concurrency)」を設定することで、関数が消費できる同時実行数の上限を厳格に制限できるため、バックエンドのデータベース(RDSなど)への接続数急増を防ぐ強力な保護策となります。この2つの機能を組み合わせることで、リクエストの流量制限とバックエンドの保護を確実に実現できます。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DVA の問題一覧に戻る