DVA-C02:AWS Certified Developer - Associate AWS サービスを用いた開発 問4
AWS サービスを用いた開発/AWS Lambda のコード開発Lambda 関数が下流の RDS へ同時に接続しすぎてデータベースの接続が枯渇します。関数が一度に実行される数に上限を設けたいと考えています。最も適切なのはどれですか。
当サイトのオリジナル問題(DVA-C02:AWS Certified Developer - Associateの出題範囲「AWS サービスを用いた開発」に対応。実際の試験問題ではありません)
- A関数のメモリを最大値に設定する
- B関数のタイムアウトを最小値に設定する
- C関数を複数のリージョンに複製する
- D予約済み同時実行数(reserved concurrency)を設定し、関数の最大同時実行数を制限する
正解:D
解説
Lambda は需要に応じて自動的にスケールするため、何も制限しないと下流のリレーショナルデータベースへの同時接続が急増して接続が枯渇することがあります。予約済み同時実行数(reserved concurrency)を設定すると、その関数が同時に実行できる数に上限を設けられ、下流リソースを保護できます。
選択肢ごとの解説
- A誤り。メモリの最大化は実行性能には影響しますが、同時実行数の上限にはなりません。
- B誤り。タイムアウトの短縮は、同時実行数そのものを制限しません。
- C誤り。リージョン複製はむしろ処理能力を増やす方向で、同時接続の抑制にはなりません。
- D正しい。予約済み同時実行数を設定すれば、関数の最大同時実行数を制限し、下流の RDS の接続枯渇を防げます。