AI が書いたコードもまるごと隔離!AWS Lambda MicroVMs が誕生!
みんな、しぃちゃんだよ!今日はサーバーレスの世界にどーんと新しい仲間が増えたニュースだよ。しかも「AI が書いたコードを安全に走らせたい!」っていう、今どきの悩みにばっちり効くやつなの。わくわくが止まらないから、さっそく紹介するね!
AWS Blog
なにが発表されたの?
AWS の Blog(発表告知系)から、AWS Lambda MicroVMs っていう新しいサーバーレスのコンピュート基盤が登場したよ!
これは、ユーザーが書いたコードや AI が生成したコードを、仮想マシンレベルで隔離された環境で実行できる仕組みなの。ひとつひとつの MicroVM はカーネルもリソースも他の人と共有しないから、得体の知れないコードでも安心して走らせられるんだって。
しかも中身は Firecracker っていう技術。これ、Lambda の月 15 兆回超えの呼び出しを支えてきた実績のあるやつなんだよ。すごくない?
なぜ重要なの?
これまでの Lambda は「イベントが来たらサッと動いてサッと終わる」リクエスト応答型がお得意だったよね。AWS も「そういうワークロードには今まで通り Lambda Functions がベストだよ」って言ってる。
でも最近は、AI コーディングアシスタントとか、ブラウザ上のコード実行環境みたいに、信用できないコードを、状態を保ったまま、隔離して動かしたいっていう新しいニーズが増えてきたの。こういうのを自前でやろうとすると、VM を立てて管理して…ってすごく大変だったんだよね。
MicroVMs は、そこを「インフラ管理なしのサーバーレス」で丸ごと引き受けてくれる新しい選択肢なんだよ。
これで何が変わるの?
いちばん嬉しいのは、隔離 と 状態保持 と 高速起動 が全部セットで手に入ること!こういう用途にぴったりなんだよ。
- AI コーディングアシスタントや対話型のコード実行環境
- データ分析プラットフォーム
- 脆弱性スキャナー
- ユーザー製スクリプトを動かすゲームサーバー
「ユーザーごとに隔離した環境がほしい」系のアプリを作る人には、めちゃくちゃ刺さると思うな。しかも MicroVM はメモリもディスクも動いてるプロセスも、セッションの間ずっと保ったままにできるから、「毎回まっさらから起動し直し」の無駄がないんだよ。
深く潜ってみよう
技術的なスペックもしっかり見ていくね!
1 つの MicroVM で使えるのは、最大 16 vCPU・メモリ 32 GB・ディスク 32 GB。アーキテクチャは ARM64 で、1 セッションあたり最大 8 時間まで動かせるよ。
面白いのが起動のしくみ。あらかじめアプリを初期化した状態の Firecracker スナップショット(ディスクとメモリの状態)を撮っておいて、そこから復元するから、起動も再開もすごく速いの。
アイドルまわりの制御もこまかくできるよ。たとえばこんな感じ。
maxIdleDurationSeconds: 無操作が何秒続いたら自動で一時停止するか(例では 900 秒 = 15 分)suspendedDurationSeconds: 一時停止状態をどれだけ保つかautoResumeEnabled: リクエストが来たら自動で再開するか
一時停止中もメモリとディスクの状態は保たれたままだから、次に来たリクエストでほぼ一瞬で復帰できるんだって。
使いはじめの流れはざっくり 3 ステップ。まず、Dockerfile とコード(S3 に置いた zip)から MicroVM イメージを作るよ。
aws lambda-microvms create-microvm-image \
--code-artifact uri=s3://my-bucket/artifact.zip \
--name my-sandbox-image \
--base-image-arn arn:aws:lambda:us-east-1:aws:microvm-image:al2023-1 \
--build-role-arn arn:aws:iam::123456789012:role/MicroVMBuildRole
Lambda が Dockerfile を実行してアプリを初期化し、スナップショットを撮ってくれる。ビルドログは CloudWatch の /aws/lambda/microvms/ 以下に流れて、完成すると ARN とバージョン番号がもらえるよ。
次に、そのイメージから MicroVM を起動するよ。
aws lambda-microvms run-microvm \
--image-identifier arn:aws:lambda:us-east-1:123456789012:microvm-image:my-sandbox-image \
--execution-role-arn arn:aws:iam::123456789012:role/MicroVMExecutionRole \
--idle-policy '{"maxIdleDurationSeconds":900,"suspendedDurationSeconds":300,"autoResumeEnabled":true}'
起動すると専用の HTTPS エンドポイントがもらえて、ネットワーク周りは全部おまかせ。あとは短命の認証トークンを発行して、リクエストの X-aws-proxy-auth ヘッダーに付けて呼び出すだけなの。
使えるリージョンは、US East(バージニア北部・オハイオ)、US West(オレゴン)、ヨーロッパ(アイルランド)、アジアパシフィック(東京)。東京リージョンが最初から入ってるのはうれしいね!料金は AWS Lambda の料金ページで確認してね。
まとめ
- AWS Lambda MicroVMs は、隔離された状態保持つきのサンドボックスをサーバーレスで動かせる新しいコンピュート基盤だよ
- Firecracker ベースで VM レベルの隔離。カーネルもリソースも他ユーザーと共有しない
- 最大 16 vCPU・32 GB メモリ・32 GB ディスク・ARM64、1 セッション最大 8 時間
- スナップショットで高速起動、アイドル時は自動で一時停止&状態保持、リクエストで自動再開
- イベント駆動のリクエスト応答は今まで通り Lambda Functions、隔離環境がほしいときは MicroVMs という使い分け
AI が書いたコードや、ユーザーから預かった信用できないコードを、安全に隔離して動かしたい人にどんぴしゃな発表だったよ!