DVAトラブルシューティングと最適化
大量の注文トラフィックを処理するサーバーレスWebアプリケーションにおいて、突発的なスパイクアクセスが発生した際にバックエンドのRelational Database(RDS)が接続オーバーフローでダウンする障害が発生しました。Lambda関数の同時実行数を制限し、データベースへの超過アクセスを確実に防ぐための構成はどれですか。
ALambda関数にプロビジョンドコンカレンシー(Provisioned Concurrency)を設定し、常に一定数のインスタンスを準備する。
プロビジョンドコンカレンシーはコールドスタートを抑止するためにインスタンスを事前確保する機能であり、同時実行数の最大上限を制限するものではありません。
BLambda関数に予約済コンカレンシー(Reserved Concurrency)を設定し、関数が使用できる最大同時実行数を制限する。
✓ 正解
予約済コンカレンシーを設定することで、該当Lambda関数の最大同時実行数に上限が設けられ、バックエンドのRDSに対する過度な同時接続を防止できます。
CAPI Gatewayのモック統合を設定して、データベースへの負荷が高まった際に固定エラーレスポンスを直接返却する。
モック統合はテスト目的や静的レスポンス返却に使用される機能であり、動的なDB負荷状態に応じたアクセス制限を行う機能としては適していません。
DLambdaのメモリサイズを最大値の10GBまで引き上げ、関数1回あたりの処理スピードを高めて接続を即座に解放する。
メモリサイズを増やすと単体処理は速くなりますが、同時アクセススパイク時の瞬間的なコネクション急増を制限することはできないため根本解決になりません。
解説
予約済コンカレンシー(Reserved Concurrency)は、特定Lambda関数が利用できる同時実行数の「上限」を保証および制限する設定です。これを設定することで、急激なアクセス増加時でも指定した制限を超えてLambdaがスケールしなくなるため、ダウンストリームのリソース(RDS等)の過負荷を防ぐことができます。一方、プロビジョンドコンカレンシーは指定した数の事前初期化インスタンスを維持してコールドスタートを回避するための機能であり、上限制限目的ではありません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →