サーバレスインフラの“トリレンマ”を解消? Microsoftの次世代軽量VM技術とは:数十ミリ秒の高速起動、安全な隔離、互換性の3つを満たす「分割OS」設計の仕組み
Microsoftはオープンソースプロジェクトである「Hyperlight」と「Nanvix」を統合した次世代軽量VM技術の取り組みを公式ブログで解説した。数十ミリ秒の高速起動と安全な隔離を両立する環境にPOSIX互換性を追加し、既存アプリを改修なしで実行可能にするという。
Microsoftは2026年1月28日(米国時間)、オープンソースプロジェクトである軽量VMM(仮想マシンモニター)「Hyperlight」とマイクロカーネル「Nanvix」を組み合わせ、クラウドにおけるサーバレスインフラの「トリレンマ」を解消するための取り組みについて公式ブログで解説した。
クラウドアーキテクトは長年、サーバレスインフラの構築において、根本的なトレードオフに直面してきた。それは「高速なコールドスタート」「安全な隔離」「ランタイムの互換性」という3つの要素のうち、同時に満たせるのは2つだけであり、全てを満たすことはできないという課題だ。
高速なコールドスタート
コンテナやWebAssemblyサンドボックスは、セキュリティ隔離よりも起動速度を優先している。ただし、ハードウェアレベルの境界ではなく、ソフトウェアによる論理的な保護境界に依存する。ソフトウェアによる保護境界は、カーネルやランタイムに脆弱(ぜいじゃく)性があると、隔離領域を突破されるリスクがある。これに対し、ハードウェア境界は不変(イミュータブル)であり、プロセッサレベルで厳格にセキュリティが確保される。
安全な隔離
従来の仮想マシン(VM)はハイパーバイザーによる隔離を提供する。ただし、OS全体の起動が必要なため、コールドスタートには数百ミリ秒を要する。
ランタイムの互換性
既存のアプリケーションを実行するには、通常、システムコールやファイルシステム、標準ライブラリを利用できる完全なPOSIX(Portable Operating System Interface for UNIX)環境が必要だ。だが、軽量のベアメタルマイクロVMは、POSIX環境を提供しない。
トリレンマを解消するHyperlightとNanvix
CNCF(Cloud Native Computing Foundation)のプロジェクトとして開発されているHyperlightは、OSを完全に排除することで、ハードウェア隔離と極めて高速なコールドスタートを実現し、より高速で安全かつ軽量のワークロード実行環境をクラウドネイティブエコシステムに提供する。だが、Hyperlightのゲスト環境ではシステムコールを利用できないため、アプリケーションは、そのベアメタル環境専用に記述する必要がある。つまり、Hyperlightはランタイムの互換性に課題があった。
この課題を解消するためのアプローチが、HyperlightとNanvixの統合だ。Microsoft Researchが開発したRustベースのマイクロカーネルであるNanvixは、Hyperlightと連携して動作するように設計されており、以下の特徴を持つ。
- マイクロカーネル設計:サーバレス関数に必要な最小限のカーネルサービスのみを実装。それ以外はユーザー空間で実行されるか、ホストが処理する
- POSIX互換性:150以上のPOSIXシステムコールを提供し、Python、JavaScript、WASI、C/C++、Rustなどのアプリケーションをコード変更なしでサポートする
- クラウド最適化サービス:長期間稼働するプロセスではなく、一時的なサーバレスワークロードに特化してOSサービスが調整されている
- メモリ安全性:Rust言語で記述されている
HyperlightとNanvixの統合により、ハイパーバイザーレベルの隔離を維持し、数十ミリ秒でのコールドスタートを実現しながら、HyperlightマイクロVM内でファイルシステム、システムコール、言語ランタイムを用いて既存のアプリケーションを実行できるようになるという。
HyperlightとNanvixによる分割OS設計
HyperlightとNanvixは、役割を分担してトリレンマに対処する。Hyperlightは信頼されたホストの代理として、ゲストVMができることを全て制御し、ハードウェアによる隔離を提供する。Nanvixの最適化されたマイクロカーネルは、Hyperlightゲスト内で動作し、アプリケーションが期待するPOSIXシステムコールとファイルシステムインタフェースを提供する。
HyperlightとNanvixの統合における核心は、「分割OS設計」(split OS design)にある。これは、VM内でモノリシックなOSを実行するのではなく、コンポーネントを以下の2つのグループに分け、それぞれに役割(責任)を分割する。
エフェメラル(一時的)コンポーネント(Hyperlight VM内で実行される)
ハードウェアによる隔離を必要とするアプリケーションコード、ランタイム、POSIX互換レイヤー、Nanvixカーネル。信頼できないコードやテナント固有のコードを実行するものは、全てHyperlight VM内で動作する。
パーシステント(永続的)コンポーネント(ホスト上)
ホストシステムで管理されるI/O(Input/Output)、ネットワーク、共有状態。Hyperlightがゲストとこれらのサービスの間のやりとりを仲介する。
この分割アーキテクチャにより、アプリケーションからは一般的なPOSIX環境が見える一方で、I/O操作はホストが処理し、高密度、高速コールドスタート、呼び出し間での必要に応じた状態共有が実現される。
システムコールの介在:システムコール境界におけるセキュリティ
HyperlightとNanvixの統合による強力な機能の一つとして、システムコール介入がある。ゲストアプリケーションがシステムコール(ファイルを開くopenatのような)を発行すると、そのリクエストはNanvixを経由し、Hyperlightのメカニズムを介してVMの境界を越え、ホストに送られる。ホストはこの境界で以下のように制御できる。
- 許可:システムコールの実行を許可する
- 傍受:システムコールの引数や戻り値を変換する
- ブロック:セキュリティポリシーに基づき、特定のシステムコールを拒否する
これにより、ゲストアプリケーションに変更を加えることなく、例えば、「ファイルの読み取りは許可するが、ネットワークアクセスはブロックする」といった詳細な制御がシステムコールレベルで可能になる。
HyperlightとNanvixの統合は、脅威モデルに応じて以下の3つのデプロイ(展開)アーキテクチャをサポートしている。
シングルプロセスアーキテクチャ
VMMとI/Oサブシステムを単一のホストプロセスで実行する。高速かつシンプルであり、信頼できない小規模なワークロードをハードウェアで隔離して実行するのに適している。
ホストOSで動作するI/OスレッドとVMMスレッド(単一ホストプロセスを形成)が、Hyperlight VM(アプリケーションとNanvixカーネルを含む)と共に、ハイパーバイザーレイヤー上で動作する(提供:Microsoft)
マルチプロセスアーキテクチャ
VMMとI/O処理を別々のプロセスに分離する。脆弱性の悪用によって攻撃者がVMの境界を越えても、I/Oリソースへの直接アクセスを防ぎ、被害範囲を限定する。同一テナントの複数同時インスタンス間でシステムI/Oプロセスを共有することもできる。
ホストOS上で動作するシステムI/OプロセスとHyperlight VMMプロセスおよびHyperlight VM(アプリケーションとNanvixカーネルを含む)が、全てハイパーバイザーレイヤー上で動作する(提供:Microsoft)
ディスアグリゲーテッド(分離型)アーキテクチャ
ホストハイパーバイザー上で2つの独立したVMを実行する(「Hyper-V」または「KVM」〈Kernel-based Virtual Machine〉を使用)。システムVMは全てのI/Oシステムコールを処理し、複数のHyperlight VMの共有バックエンドとして機能する。Hyperlight VMはI/Oリクエストをハイパーバイザー境界を越えてシステムVMに転送し、複数のハイパーバイザー境界による多層防御を実現する。
システムVMMプロセスとHyperlight VMMプロセスがホストOS上で動作し、2つの独立したVMがハイパーバイザーレイヤー上で動作。左がI/O操作を処理するシステムVM、右がHyperlight VM(アプリケーションとNanvixカーネルを含む)(提供:Microsoft)
パフォーマンス:実アプリケーションでの高速コールドスタート
実アプリケーションを使って、HyperlightとNanvixの組み合わせを他の隔離技術と比較する初期ベンチマークテストを実施したところ、有望な結果が得られたという。
- Nanvixカーネルの起動、言語ランタイムのロード、アプリケーションコードの実行を含めて、数十ミリ秒でのコールドスタートを実現
- 同じデプロイモデルで従来のVMソリューションよりも大幅に高速
- メモリ効率が高く、1GiB当たり数百インスタンスを実行可能
- セキュリティを犠牲にすることなく、リクエストごとにVM隔離を適用できるほど高速
言語サポート
HyperlightとNanvixの統合によってPOSIX互換レイヤーが提供される。これにより、あらゆる言語のアプリケーションを実行できる。
- C/C++:Nanvixツールチェーンに対して直接コンパイルして実行
- JavaScript:QuickJSなどの組み込みJavaScriptエンジンを用いて実行
- Python:組み込みPythonインタープリタを用いて実行
- Rust:Hyperlightゲストライブラリがネイティブサポート
ユースケース:AI生成コードの安全な実行
AI(人工知能)コーディングの普及が進む中、インフラを危険にさらすことなく、AI生成コードを実行できる安全な環境が必要となっている。AIが生成したコードは信頼できないコードとして扱うべきだが、HyperlightとNanvixを利用することで、以下が可能になる。
- 隔離されたマイクロVMを数十ミリ秒で起動
- 強力な言語サポートの下でAI生成コードを実行
- システムコール介入により、セキュリティポリシーを強制
- 実行後にVMを破棄し、永続的状態を残さない
AI生成コードに、言語ランタイムを標的とした攻撃コードが含まれていても、攻撃者は、ハードウェアによる隔離の壁に阻まれることになるとしている。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
AWS Lambdaでチェックポイントや最長1年間無料で待機できる機能、EC2インスタンスを選んだ関数実行も
AWSは「AWS re:Invent 2025」で、「AWS Lambda」に関し、ワークフローの状態管理機能と、EC2インスタンスを選ぶことのできる機能を発表した。どちらもAIエージェントのオーケストレーションなど、安定的なワークフローを高い信頼性の下でコスト効率よく実行するユースケースに適しているという。
世界で急成長して市場規模190億ドルの「サーバレス」、その位置付けはどう変わったのか? Omdia調査レポート
Omdiaはサーバレスコンピューティング市場の調査レポートを発表した。これによると、サーバレスコンピューティングの市場規模は190億ドルに達しているという。
マイクロサービスをサーバレスで構築するのが適しているケースとは?
マイクロサービスをコンテナとサーバレスのどちらで運用するかはどのように決めればよいのか。その決定を大きく左右するのは、そのマイクロサービスで何を実行するかだ。
