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

金融サービス会社が、Python 3.11で実装された決済処理Lambda関数を運用しています。この関数は起動時に大型の暗号化ライブラリをインポートするため、コールドスタート時の初期化に4〜5秒かかります。SLAとして99%のリクエストを500ms以内に処理する義務があり、現在SLA違反が発生しています。トラフィックは平日9:00〜18:00に集中し、夜間はほぼゼロです。この問題を解決するために開発者が取るべき最も適切な対応はどれですか?

A
Application Auto Scalingのスケジュールスケーリングでプロビジョンドコンカレンシーを業務時間前に増加させ、夜間はゼロに削減するよう設定する
✓ 正解
プロビジョンドコンカレンシーは実行環境を事前初期化するため、コールドスタートが発生せず全リクエストが即座に処理される。スケジュールスケーリングで業務時間のみ有効にすることでコストも最適化できる。
B
リザーブドコンカレンシーを業務時間のピーク同時実行数に合わせて設定し、コンカレンシー枯渇によるスロットリングとコールドスタートを防ぐ
リザーブドコンカレンシーは関数が使用できる最大同時実行数を予約するが、事前初期化は行わない。新規リクエスト時にコールドスタートは依然として発生するため、レイテンシ問題の解決にはならない。
C
Lambda関数のメモリを3,008MBまで増加させてvCPUリソースを最大化し、起動時のライブラリ読み込みと初期化にかかる時間を大幅に短縮する
メモリ増加でCPUリソースが増えて初期化が若干速くなる可能性はあるが、4〜5秒のコールドスタートをSLA要件の500ms以内にまで短縮する効果は期待できず、根本解決にならない。
D
Lambda SnapStartを有効化し、初期化済みのメモリスナップショットから関数インスタンスを高速復元してコールドスタートをほぼゼロにする
Lambda SnapStartはJava 11以降・Python 3.12以降・.NET 8以降のランタイムで利用可能だが、この関数が使用するPython 3.11には対応していないため適用できない。

解説

プロビジョンドコンカレンシーは、指定した数のLambda実行環境を事前に初期化した状態で待機させる機能です。リクエストが到着した際に初期化済みの環境が即座に応答するため、コールドスタートが発生しません。Application Auto Scalingのスケジュールスケーリングと組み合わせることで、平日業務時間前に自動でスケールアップし、夜間はコストを抑えるためにゼロにスケールダウンできます。 選択肢Bのリザーブドコンカレンシーは関数に割り当てる同時実行数の上限を設定するものであり、実行環境を事前初期化する機能はなく、コールドスタートを防ぐことができません。 選択肢CのメモリはvCPU割り当てを増やして初期化を多少短縮できる場合がありますが、4〜5秒のコールドスタートを500ms以内に削減することは困難で、根本的な解決策にはなりません。 選択肢DのLambda SnapStartはJava 11以降・Python 3.12以降・.NET 8以降のランタイムで利用可能ですが、この関数が使用するPython 3.11には対応していないため使用できません。

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

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

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