メインコンテンツまでスキップ

Lambda SnapStartに関するちょっとしたメモ(2022/12)

· 約3分
moritalous

re:Invent 2022の期間中にLambdaのコールドスタート問題を解消する大きなアップデートが発表されました。

New – Lambda SnapStart で Lambda 関数を高速化

過去に検証した内容のように、特にJavaの場合のコールドスタートに時間がかかる問題があり、この解消に有効とのことです。

追加費用もなく利用できるとのことなので、常に有効化でよいのではないかと考えていたのですが、いくつか制限がありそうです。

対象はJava 11のみ

SnapStartの設定は、基本設定のセクションにありますが、ここの注意書きに サポートされているランタイムは Java 11 (Corretto) です。 とありますので、他の言語やバージョン11以外のJavaの場合も有効化できません。

image.png

2022年12月現在、LambdaではJava 8、Java 8(Amazon Linux 2)、Java 11がサポートされていますが、この内Java 11の場合のみSnapStartを有効化できるようです。

そのため、 Pythonの機械学習ライブラリーと組み合わせたコンテナLambdaなども対象外です。残念。

SnapStartと同時に使えない機能がある

上の画像のSnapStart の互換性に関する考慮事項のリンク先を確認したところ他にも制約事項がありました。

  • プロビジョニング済み同時実行
  • arm64アーキテクチャ
  • Lambda Extensions API
  • Amazon Elastic File System (Amazon EFS)
  • AWS X-Ray
  • 512MB以上のエフェメラルストレージ

結構いろいろ制限がある印象ですね。

感想

Lambdaを新規作成する際は、コールドスタートの問題があるのでJava以外の言語を採用するケースが多かったので、とても嬉しいアップデートではありますが、実際はあまり出番がないかもしれません。arm64やEFS、X-Rayなど使えるほうが嬉しいことが多い気がします。