金融系APIでAPI Gateway + Lambda アーキテクチャを使用している。CloudWatchのInit Durationメトリクスを確認すると、コールドスタート時に2〜3秒の遅延が発生しており、通常のウォームリクエストは100ms以内で処理される。SLAの要件として全リクエストの99パーセンタイルを500ms以内に抑える必要がある。アプリケーションコードを変更せずにこの問題を解決するための最適な方法はどれか?
正解: Lambda関数にProvisioned Concurrencyを設定して、関数インスタンスを事前に初期化しておく。 Provisioned Concurrencyを設定すると、指定した数のLambda関数インスタンスが常に初期化・ウォーム状態で待機するため、コールドスタートが発生しません。コードを変更せずにコールドスタートを解消する公式の方法です。 選択肢Bは Lambda関数のメモリを最大値(10,240MB)に増やしてCPU性能を向上させる方法は、コールドスタート時間を多少短縮できますが保証はできません。 選択肢Cは Amazon EventBridgeで定期的にLambda関数を呼び出し、ウォーム状態を維持する方法は非公式な方法で、スケールアウト時に新インスタンスへのコールドスタートは依然発生します。 選択肢Dは Lambda関数のタイムアウトを10秒に延長して、コールドスタートの遅延を許容する方法はSLA違反の根本解決になりません。