BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース AWS、より高速で効率的なサーバーレスアプリのための低レイテンシーランタイムを実験的に導入

AWS、より高速で効率的なサーバーレスアプリのための低レイテンシーランタイムを実験的に導入

原文リンク(2024-02-20)

AWSは最近、LLRT(Low Latency Runtime)と呼ばれるJavaScriptランタイムをオープンソース化した。LLRTは、高速で効率的なサーバレスアプリケーションに対する需要の高まりに対応するために設計された実験的な軽量JavaScriptランタイムである。

同社はGitHubで、LLRTはAWS Lambda上で動作する他のJavaScriptランタイムと比較して、起動が最大10倍以上速く、コストが最大2倍低いと主張している。JavaScriptエンジンとしてQuickJSを利用し、Rustで構築されており、効率的なメモリ使用と迅速な起動を保証する。さらに、このランタイムはLambdaとAWS SDK(v3)と統合されている。

LLRTは、Node.jsBunDenoのような汎用アプリケーション向けに設計された既存の選択肢では十分に満たされない、サーバーレス環境に特有の要求に焦点を当てたもう1つのJavaScriptランタイムだ。これらのランタイムとは異なり、LLRTにはJIT(Just-In-Time)コンパイラが含まれておらず、CPUとメモリリソースを節約しながらシステムの複雑さとランタイムサイズを削減し、アプリケーションの起動時間の短縮につながっている。

Redditのスレッドで、ある回答者はこう説明している。

高速化のほとんどは、ある制限から来るものだ。LLRTでは、コードと依存関係を1つの.jsファイルにバンドルする必要があるため、Nodeのモジュール解決フェーズで発生するファイルシステムのルックアップがすべて不要になる。 また、AWS SDKのビットをプリパッケージ、プリコンパイル(バイトコード化)、プリロードしており、NodeやBunのような汎用のランタイムがAWS SDKライブラリをJSファイルとしてロードし、アプリケーションの起動時にそれらを解釈しなければならないのと比較している。パフォーマンスの99%の利点はここから生まれるに違いない。

LLRTが最も効率的なのは、データ変換、リアルタイム処理、AWSサービス統合、認証・検証タスクに焦点を当てた、小規模なサーバーレス機能で利用する場合だ。

Hacker Newsスレッドの回答者はこうコメントしている。

これは、リクエストのルーティングや認可ポリシーの決定など、Lambdaをグルーとして使う場所には理想的だと思う。しかし、多くのことを考えるアプリケーションの場合、v8のjitlessはQuickJSの約3倍速く、JITを使えばquickjsの約30倍速くなることを覚えておいてほしい。様々なワークロードでこの2つを比較した場合、損益分岐点はどこになるのか、また、Nodeよりも起動が速いが、トップエンドのJIT性能は同等であるBunとの比較も気になるところだ。

しかし、プログラマーでソフトウェアアーキテクトのZemnytskyi Dmytro氏はこうツイートしている。

これはLambda開発をさらに複雑にするでしょう。互換性のない依存関係やツール、ベンダーロックインがさらに増えます。私は懐疑的です。それならLambda全体をRustで書いた方が良いです。

そして最後に、LLRTに関するAWS Bitesエピソードの結論だ。

全体として、LLRTは有望だが、本番環境での使用を推奨する前に、さらなる安定性、サポート、実環境でのテストが必要である。

作者について

この記事に星をつける

おすすめ度
スタイル

BT