4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS Lambda と ServerlessAdvent Calendar 2024

Day 7

AWS Lambda で Python の SnapStart がGAしたので試してみた

Last updated at Posted at 2024-12-19

ジャーニーマン( @beajourneyman )です。長いの"ジャニ"と呼ばれています。

こちらはAWS Lambda と Serverless Advent Calendar 2024の7日目が執筆時点で空いていたので、後追いでお邪魔した記事になります。実行時間を繰り返し検証してまとめました。よろしくお願いいたします。

AWS Lambda で Python の SnapStart がGA

11 月 18 日、Python および .NET 関数向けの AWS Lambda SnapStart の一般提供の開始を発表しました。これにより、関数の起動パフォーマンスが数秒からわずか 1 秒未満にまで高速化され、通常は Python、C#、F#、Powershell におけるコード変更が最小限またはまったく不要になります。

Lambda SnapStart を有効化する

  • プロダクションで1日におびただしい回数呼び出している Lambda があった
  • Amazon Connect のフローブロックはタイムアウトにシビア

上記、背景から該当の関数に設定して試してみました。

「Lambda」を選択します。検証したい関数を表示します。「設定」タブの「一般設定」を確認します。「SnapStart」が"none"設定になっているので、"Published version"に設定します。

image.png

image.png

SnapStart の互換性に関する考慮事項
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/snapstart.html#snapstart-compatibility

SnapStartを有効にし走行させて検証する

キャッシュが効くであろう想定で、何度か実行しました。

SnapStart設定前の初回実行
image.png

SnapStart設定後の初回実行
image.png

「初期所用時間」が「復元時間」になっているコトが分かります。

前回の実行からおおよそ5分以内に実行(SnapStart設定前)
image.png

前回の実行からおおよそ5分以内に実行(SnapStart設定後)
image.png

同様に複数回繰り返し実証してみた結果が以下の通りです(単位は秒)。

設定前初期所要時間平均 設定後復元時間平均
平均 0.332 0.485 0.153
最大 0.378 0.570 0.192

実証した結果興味深いコトに、SnapStart設定後の方が遅い結果になりました。個別単独での検証では効果がない結果なので、採用を見送る結果となりました。一方で1関数を捉えて実施しただけですので、SnapStart設定が有効ではないと一概には言えないとも考えております。引き続き今後のベストプラクティスをキャッチアップしながら、改善につなげていきたいと考えています。

以上です。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?