📈
Lambdaコンテナ関数ではAWS提供ベースイメージを使う
コールドスタートに4~5秒かかるPythonのLambdaコンテナ関数があり、改善策を調べていたら、AWS公式ブログに下記の記述を見つけました。
AWS が提供するベースイメージは、Lambda サービスによってプロアクティブにキャッシュされます。つまり、ベースイメージは近くの別のアップストリームキャッシュにあるか、ワーカーインスタンスキャッシュにすでに存在しています。はるかに大きいにもかかわらず、キャッシュされないかもしれないサードパーティのベースイメージと比較するとデプロイ時間が短くなる可能性があります。
コンテナイメージとしてパッケージ化された Lambda 関数の最適化 | Amazon Web Services ブログ
悩んでいた関数ではDebianベースイメージ (python:3.11-slim-bookworm) を使っていたため、ためしにAWS提供のイメージ (public.ecr.aws/lambda/python:3.11) に変えたところ、コールドスタートが3秒に改善しました。
イメージサイズは292MBから508MBに増えましたが、今回は時間のほうが重要なので、このままAWS提供ベースイメージを使い続けることにしました。
というわけで、ブログ記事のとおり、できるだけAWS提供ベースイメージを使うのがよさそうです。
ENECHANGEグループは、「エネルギー革命」を技術革新により推進し、より良い世界を創出することをミッションとするエネルギーベンチャー企業です。 enechange.co.jp/
Discussion