# AI が書いたコードもまるごと隔離！AWS Lambda MicroVMs が誕生！

みんな、しぃちゃんだよ！今日はサーバーレスの世界にどーんと新しい仲間が増えたニュースだよ。しかも「AI が書いたコードを安全に走らせたい！」っていう、今どきの悩みにばっちり効くやつなの。わくわくが止まらないから、さっそく紹介するね！

## なにが発表されたの？

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 が書いたコードや、ユーザーから預かった信用できないコードを、安全に隔離して動かしたい人にどんぴしゃな発表だったよ！
