ある企業が、AWS Lambda を使ったサーバーレスアプリケーションのコストを最適化したい。Lambda 関数のメモリサイズは現在デフォルト(128MB)で設定されているが、実行時間が長く(平均 10 秒)、コストが想定より高い。最小限の調査でコストを最適化する最も適切な方法はどれか。
- A. AWS Lambda Power Tuning(AWS Step Functions を使った OSS ツール)を実行して、さまざまなメモリサイズでの実行時間とコストを比較し、最適なメモリサイズを特定する。
- B. Lambda 関数を EC2 インスタンスに移行して、定額のオンデマンドコストに切り替える。
- C. Lambda 関数のメモリを最大(10,240MB)に設定して実行時間を最短にする。
- D. Lambda 関数の同時実行数を最大に設定して並列処理でスループットを向上させる。
解答と解説を見る
正解: A
Lambda のコストは(メモリ GB × 実行時間秒)× 単価で計算される。メモリを増やすと CPU も比例して増加し実行時間が短縮されるが、メモリ増加のコスト増と実行時間短縮のコスト減のトレードオフが存在する。Lambda Power Tuning は各メモリ設定での実際の実行時間とコストを計測・比較するツールで、コスト最適または速度最適のメモリサイズを客観的に特定できる。多くの場合、128MB より高いメモリ設定の方がコストが安くなることがある。選択肢Cはメモリを最大にして実行時間を最短にする戦略だが、メモリコストが増加するため必ずしも総コストが最安にならない。Power Tuning でデータに基づいた判断が重要。選択肢BのEC2 移行はサーバーレスの利点(アイドル時の無課金)を失い、低頻度実行の Lambda には特にコスト増になる。選択肢Dの同時実行数の増加はスループット向上には寄与するが、個々の関数の実行コストには影響しない。
📚 関連サービスの解説: AWS Lambda ・ AWS Step Functions