

# AWS Lambda MicroVMs
<a name="lambda-microvms-guide"></a>

複数のユーザーまたは AI エージェントがコンピューティング環境に接続してコードを実行するアプリケーション (例: インタラクティブ開発環境、CI/CD システム、AI 用サンドボックス) を構築する場合、高速に起動し、テナント間で分離され、サーバーやネットワークを管理する必要がないコンピューティング環境が必要です。

AWS Lambda MicroVMs は、このようなユースケースを目的に構築されています。これらは、完全なオペレーティングシステム機能 (システムパッケージのインストールやファイルシステムのマウントなど)、スナップショットベースの高速起動、イングレスネットワークの詳細な制御 (ポートアクセス、HTTP/2、gRPC、WebSockets のサポート)、およびエグレスネットワーク (パブリックインターネットアクセスと VPC アクセス) を備えた VM レベルの分離を提供するサーバーレスコンピューティング環境です。

インタラクティブな開発環境や AI サンドボックスなどのインタラクティブユースケースでは、エンドユーザーのコンテキストが他のタスクに切り替えられたときや AI を待っているときに、環境が長時間アイドル状態になることがあります。MicroVM はアイドル時に一時停止できるので、メモリとディスクの状態を維持しながらコストを削減できます。トラフィックが到着すると再開されます。自動またはプログラムによる一時停止/再開を有効にしてアイドルコストを削減しながら、エンドユーザーが戻ったときにほぼ即時の準備状態を維持できます。

AWS Lambda MicroVMs は、これらのコア機能を Firecracker 仮想化を介して提供するので、Lambda Functions の毎月 15 兆回以上の呼び出しが強化されます。

開始するには、[最初の MicroVM を作成する](microvms-getting-started.md) を参照してください。料金に関する情報については、[[AWS Lambda の料金](https://aws.amazon.com/lambda/pricing/)]を参照してください。セキュリティと権限については、「[セキュリティおよびアクセス許可](microvms-security.md)」を参照してください。オブザーバビリティについては、「[モニタリング](microvms-monitoring.md)」を参照してください。運用上のガイダンスについては、「[Lambda MicroVMs のベストプラクティス](microvms-best-practices.md)」を参照してください。

## Lambda MicroVMs の仕組み
<a name="microvms-how-it-works-overview"></a>

1. アプリケーションコードと `Dockerfile` を zip アーカイブにパッケージ化して Amazon S3 にアップロードします。

1. Lambda API を呼び出して MicroVM イメージを作成します。Lambda は、`Dockerfile` を実行し、アプリケーションの起動と完全に初期化された環境のスナップショットのキャプチャを行います。

1. アプリケーションがユーザーセッション、ジョブ、またはサンドボックス用に分離された環境を必要とする場合は、`run-microvm` を呼び出します。Lambda は、スナップショットから MicroVM を迅速に起動します。

1. クライアントは、専用の HTTPS エンドポイントを介して実行中の MicroVM に接続します。ロードバランサーや入力インフラストラクチャは必要ありません。

1. アイドル状態の MicroVM は一時停止できるので、メモリとディスクの状態を維持しながらコストを削減できます。トラフィックが戻るとメモリとディスクの状態がそのまま再開されます。一時停止/再開動作は、ライフサイクルポリシーを介して自動的に設定するか、`suspend-microvm` と `resume-microvm` への API 呼び出しを介して直接トリガーすることもできます。

1. セッションが終了したら、MicroVM を終了してすべてのリソースを解放します。

## Lambda MicroVMs を使用するユースケース
<a name="microvms-when-to-use"></a>

Lambda MicroVMs は、ユーザーが記述したコードまたは AI が生成したコードを実行し、強力な分離、迅速な起動と再開のレイテンシー、環境のライフサイクルと状態保持に対する開発者の制御を提供する実行環境を必要とするユースケースに適しています。一般的なユースケースを以下に示します。
+ **インタラクティブコード環境** – ユーザーがリアルタイムでコードを記述して実行する開発環境。
+ **AI コード実行サンドボックス** – AI が生成したコードを安全に実行するためのエフェメラルサンドボックス。
+ **データ分析アプリケーション** – ユーザー提供のスクリプトを実行する Jupyter Notebook とエフェメラルデータ処理ワークロード。
+ **セキュリティスキャン** – 分離された実行環境を必要とする脆弱性評価ツール。
+ **強化学習環境** – AI エージェントの評価とトレーニング用に分離され、実行ごとに新しい環境がスピンアップされたサンドボックス。
+ **マルチテナント CI/CD** – テナント間の分離を必要とするタスクエグゼキュター。
+ **ゲームサーバー** – ユーザー提供のスクリプトを強力な分離で実行するホスティング環境。

## 主な特徴
<a name="microvms-key-features"></a>
+ **高速起動** – MicroVM は事前に初期化されたスナップショットから再開し、アプリケーションの初期化をスキップします。「[MicroVM イメージ](microvms-images.md)」を参照してください。
+ **ライフサイクル制御** – 設定可能なアイドルポリシーを使用して、プログラミングを介して、自動的に MicroVM を一時停止、再開、終了します。「[MicroVM の実行](microvms-launching.md)」を参照してください。
+ **柔軟なネットワーキング** – MicroVM はサービス提供の JWE 認証を使用して、設定可能なポートでのインバウンド HTTPS トラフィックをサポートします。アウトバウンドアクセスは設定可能です。パブリックインターネットまたは VPC にアクセスします。詳細については、「[ネットワーク](microvms-networking.md)」の章を参照してください。
+ **柔軟なリソース割り当て** – ベースラインまたは平均使用量に合わせて各 MicroVM をプロビジョニングすると、ピークアクティビティ中に設定されたベースラインの 4 倍まで垂直方向にスケールする柔軟性が提供されます。MicroVM の実行中はベースラインレートの請求が発生します。ベースラインを超えた場合、アクティブな使用に対してのみ請求が発生します。