TOP
会員限定
イベント・記事を探す
トピックスを探す
ナレッジを得る
セゾン情報を知る
メンバーを知る
color isとは
TOP
会員限定
イベント・記事を探す
トピックスを探す
ナレッジを得る
セゾン情報を知る
メンバーを知る
TOP
ナレッジを得る
【re:Invent2022】Lambda SnapStartの有効化方法(コンソール)
AWS
lambda
lambda_Snap_Start
reinvent2022
2023年1月18日 更新
【re:Invent2022】Lambda SnapStartの有効化方法(コンソール)
はじめに
re:Invent2022で発表された「Lambda Snap Start」ですが、さっそくどのように有効化したらよいか確認してみたので、記事にしました!
もうすでに、AWSのサイトに今回の記事の内容は書いてありますので、それを試してみた。といったような内容です。
Lambda SnapStartとは
簡単に言うと、通常のcold startに比べ高速に起動できるサービスです。Lambdaのライフサイクルは、init/Invoke/Shutdownの3ステップあります。このうちinit部分を高速化するサービスです。
過去にLTをした時の資料があるので、こちらで説明します。
通常init部分は数ミリ秒しかかからないものの、ランタイムやフレームワークの組み合わせによって10秒程度かかってしまう場合があります。このinit部分で行われる実行環境の作成などを事前にして、SnapShotを取得/キャッシュしておきます。Lambda関数が呼び出された場合に、実行環境などをイチから作るのではなく、SnapShotを呼び出してリストアすることで、init部分を高速化します。
前提条件
使用できるランタイムは「Java 11」のみ(2022/11/29現在)
できないこと、できない環境/サービス
・プロビジョニングされた同時実行
・arm64 アーキテクチャ
・Lambda 拡張機能 API
・Amazon Elastic File System (Amazon EFS)
・512MBを超えるエフェメラル(一時)ストレージ
注意点
スナップショットは以下の場合削除されます。
・関数または関数バージョンを削除したとき。
・14日間の関数バージョンの呼び出しがないとき。(14日後に呼び出された場合再作成される。)
有効化方法
まず、Lambdaを作りましょう。
使用できるランタイムは「Java 11」のみなので、コンソール上からは「Java 11(Corretto)」を選択します。また、アーキテクチャは「arm64」に対応していないため、「x86_64」を選択します。あとはデフォルトでOKです。
作成出来たら、「設定」タブへ移動し、「一般設定」を見てみましょう。
画像の青線部分、現在はSnapStartが設定されていない状態(None)となっています。有効化するために「編集」を押下します。
青線部分の「エフェメラルストレージ」の容量は「512MB」を超えるものは対応していないため、「512MB」以下で設定してください。赤線部分「SnapStart」がページ移動時は「None」となっていますので「PublishedVersions」に変更して、保存してください。
一般設定画面に戻り、「SnapStart」の項目が「PublishedVersions」になっていれば設定終了です。
参考文献
Improving startup performance with Lambda SnapStart - AWS Lambda
Activating and managing Lambda SnapStart - AWS Lambda
※掲載内容は個人の見解です。
※会社名、製品名、サービス名等は、各社の登録商標または商標です。
関連記事
AWS
EventBridge
Growi
Python
lambda
AWS サポートケースの履歴を自動で Wiki にナレッジ化する
2022.10.13 UP
AWS
AWSMGN
CoudEndure
移行
AWS Application Migration Serviceによるサーバー移行とCloudEndureとの比較
2022.05.24 UP
AWS
Docker
ECS
ECSAnywhere
SystemsManager
図でざっくり理解する Amazon ECS Anywhere
2022.04.22 UP