スライド/Python LambdaのSnapStartとAWS Lambda Powertools version 12
:追加された部分
:削除された部分
(差分が大きい場合、文字単位では表示しません)
スライド/Python LambdaのSnapStartとAWS Lambda Powertools
## 自己紹介
- 夏目 祐樹 (ナツメ ユウタ)
- クラスメソッド
- 製造ビジネステクノロジー部
- 好きなAWS Service
- Lambda, DynamoDB, SQS, S3
- 近況
- FF7 Rebirthを100時間以上プレイするもクリアまで行かず
---
## Cold Start
---
## Cold Start
![[9005460307943389] perf-optimize-figure-1](https://mimemo.s3-ap-northeast-1.amazonaws.com/attachment/8c497cf2-dbeb-4943-9a69-3d9c33375fb9.png)
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-runtime-environment.html#cold-start-latency
- AWS公式の考え方ではMicro VMの作成までがコールドスタート
- 再実行時はハンドラの実行から
- 広義の考え方ではコードの初期化も含める
---
## Cold Start
- どうしてもコードの初期化で初回の実行は遅くなる
- Pythonのboto3の読み込みでも1秒くらいかかる
- Pandasとか重いライブラリを読めばもっとかかる
- GoやRustなどシングルバイナリを生成するような言語ではコールドスタートもウォームスタートも大した差にはならない
---
## ユーザーのくふう (1)
- 手動ウォームアップ
- 何らかの手段でLambdaを実行させCold Startを回避する
- ただし
- 手動ウォームアップの実行中にリクエストが来たらCold Startが起きる
- 事前に立ち上げた数よりも多いリクエストが来たらCold Startが起きる
---
## ユーザーのくふう (2)
- Lambdalith (Monolithic function)
- 1つのLambdaで複数のイベントを処理する
- 例えば、APIで複数のパスを一つのLambdaで処理する
- ただし、Cold Startを多少抑制できる程度
---
## AWSのくふう (1)
- Provisioned Concurrency
- AWSによる自動ウォームアップ
- ただし
- 設定した実行数よりも多いリクエストが来たらCold Startが起きる
- ウォームアップしている期間についても課金される
---
## AWSのくふう (2)
- Snap Start (Java)
- re:Invent 2022で発表された機能
- Java 11以降で使用可能
- バージョンを発行する際に①コードのロード②ランタイムの開始③関数コードの初期化、これらを行ったキャッシュを作成する
- キャッシュから実行することで広義のコールドスタートを高速化する
---
## AWSのくふう (3)
## Pythonと.NETでSnapStartのサポートを開始
自己紹介
- 夏目 祐樹 (ナツメ ユウタ)
- クラスメソッド
- 製造ビジネステクノロジー部
- 好きなAWS Service
- Lambda, DynamoDB, SQS, S3
- 近況
- FF7 Rebirthを100時間以上プレイするもクリアまで行かず
Cold Start
Cold Start
- AWS公式の考え方ではMicro VMの作成までがコールドスタート
- 再実行時はハンドラの実行から
- 広義の考え方ではコードの初期化も含める
Cold Start
- どうしてもコードの初期化で初回の実行は遅くなる
- Pythonのboto3の読み込みでも1秒くらいかかる
- Pandasとか重いライブラリを読めばもっとかかる
- Pythonのboto3の読み込みでも1秒くらいかかる
- GoやRustなどシングルバイナリを生成するような言語ではコールドスタートもウォームスタートも大した差にはならない
ユーザーのくふう (1)
- 手動ウォームアップ
- 何らかの手段でLambdaを実行させCold Startを回避する
- ただし
- 手動ウォームアップの実行中にリクエストが来たらCold Startが起きる
- 事前に立ち上げた数よりも多いリクエストが来たらCold Startが起きる
ユーザーのくふう (2)
- Lambdalith (Monolithic function)
- 1つのLambdaで複数のイベントを処理する
- 例えば、APIで複数のパスを一つのLambdaで処理する
- ただし、Cold Startを多少抑制できる程度
AWSのくふう (1)
- Provisioned Concurrency
- AWSによる自動ウォームアップ
- ただし
- 設定した実行数よりも多いリクエストが来たらCold Startが起きる
- ウォームアップしている期間についても課金される
AWSのくふう (2)
- Snap Start (Java)
- re:Invent 2022で発表された機能
- Java 11以降で使用可能
- バージョンを発行する際に①コードのロード②ランタイムの開始③関数コードの初期化、これらを行ったキャッシュを作成する
- キャッシュから実行することで広義のコールドスタートを高速化する
AWSのくふう (3)
Pythonと.NETでSnapStartのサポートを開始