Slide 1

Slide 1 text

Lambda SnapStart 使ってみた 2022年12月15日 セゾン情報システムズ 山口 大輝

Slide 2

Slide 2 text

自己紹介 • 山口 大輝 • 株式会社セゾン情報システムズ • インフラエンジニア(2年目) • 前職では3年ほどカスタマーエンジニアを経験

Slide 3

Slide 3 text

今日伝えたいこと Lambda SnapStartって何ができるのか

Slide 4

Slide 4 text

アジェンダ • Lambda SnapStartって何? • 何ができるの? • 検証してみた • 結果 • できないこと、できない環境/サービス • 注意点 • まとめ

Slide 5

Slide 5 text

Lambda SnapStartって何? • re:Invent2022で発表された新機能 私が撮ったのはブレブレ…

Slide 6

Slide 6 text

Lambda SnapStartって何? ライフサイクルの初期化部分を省略できる! 起動パフォーマンスを最大 10 倍向上! しかも追加課金なし!

Slide 7

Slide 7 text

何ができるの? ~Lambdaのライフサイクル~ init Invoke shutdown ・実行環境の作成 →コールドスタート ・フリーズ解除 →ウォームスタート ・拡張機能とランタイムを初期化 ・関数の初期化コード を実行 ・関数の実行 ・呼び出しを想定した 実行環境のフリーズ ・実行環境の削除

Slide 8

Slide 8 text

何ができるの? ~Lambda SnapStartのライフサイクル~ 事前にinitし、 SnapShot作成 Invoke Shutdown Restore 初回のみ ・SnapShotから環境の復元 ・関数の実行 ・呼び出しを想定した 実行環境のフリーズ ・実行環境の削除

Slide 9

Slide 9 text

検証してみた 関数:AWS Labsリポジトリ Spring Boot 2のサンプル 内容:SnapStartの設定有無でinitの時間が変化するか 方法:Lambdaへ100並列、100回のリクエストを送る

Slide 10

Slide 10 text

検証してみた ~結果~ SnapStart未適用 SnapStart適用 約100msの短縮!

Slide 11

Slide 11 text

できないこと、できない環境/サービス • プロビジョニングされた同時実行 • arm64 アーキテクチャ • Lambda 拡張機能 API • Amazon Elastic File System (Amazon EFS) • 512MBを超えるエフェメラル(一時)ストレージ • Java 11以外のランタイム

Slide 12

Slide 12 text

注意点 • スナップショットは以下の場合削除される。 • 関数または関数バージョンを削除したとき。 • 14日間の関数バージョンの呼び出しがないとき。 (14日後に呼び出された場合その時点で再作成される。)

Slide 13

Slide 13 text

まとめ initフェーズが短縮できることで Lambda関数が早く実行できる!