DVA-C02:AWS Certified Developer - Associate トラブルシューティングと最適化 問9
トラブルシューティングと最適化/AWS サービス・機能によるアプリの最適化Lambda 関数の実行時間が長くコストもかさんでいます。メモリ設定を見直して性能とコストのバランスを最適化したいと考えています。最も適切なのはどれですか。
当サイトのオリジナル問題(DVA-C02:AWS Certified Developer - Associateの出題範囲「トラブルシューティングと最適化」に対応。実際の試験問題ではありません)
- Aメモリは常に最小値に固定するのが最適と考える
- Bメモリは性能に関係しないため変更しない
- Cタイムアウトを延ばせばコストが下がると考える
- Dメモリ割り当てに比例して CPU 性能も変わることを踏まえ、実行時間とコストのバランスが最適になるメモリ値を見つける(例:Lambda Power Tuning の活用)
正解:D
解説
Lambda は割り当てたメモリ量に比例して CPU などの計算リソースも増減します。そのため、メモリを増やすと 1 回の実行が速く終わり、場合によっては総コスト(実行時間×メモリ)がかえって下がることもあります。Lambda Power Tuning などを使い、実行時間とコストのバランスが最適になるメモリ値を見つけるのが適切です。
選択肢ごとの解説
- A誤り。メモリ最小が常に最適とは限らず、CPU も下がって実行時間が延び、かえって高コストになることがあります。
- B誤り。Lambda ではメモリ割り当てが CPU 性能に影響するため、「性能に関係しない」は誤りです。
- C誤り。タイムアウトは最大実行時間の上限で、延ばしてもコストは下がりません。
- D正しい。メモリに比例して CPU が変わる特性を踏まえ、実行時間とコストのバランスが最適なメモリ値を見つける(例:Lambda Power Tuning)のが適切です。