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

ニュース配信サイトのバックエンドでは、アクセス集中時にAmazon API GatewayからAWS Lambdaを経由してAmazon RDSデータベースへ大量のアクセスが行われます。アクセススパイク時にRDSの最大コネクション数を超えてDBがダウンするリスクを回避したいと同時に、主要な処理関数で発生するコールドスタート遅延を排除したいと考えています。適切なLambda設定の組み合わせはどれですか。

A
予約済コンカレンシーで最大同時実行数を制限してRDS接続を保護し、プロビジョンドコンカレンシーでコールドスタートを排除する。
✓ 正解
予約済コンカレンシーで最大同時実行数を制限してRDSの破綻を防ぎ、プロビジョンドコンカレンシーで事前初期化状態を維持して遅延を回避するのが正解です。
B
RDS接続制限のために「プロビジョンドコンカレンシー」を1000に設定し、遅延防止のために「予約済コンカレンシー」を無制限に設定する。
プロビジョンドコンカレンシーは実行環境の事前確保機能であり、同時実行数の「上限の制限」を行う機能ではないためDBの保護になりません。
C
「AWS AppConfig」を使用してDBコネクションプールを動的制御し、Lambdaのメモリサイズを10GBに固定して処理を最速化する。
AppConfigは動的な設定配信機能であり、Lambdaの同時実行数スパイクによるRDS接続数の物理的暴走を直接抑止することはできません。
D
API Gateway側で「モック統合」を適用してトラフィックをバッファリングし、Lambdaの「タイムアウト設定」を最大化する。
モック統合はキューイングやバッファリングの機能を持たず、タイムアウトの延長も同時接続数の爆発を抑制する解決策にはなりません。

解説

「予約済コンカレンシー」は特定Lambda関数が消費できる最大同時実行数の上限を設定・制限できるため、急激なアクセススパイク時でも後続のRDS接続上限オーバーによる障害を確実に防ぐことができます。また「プロビジョンドコンカレンシー」を設定することで、あらかじめ指定数の実行環境を初期化して準備状態にしておけるため、コールドスタートによる遅延を完全に排除できます。この2つの機能を併用するのが最適解です。

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

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

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