AWS Lambdaのコールドスタートを劇的に速くする「AWS Lambda SnapStart」発表 AWS re:Invent 2022
「AWS Lambda」のコールドスタートを劇的に速くする「AWS Lambda SnapStart」が発表。コールドスタートにかかる時間を最大90%削減できるという。
この記事は新野淳一氏のブログ「Publickey」に掲載された「[速報]AWS Lambdaのコールドスタートを劇的に速くする「AWS Lambda SnapStart」発表。AWS re:Invent 2022」(2022年11月29日掲載)を、ITmedia NEWS編集部で一部編集し、転載したものです。
米Amazon Web Services(AWS)の年次イベント「AWS re:Invent 2022」が米ラスベガスで開幕しました。
毎年恒例となった月曜日夜に行われるイベント最初の大型セッション「Monday Night Live」には、Peter DeSantis氏(AWS Utility Computing担当SVP)が登壇。
AWSのインフラに関わる最新情報の1つとして、「AWS Lambda」のコールドスタートを劇的に速くする「AWS Lambda SnapStart」を発表しました。
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が「Docker Desktop」代替となり得る「Finch」をオープンソースで公開 ローカルマシンに仮想環境・ビルドツールなど一式を導入
米Amazon Web Servicesが、ローカルマシン上にLinuxコンテナのランタイム、ビルドツール、コマンドラインツールなど一式をインストールし、コンテナを用いた開発環境を開始できるソフトウェア「Finch」をオープンソースで公開。現時点ではIntelプロセッサもしくはAppleシリコン搭載のMacにのみ対応する。 - 「Docker」一部有料プラン値上げ、27日から 「Team」は100アカウントまでに制限
米Dockerは、コンテナ仮想化ソフトウェアの料金プラン「Docker Team」「Docker Business」を値上げすると発表した。年間契約でTeamは月額7ドル、Businessは24ドルに。 - 「すずめの戸締まり」制作でもAWSが活躍 レンダリングで活用 エンドロールにも……
11月11日に公開となった新海誠監督の映画最新作「すずめの戸締り」。制作に当たってはレンダリングなどの用途にクラウドサービス「Amazon Web Services」を活用したという。エンドロールにもロゴが……。 - 「正直バブリー」 地方の中小企業がAWS導入でビジネスチャンスを逃さなかった話
「注文数も客単価も増え、正直バブリー」──AWSを導入していたことで、突然のビジネスチャンスを逃さず済んだ地方中小。いきなりのチャンスをどうつかんだか、キーパーソンに聞く。 - 「職員室でしかPCが使えない」 “生徒1人にPC1台”の裏で、進まぬ教育現場のデジタル化 意識改革が必要なのは誰なのか
“生徒1人にPC1台”施策の裏で、まだ進まない教育現場のIT活用。実現に当たって意識改革が必要なのは教師か、教育委員会か、自治体か。問題の本質を教育現場や有識者への取材から探る。
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.