AWS Lambdaの最大メモリ割り当て量が3008MBに拡大されたので試してみた

マネジメントコンソールでもメモリサイズが3008MBまで指定できるようになっています!

1536MBから64MB刻みで最大3008MBまで設定可能です。

英語版のLambdaの料金表には3008MBまでの料金も表示されるようになっています(12月1日時点では日本語版には表記なし)

英語版のLambdaの料金表には3008MBまでの料金も表示されるようになっています(12月1日時点では日本語版には表記なし)

https://aws.amazon.com/lambda/pricing/

調査方法

Lambdaのパフォーマンスはzip圧縮時の処理時間、ネットワークIOはS3への読み書きの処理時間で評価してみます。評価は、以下の過去記事と同じ方法でやってみます。

【AWS Lambdaの小ネタ】メモリ割当量を増やすとパフォーマンス、コストがどう変わるか検証してみた

検証結果

まず、圧縮、ネットワークIn、ネットワークOutにかかった処理時間を比較してみます。

結果は以下のようになりました。

■計算能力(gzip圧縮処理)

メモリ割当量1536MBと3008MBでは、0.5秒とわずかながら3008MBの方が処理時間が短いです。メモリ割り当てにより計算能力も向上しています。

■ネットワークIn/Out(S3のファイル読み書き)

メモリ割当量1536MBと3008MBでは、メモリ割当量が増えるとIOも向上しています。

パフォーマンスと割り当てのメモリ量の関係をプロットしてみましたので、これものせておきます。メモリ量を増やすと、パフォーマンスが上がるのが分かります。

まとめ

メモリ割当量を増やすと時間当たりのコストも上がりますが、性能があがって処理時間が短くなる分、最終的なコストは変わらない、というのがLambdaです。「時は金なり」という考え方で行けば、できるだけメモリ割当量を増やして、処理時間を短くする方が良さそうです。

ただし、想定外の課金を避けるために、メモリ割当量を大きくした場合は、Lambdaのタイムアウト値を低めに設定したり、CloudWatchで処理件数をモニタリングしたりして、「Lambda破産」を防ぎましょう。

この記事を書いた人

aws-recipe-user