MicroVM徹底ガイド:フル制御可能な軽量サンドボックス環境を構築しよう
MicroVMs: Run isolated sandboxes with full lifecycle control
MicroVMs: Run isolated sandboxes with full lifecycle control
MicroVMを使えば、オーバーヘッドを最小限に抑えつつ、ライフサイクルを完全に制御できる独立したサンドボックス環境を構築可能です。コンテナよりも強力な隔離性能と、従来のVMよりも軽量な起動速度を両立させたいエンジニアにとって、最強の選択肢となります。
先週の記事:Proxmox上のMicroVMについて
AWSがエージェント用サンドボックスに参入してもいい頃合いだね。
今この分野にいるスタートアップ企業は、ラップしているクラウドプロバイダー以上の価値をほとんど提供できていない。インフラ経験のある人たちが運営しているわけでもなさそうで、感覚頼みというか、セキュリティも甘いし、作りが雑な感じがするんだよね。それに、元々高いプロバイダーの料金に上乗せしてるから割高すぎる。
自分の経験から言うと、クラウドサンドボックスにおける非同期エージェントの役割は確かに大きいけど、ローカルで動く非同期エージェントの方が、多くの場合で役立つのは意外な点だよ。
Firecrackerをセルフホストするのに最適なプロバイダーはどこかな?AWSは、資金調達したばかりのスタートアップや小規模ビジネスにとって安全ともコスト効率がいいとも思えない。まあ、最近何でもコスト効率が良いなんて言える状況か怪しいけどね。Hetznerだって大幅な値上げをしたばかりだし。
自分が歳をとって、インフレに価格感覚が追いついていないだけかもしれないけど。
とにかくAWSはお断りだ。もし誰かが自分のAIエージェントホスティングサービスを使って、計算量やネットワーク負荷の高い処理を始めたと想像してみてよ。一晩で2000ドルの請求が来て、AWSの無数にある料金項目の一つでも計算に入れていなかったら、クレジット購入分として集めた500ドルじゃ足りないかもしれない。
10倍になる可能性だって十分ある。まあ、冗談はさておき、誰も俺のエージェントなんて使わないだろうから、gvisorだろうがFirecrackerだろうが何でもいいんだけどね。
サンドボックスのプロバイダーは本当に山ほどあるよね。
それぞれ強みがあって、例えばこんな特徴がある:
ローカル環境でサンドボックスを動かすならlibkrunを使う手もある。ホスト型サービスの代わりにはならないけど、自分自身の作業用に隔離された環境でエージェントを動かすのが目的ならこれで十分だよ。
自分はサンドボックスを統合管理するためのオープンコアなツール[1]を作っているところだ。Docker CLIがコンテナやgitリポジトリ、コーディングエージェントを管理するのと同じような感覚で、どんなプロバイダーを使ってもリモートやローカルのサンドボックスを自在に扱えるライブラリを目指している。Flue[2]もこの分野のプレイヤーだけど、あちらは純粋なフレームワーク寄り。うちはサンドボックス化されたエージェントやワークフローをインタラクティブに使う製品として構築しているんだ。
[1] https://github.com/gofixpoint/amika/blob/main/ROADMAP.md
うちでいろんなサンドボックスプロバイダーをカテゴリー別に比較したページを公開してるよ。
https://engine.build/lab/agent-sandboxes
今日MicroVMも追加しておくつもり。他にも漏れているのがあれば教えて!
エージェントを動かしたい層からすると、典型的な「サンドボックス」の寿命の短さはかなり制限に感じる。正直、今のところこれらの製品を必要とするワークフローがないんだよね。VMは30分で消えることもあれば、1ヶ月続くこともあるわけで、事前にそれを予測するのは難しい。
だから、exe.devでは「サンドボックス」という言葉をあえて避けてきた。開発者のエージェントが、「サンドボックス」的な形状のものが必要だとは思えないんだ。
自分にとって理想のMicroVMは、コンテナのようにVM間でGPUを適切に共有できるものだね。
virtio-gpu/Venus経由でVulkanをサポートしているhttps://smolmachines.com/ には敬意を表するよ。今のところこれが最強の実装だと思う。ただ、自分のユースケースはVM内でフルデスクトップを動かして、Sunshine/Moonlightみたいなツールでストリーミングすることなんだ。これにはGPUレンダリングと動画エンコードが必要になる。Venusのレンダリングは動くけど、フレームをホストとゲスト間で何度もやり取りしなきゃいけないから非効率なんだよね。それに、確認した限りVenusは動画エンコードをサポートしていないし。
面白い代替案として https://shellbox.dev があるよ。SSH経由でLinux VMを管理できて、使った分だけ払う方式。ずっと安上がりだしサブスクも不要。ネストされた仮想化、Docker、カスタムイメージ、ボックスの複製もサポートしてる。IPv6も付いてくるし、切断時の自動停止(オプション)、Webエンドポイント呼び出しでのウェイクアップ、メールエンドポイント、公開IPv6など機能も豊富。使っていないボックスは月額0.5ドル。最大16vCPU、32GB RAM、400GB HDDまでの小〜大規模なボックスを作成できるよ。
結局これらは、RL(強化学習)環境やトレーニング専用なんじゃないかな。それ以外でLLMによるコード生成や実行を繰り返すようなことって、いつやってるんだ?オンラインアプリケーションはあるかもしれないけど、ModalやDaytonaあたりが既にそれを実現していて、前述の用途に特化した豊富な機能セットを提供しているしね。AWSが参入するなら、それらを丸ごと買収しちゃうんじゃないかと思ってしまう。
これとAWS Firecrackerは何が違うの?