AWS LambdaでのインポートモジュールごとのDurationの比較
AWS Lambdaで毎日1回、EBSスナップショットを取るようにしています。
この2週間くらいで、importしているものをbotoからboto3(client)、boto3(resource)と変えてきましたが、Durationはどうなってるんだろうと気になったので調べてみました。
インポートモジュールと期間
- 1/11まではboto、uploadしたzip内にboto含む
- 1/12~1/17はboto3.client
- 1/17~はboto3.resource
下の画像はCloudWatchのメトリックスの画像です。
boto、boto3.client、boto3.resourceの順にDurationが大きくなっていました。 botoが一番短くてboto3に比べて半分のDurationで済んでいるのは、uploadしたzip内にbotoモジュールを含めてLocal実行しているから?なのかもしれません。boto3だと、AWS Lambdaで標準で使えるとはいえ、どこか別の場所に置いてあってそれを取りに行くから遅いのかな?
AWS Lambdaの料金はかなり安いので、ちょっとしたタスクなら気にしなくてもいいかもしれませんが、頻度が高くて長時間実行するようなコードだと、試行錯誤してDurationを小さくしないと費用が結構かかりそうです。
(といってもEC2インスタンスを使うよりは安いですけど)