DVAトラブルシューティングと最適化

あるチケット予約システムでは、販売開始直後に急激なアクセススパイクが発生します。バックエンドにあるRDSデータベースの接続オーバーフローによるダウンを防ぐためにLambda関数の最大同時実行数を制限し、同時に主要な予約処理関数で発生するコールドスタートによる遅延を完全に回避したいと考えています。適切なLambda設定の組み合わせはどれですか。

A
予約済コンカレンシー(Reserved Concurrency)で最大同時実行数を指定値に制限し、プロビジョンドコンカレンシー(Provisioned Concurrency)で事前初期化インスタンスを維持する。
✓ 正解
予約済コンカレンシーで上限数を制限してRDSのダウンを防ぎ、プロビジョンドコンカレンシーで実行環境を事前確保してコールドスタートを防ぎます。
B
プロビジョンドコンカレンシーで最大同時実行数を制限し、予約済コンカレンシーを無制限に設定してスパイクを吸収する。
プロビジョンドコンカレンシーは事前初期化用であり、同時実行数の最大「上限制限」を行う機能ではないためRDSを保護できません。
C
API Gatewayのモック統合を利用してリクエストをキューイングし、Lambdaのメモリ割り当てサイズを最大の10GBに変更する。
モック統合はバッファリングやキューイングの機能を提供しておらず、メモリ増強だけでは同時接続数の暴走を防ぐことは不可能です。
D
AWS AppConfigを使用してDBコネクション数を動的に絞り込み、Lambdaのタイムアウト時間を最大の15分に引き上げる。
AppConfigやタイムアウト延長では、アクセススパイク時にLambdaが大量起動してRDSの接続上限を超える障害を直接抑止することはできません。

解説

「予約済コンカレンシー」を設定することで、関数が消費できる同時実行数の上限を制限できるため、急激なアクセススパイク時でもRDSの最大接続数を超過させない保護策となります。また「プロビジョンドコンカレンシー」を併用して設定することで、指定数の実行環境があらかじめ初期化された状態で維持されるため、コールドスタートによる応答遅延を確実に排除できます。この2つの適切な組み合わせが正解です。

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

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

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