メモリとコンテナのスペックは連動する
Lambdaにはメモリ設定があります。これは最初悩みどころで、どれぐらいメモリが必要なんだろ?とか思ったりしますがこれは勘違いです。メモリ設定の正体は、Lambdaコンテナのスペックに比例します。つまり、
- メモリ量を増やすことで、実効速度が速くなる
ということです。逆に言うと、メモリをケチるとめちゃめちゃ遅いです。使い物にならないです。例えば、「amazon product advertising api」をLambdaでコールしてみたんですが、
- メモリ128MB:→実行速度:6000〜8000ms
- メモリ1024MB:→実行速度:600〜1000ms
となります。ウェブアプリのREST APIとして使いたいなら、6000〜8000msなんてありえない数値です。1000msでも遅いなぁって気がしますしね。
傾向として初回は起動が遅いですが、連続した2回目以降の処理は速くなります。ただ、メモリ128Mだと、何回やっても6000〜8000msをうろつきます。ちなみに、試したプログラムの最大メモリ使用量は51MBです。
コスト(料金)に注意
ただし、メモリを増やすとコストもかかってきます。これについては、下記の記事を御覧ください。
- AWS LambdaのPricingを読み解く(Qiita)
メモリ設定変更の方法に注意(Javaの場合)
管理画面でメモリを変更できるようになってますが、Javaの場合はメモリ設定だけを変更することはできないようです。jarのアップロード時にしか反映されない感じなので注意が必要です。
コストの点ではLambdaはGAEよりも若干高い気がしますが、制約もなくきちんとしたモノを作りたいのであれば選択肢として充分アリかなという印象ですね。
0 件のコメント:
コメントを投稿