Wasmer、サーバレスプラットフォーム「Wasmer Edge」のコールドスタート高速化機能を発表:アプリケーションのスナップショットを作成し、高速起動に利用
Wasmerは、Wasmer EdgeのInstaboot機能(β版)を発表した。サーバレスのクラウドプラットフォームで大きな問題となる場合があるコールドスタート時間を大幅に短縮する機能だ。
WebAssembly(Wasm)ランタイムを開発するWasmerは2024年6月21日(米国時間)、同社のサーバレスアプリケーションプラットフォーム「Wasmer Edge」の「Instaboot」機能(β版)を発表した。サーバレスのクラウドプラットフォームで大きな問題となる場合があるコールドスタート時間を大幅に短縮し、大規模アプリケーションの保守と運用コストを大幅に簡素化する機能だ。
コールドスタートは、コンピュータの電源遮断後、ハードウェアが初期化された状態から起動することを指す。
InstaBootは、完全に初期化され、リクエストに対応できる状態にあるアプリケーションのスナップショットを作成することで、高速起動を可能にする。
コールドスタート高速化機能「InstaBoot」とは
スナップショットは、新しいアプリケーションインスタンスを起動し、一連のウォームアップリクエストでインスタンスをウォームアップすることで作成される。このウォームアップリクエストは、アプリケーション構成で指定する必要がある。
スナップショットが作成されると、Wasmer Edgeはスナップショットを使用して、ほとんど即座にアプリケーションを起動できるという。
InstaBootによる高速化
Wasmerによると、コールドスタートによってWasmer EdgeでフルサイズのPHPサイトをロードして「WordPress」のリクエストを処理するのにかかる時間を、InstaBootの使用前と使用後で比較したところ、InstaBootによって処理時間が178分の1に(2320ミリ秒から13ミリ秒に)短縮された。
また、Wasmer EdgeでInstaBootを使用することで、WordPressのコールドスタート時間が主要クラウドプラットフォームと比べて大幅に短縮され、「Microsoft Azure」使用時との比較では209分の1となった。
InstaBootのユースケース
InstaBootの効果は、アプリケーションのプログラミング言語と、アプリケーションに高コストな起動ロジックがあるかどうかに左右される。
例えば、ソケットを開くだけで、他の起動ロジックがない基本的なRust Webサーバの場合、InstaBootは目立った違いをもたらさない。
これに対し、PHPやPythonのように、実行時にコードをロードして準備する必要がある言語では、大きな影響を与える可能性がある。
また、データベースから変換データを読み込んだり、キャッシュに入力したりといった高コストな起動コードがあるかもしれない。InstaBootはこうした場合にも役立つ。
InstaBootは一般的に、ほとんどのインタープリタ型言語(PHP、Python、JavaScriptなど)や、高コストな状態のプリフェッチを行う必要があるアプリケーションにとって有益だろうと、Wasmerは説明している。
InstaBootの仕組み
Instabootは、最近リリースされたWasmerランタイムのジャーナリング機能を使い、ウォームアップフェーズ中のOSシステムコール、スレッドスタック、メモリ変化を記録し、ディスクに保存する。後で同じインスタンスが再度クエリされた場合、この起動フェーズをスキップして、ジャーナルが再生される。
これらの処理は以下のステップに分解される。
- Wasmer Edgeがリクエストを受け取ると、そのアプリケーションで利用可能なスナップショットがあるかどうかをチェックする
- スナップショットがない場合、アプリケーションの新しいインスタンスが開始され、初期化リクエストがインスタンスに送信される
- ウォームアップリクエストが成功すると、アプリケーションのスナップショットが作成される
- スナップショットはキャッシュに保存され、Wasmer Edgeクラスタ全体に分散させることができる
- 以降のリクエストでは、このスナップショットを使用して、アプリケーションをウォームアップリクエスト成功後の状態に復元する
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- WebAssemblyランタイム「Wasmer」がPHPに対応 Wasmerで「WordPressを3倍高速に動かす」手法とは
Wasmerは、同社のWebAssemblyランタイム「Wasmer」とサーバレスアプリケーションプラットフォーム「Wasmer Edge」で、PHPを完全に実行できるようになったと発表した。 - Wasmerが「py2wasm」を発表、PythonからWebAssemblyに変換 インタープリタより3倍高速実行可能に
WebAssembly(Wasm)ランタイムを開発するWasmerは、PythonプログラムをWebAssemblyに変換し、ベースラインインタープリタよりも3倍高速に実行できるようにする「py2wasm」を発表した。 - JavaScriptランタイム「WinterJS 1.0」リリース、WasmerがRustで開発
Wasmerは、Rustで書かれた高速JavaScriptランタイムの正式版「WinterJS 1.0」を発表した。