[速報]AWS Lambdaのコールドスタートを劇的に速くする「AWS Lambda SnapStart」発表。AWS re:Invent 2022
Amazon Web Services(AWS)の年次イベント「AWS re:Invent 2022」が米ラスベガスで開幕しました。
毎年恒例となった月曜日夜に行われるイベント最初の大型セッション「Monday Night Live」には、AWS Utility Computing担当SVP Peter DeSantis氏が登壇。
AWSのインフラに関わる最新情報の1つとして、AWS Lambdaのコールドスタートを劇的に速くする「AWS Lambda SnapStart」を発表しました。
Get out from the cold & warm up with faster startup times.#AWS Lambda SnapStart for Java delivers up to 10x faster startup performance without the added spend—so you can speed up cold starts while saving time & money. Work smarter, not harder.
— Amazon Web Services (@awscloud) November 29, 2022
https://t.co/Xg4SJ9ipWZ pic.twitter.com/GbA52qqbLK
AWS Lambda SnapStartは今日から追加費用なしで利用可能。
コールドスタートを劇的に速くする
AWS Lambdaはいわゆるサーバレスコンピューティングの基盤を提供するサービスです。
あらかじめAWS Lambdaに登録した関数が何らかのイベントをトリガーとして起動され、関数の終了とともにそのインスタンスも終了する、という仕組みを備えています。
AWS Lambdaでは、起動した関数の内容がキャッシュされている状態で再度関数を起動する場合などウォームスタートでは迅速に関数が実行されますが、まっさらの状態で関数が起動されるコールドスタートの場合には関数の起動時間がかかってしまうという課題がありました。
DeSantis氏はコールドスタートのプロセスの中でもっとも時間がかかっているのが初期化だと説明します。
「コールドスタートでは、マネージドランタイムとしてまず新しいMicroVMを起動する。すべての言語ランタイムがプリインストールされ初期化される。最適化されたFirecrackerではこれはすぐに終わる。
次に顧客の関数をランタイム環境で実行するための変換が行われる。これにかかる時間は言語や関数の大きさによるが、コールドスタート全体からすれば非常に小さな割合でしかない。
関数がロードされると初期化(Initialization)が行われる。これは実行する言語によって行われる非常に時間のかかる処理だ。Javaを例に挙げると3つの大きなパートに分かれる。JavaVMを起動し、クラスのコードをロードして圧縮を解き、初期化コードを実行する。これが時間のかかる処理の典型例だ」(DeSantis氏)
しかし興味深いことに、この初期化が終わると同じ状態に落ち着くとDeSantis氏は指摘。「この初期化が終わった状態のスナップショットをとるとどうなるか、考えてみよう」(DeSantis氏)
「初期化のプロセス全体を省略することができるようになるではないか」(DeSantis氏)
DeSantis氏はこれによってコールドスタートが劇的に速くなると説明。これを利用した「AWS Lambda SnapStart」を発表しました。
AWS Lambda SnapStartは、コールドスタートにかかる時間を最大90%削減するとのことです。
AWSはスナップショットをセーフにするために行ったランタイムやコモンライブラリなどへの変更を、各オープンソースコミュニティにコントリビュートしたことも合わせて発表しました。
AWS Lambda SnapStartを紹介したAWSのブログ 「New – Accelerate Your Lambda Functions with Lambda SnapStart」によると、JavaVMはAWSによるCorrettoを利用しているとのことです。AWS自身がJavaディストリビューションを提供していることが、ここで生かされたようですね。
We are launching with support for Java functions that make use of the Corretto (java11) runtime, and expect to see Lambda SnapStart put to use right away for applications that make use of Spring Boot, Quarkus, Micronaut, and other Java frameworks.
今回、Corretto(java11)ランタイムを利用するJava関数のサポートを開始します。これでSpring Boot、Quarkus、MicronautなどのJavaフレームワークを利用したアプリケーションで、すぐにLambda SnapStartが活用されることが期待されます。
AWS re:Invent 2022
Day1:Monday Night Live
- [速報]AWS Lambdaのコールドスタートを劇的に速くする「AWS Lambda SnapStart」発表。AWS re:Invent 2022
- [速報]AWS、クラウド基盤用のカスタムチップ「AWS Nitro v5」を発表。パケット処理能力など向上。AWS re:Invent 2022
Day2:Keynote by Adam Selipsky
- [速報]Amazon AuroraのOLTPとRedshiftのDWHを統合する「Amazon Aurora zero-ETL integration with Amazon Redshift」発表。AWS re:Invent 2022
- [速報]Amazon OpenSearch Serviceをサーバレス化する「Amazon OpenSearch Serverless」プレビュー版登場。AWS re:Invent 2022
- AWS、シムシティのように都市などの大規模3Dシミュレーション演算をクラウド上で可能にする「AWS SimSpace Weaver」発表。AWS re:Invent 2022
Day3:Keynote by Swami Sivasubramanian
Day4:Keynote by Dr. Werner Vogels
あわせて読みたい
[速報]AWS、クラウド基盤用のカスタムチップ「AWS Nitro v5」を発表。パケット処理能力など向上。AWS re:Invent 2022
≪前の記事
「Amazon RDS Blue/Green Deployments」登場。ステージング用データベースの構成、本番DBとの同期、安全な切り替えなど提供