サンドボックスは専用の仮想マシンです。docker がビルドし、レジストリが配信する種類の OCI イメージを実行する Firecracker microVM です。API 呼び出し 1 回で作成し、中でコマンドを実行し、ファイルを読み書きし、ターミナルやポートへのリンクを開けます。コマンドとファイルは、ネットワークではなく、マシン内部のエージェントを通じて届きます。
中で何も起きていないとき、サンドボックスはスリープします。メモリ、プロセス、ディスクを保持し、次の呼び出しでミリ秒のうちに元の状態のまま復帰します。削除するまで残ります。
サンドボックスを使う場面
- AI エージェントのコンピューター:コマンドを実行し、パッケージをインストールし、ターンの合間も作業内容を保持するコーディングエージェント、ブラウザエージェント、コードインタープリター。
- 自分で書いていないコード:ユーザーやモデルから送られてくるもの。自社のマシンからも互いからも切り離し、ネットワークルールと、コードからは見えないシークレットとともに実行します。
- リクエストごとのジョブ:
glac runは、サンドボックスを作成し、コマンドを 1 つ実行して削除します。 - 分岐する環境:実行中のサンドボックスのスナップショットと、それぞれがその時点から続きを実行するコピー(フォーク)。
- 専用のサーバー:
init: "systemd"を指定すると、イメージ自身の systemd が PID 1 になり、パッケージ、サービス、cron、SSH を、普通のサーバーと同じように使えます(システム全体)。
リクエストに応じてインスタンスが起動する形で、イメージをアドレスで配信するなら、キューブを使います。どちらも同じマシン上で、同じ料金で動きます。
仕組み
- **作成。**イメージを指定して、またはプラットフォームのデフォルトイメージを使うなら何も指定せずに、
POST /v1/sandboxes(glac sandboxes create)を呼びます。イメージから作る最初のサンドボックスは、プラットフォームがイメージをプルしてテンプレートを保存する間待ちます。以降のサンドボックスはそのテンプレートのコピーで、すでに実行中のプールから取り出されます。 - **利用。**コマンドの実行(
exec)、ファイルの読み書き、ターミナルの利用、ポートへのリンクの発行ができます。呼び出しは、起動中やスリープ中のサンドボックスを待ちます。そのために失敗する呼び出しはありません。 - スリープ。
sleep_after_seconds(指定しなければ 30 秒)の間アイドルが続くとスリープします。必要とするものがあれば、何であれ復帰させます。コマンド、ファイル、リンクへのリクエスト、タイマーです。
料金
サンドボックスは、稼働中に使う CPU と確保するメモリの分を支払います。スリープ中は、保持するもの、つまりメモリと、ディスクのうちサンドボックス固有の部分の分を支払います。マシンのメモリ上で一時停止しているサンドボックスは、稼働中と同じくそのメモリの分を支払い、CPU の分は支払いません。
| 計測項目 | 料金 | 無料プラン(1 日あたり) | 有料プランの月間利用枠 |
|---|---|---|---|
| CPU(処理している間) | 100万 CPU ミリ秒あたり $0.01 | 100万 CPU ミリ秒 | 6000万 CPU ミリ秒 |
| メモリ(稼働中と、メモリ上で一時停止している間) | 1 GiB-時間あたり $0.008 | 6 GiB-時間 | 250 GiB-時間 |
| リクエスト(キューブ宛てと、サンドボックスのリンク経由) | 100万件あたり $0.30 | 100,000 | 1000万 |
| スリープ中のインスタンスが保持するデータ(メモリと固有のディスク) | 1 GB-月あたり $0.02 | 合計 15 GB(スナップショットとドライブを含む) | 20 GB-月(スナップショットとドライブを含む) |
| スナップショットが保持するデータ | 1 GB-月あたり $0.02 | 上記と共通の枠 | 上記と共通の枠 |
| インターネットへの送信トラフィック(北米から) | 1 GB あたり $0.004 | 3 GB(リージョンを問わず) | 1 TB(リージョンを問わず) |
| インターネットへの送信トラフィック(ヨーロッパから) | 1 GB あたり $0.004 | ||
| インターネットへの送信トラフィック(アジア太平洋から) | 1 GB あたり $0.01 |
無料プランでは、インスタンスの使用量はその日のクォータから差し引かれます。有料プランには計測項目ごとに毎月一定量が含まれ、それを超えた使用量はこの料金で残高から支払われます。料金とプランを参照してください。
プランごとの制限
| 無料プラン | 有料プラン | |
|---|---|---|
| インスタンスの最大サイズ | 2 vCPU、4 GiB | 8 vCPU、16 GiB |
| インスタンスの同時稼働数 | 5 | 500 |
| それらの vCPU の合計 | 10 | 500 |
| それらのメモリの合計 | 10 GiB | 1,000 GiB |
| スリープ中のインスタンスの保持数 | 20 | 10,000 |
| 1 分間のサンドボックス作成数 | 10 | 600 |
| 1 プロジェクトが 1 時間に作成できるサンドボックス数 | 200 | 10,000 |
稼働中のサンドボックスとその vCPU、メモリは、アカウント全体で数えられます。すべてのプロジェクトのサンドボックスとキューブのインスタンスの合計です。すべての制限は制限のページにあります。
次のステップ
- クイックスタート:サンドボックスの作成、コマンドの実行、ファイルのコピー、ポートの公開を、コマンドライン、Python、コンソールで。
- コマンド、ファイル、ターミナル:コマンドの実行とその出力、ファイル、ターミナル、イメージ。
- スリープと復帰:サンドボックスをスリープさせるもの、復帰させるもの、内部から稼働させ続ける方法。
- スナップショットとフォーク:サンドボックスの現在の状態の保存、巻き戻し、続きを実行するコピー、テンプレート。
- リンク、トークン、SSH:ポートへのリンク、1 つのサンドボックス用のトークン、SSH。
- ネットワークルールとシークレット:サンドボックスが到達できる範囲と、サンドボックスが持たずに使うシークレット。