キューブ
ボリューム
インスタンスより長く残るディスク
どのインスタンスからも独立した、キューブのディスク。データはすべて階層型ストレージに保存され、マシンの NVMe に置く量は自由に選べます。
数字で見るボリューム
- キャッシュなしのデータ 1 GB-月あたり
- $0.02
- すべて NVMe に置いたデータ 1 GB-月あたり
- $0.08
- 書き込み・読み取りの料金
- $0
3 ステップで
コマンドライン、API、SDK、MCP サーバーのどこからでも同じ呼び出しを使えます。そこではボリュームは drive と呼ばれます。
始める前に
API キーを GLAC_API_KEY に設定します。
curl -fsSL https://glac.ai/install.sh | sh
export GLAC_API_KEY=ak_...API=https://api.glac.ai/v1
AUTH="Authorization: Bearer $GLAC_API_KEY"from glac import DriveMount, Glac
glac = Glac()import { Glac } from "glac";
const glac = new Glac();# give your agent the tools (Claude Code here)
claude mcp add glac -e GLAC_API_KEY=ak_... -- npx glac-mcpボリュームを作る
課金されるのは書き込んだデータだけです。
glac drives create --name data \ --size-bytes 10GiBcurl $API/drives -H "$AUTH" \ --json '{"name": "data", "size_bytes": 10737418240}'drive = glac.drives.create(name="data", size_bytes=10 << 30)const drive = await glac.drives.create( { name: "data", sizeBytes: 10 * 2 ** 30 });drive_create {"name": "data", "size_gib": 10}マウントして書き込む
サンドボックスの、任意のパスに。
glac sandboxes create --name web \ --drive data:/data glac sandboxes exec web -- \ sh -c 'echo kept > /data/note'curl $API/sandboxes -H "$AUTH" --json '{"name": "web", "drives": [{"drive": "data", "path": "/data"}]}' curl $API/sandboxes/web/run -H "$AUTH" \ --json '{"command": "echo kept > /data/note"}'mount = DriveMount("/data", drive) sbx = glac.sandboxes.create(drives=[mount]) sbx.run("echo kept > /data/note")const mount = { path: "/data", drive: drive.id }; const sbx = await glac.sandboxes.create( { drives: [mount] }); await sbx.files.write("/data/note", "kept\n");drive_attach {"drive": "data", "sandbox": "web", "path": "/data"} sandbox_run {"sandbox": "web", "command": "echo kept > /data/note"}引き継ぐ
中身ごと、次のサンドボックスへ。
glac drives detach data web glac sandboxes create --name next \ --drive data:/data glac sandboxes exec next -- \ cat /data/notecurl -X DELETE $API/sandboxes/web/drives/data -H "$AUTH" curl $API/sandboxes -H "$AUTH" --json '{"name": "next", "drives": [{"drive": "data", "path": "/data"}]}'glac.drives.detach(sbx, drive) nxt = glac.sandboxes.create(drives=[mount]) print(nxt.run("cat /data/note").stdout)await glac.drives.detach(sbx, drive); const nxt = await glac.sandboxes.create( { drives: [mount] }); console.log(await nxt.files.readText("/data/note"));drive_detach {"drive": "data", "sandbox": "web"} drive_attach {"drive": "data", "sandbox": "next", "path": "/data"}
ボリュームは、デタッチされるまで一度に 1 つのサンドボックスだけが使えます。ボリュームを持つキューブのインスタンスは 1 つです。
できること
書き込みとキャッシュ済みの読み取りは NVMe の速度。キャッシュする量は自由に選べます。
データとキャッシュで課金。1 時間ごとに計測し、サイズや読み取りで課金されることはありません。
すべての書き込みは 1 秒以内に階層型ストレージへ。250 ミリ秒ごとに送り出されます。
リージョン内のどのマシンにもマウント可能。ブロックは読み取られるのに合わせて移ってきます。
ボリュームのスナップショット、フォーク、復元を、何もコピーせずに。
1 つのスナップショットを、多数のサンドボックスで読み取り専用として同時に使えます。モデルの重みやデータセットに。
画面はイメージです
状態を残す方法の選び方
プログラムの状態をプラットフォームが保持する 3 つの方法と、それぞれの用途。
| 保持するもの | 用途 | |
|---|---|---|
| スリープ | メモリ、プロセス、ディスクをそのまま | 使われていない間のインスタンスやサンドボックス |
| スナップショット | ある時点のサンドボックス全体 | 巻き戻しや、1 つから多数を起動する用途 |
| ボリューム | どのインスタンスからも独立したディスク | インスタンスより長く残すファイル:データベース、ワークスペース、データセット |
主な用途
キューブ上のデータベース
Postgres、MySQL、Redis をキューブで動かし、データはボリュームに。
glac drives create --name data \ --size-bytes 5GiB --region eu glac deploy redis:7 --name cache \ --port 6379 --public false \ --region eu --drive data:/data移動できるワークスペース
エージェントのファイルは、サンドボックスとともにリージョン内のどのマシンへも移ります。
glac drives detach work old glac drives attach work new:/work glac sandboxes exec new -- ls /work残り続けるキャッシュ
パッケージやビルドのキャッシュをサンドボックスからサンドボックスへ引き継ぐので、毎回キャッシュが温まった状態から始められます。
glac drives create --name deps \ --size-bytes 20GiB glac sandboxes create --name ci \ --drive deps:/root/.cache
料金と制限
データとキャッシュで 1 時間ごとに課金されます。書き込みや読み取りに料金はかかりません。 すべての料金とプラン
| 計測対象 | 計測方法 | 料金 |
|---|---|---|
| データ1 | ボリュームの全データ(階層型ストレージに保存) | $0.00000761 / 100万 GB-ミリ秒$0.00000000761 / GB-秒$0.0000274 / GB-時間$0.02 / GB-月 |
| NVMe キャッシュ1 | マシンの NVMe 上の部分(設定したサイズ)。書き込み・読み取りの料金はなし | $0.0000228 / 100万 GB-ミリ秒$0.0000000228 / GB-秒$0.0000822 / GB-時間$0.06 / GB-月 |
1 か月の料金
100 GB を 1 か月保持した場合を、3 通りのキャッシュで。書き込みと読み取りに料金はかかりません。
すべて NVMe
$8.00
100 GB × ($0.02 + $0.06)
すべての読み取りが NVMe の速度。
バランス型(25% をキャッシュ)
$3.50
100 GB × $0.02 + 25 GB × $0.06
25% を NVMe に置き、残りはネットワークの速度で読み取り。
キャッシュなし
$2.00
100 GB × $0.02
すべての読み取りがネットワークの速度。
プランごとの制限
各プランのすべての制限| 無料プラン | 有料プラン | |
|---|---|---|
| ボリュームプロジェクト内 | 3 | 500 個(ご要望に応じて追加) |
| ボリュームの最大サイズ | 10 GiB | 1 TiB |
| 全ボリュームの合計プロジェクト内 | 15 GiB | 上限なし |
エンタープライズアカウントでは、ご相談によりボリュームあたり最大 16 TiB まで。1 つのインスタンスがマウントできるボリュームは最大 8 個です。
データの保存の仕組み
まずマシン上に書き込まれ、書き込まれるそばから階層型ストレージへコピーされます。
まずマシン上に
書き込みはマシンの NVMe に入り、そこにあるデータの読み取りはマシンの外に出ません。
1 秒以内にコピー
250 ミリ秒ごとに送信。未送信で最も古いデータが 900 ミリ秒を超えると、書き込みは待機します。
マシンを失ったときの影響
直前の状態に戻ります。同じ方法でコピーされるサンドボックスのディスクでは、マシン喪失 41 回で、失われた書き込みは最大 1.0 秒分でした。
書き込みは一度に 1 台だけ
リースを持つのは 1 台のマシンだけで、更新できなければ書き込みを止めます。
プロジェクトの暗号鍵で暗号化
すべてのデータを、プロジェクトの暗号鍵により AES-256-GCM で暗号化。
保存場所は 1 か所
1 つのデータセンターに保存され、移動しない限り別のリージョンには保存されません。
さらに詳しく
プラットフォーム
キューブ
マネージドアプリケーション
- サンドボックスエージェントごとに専用のコンピューター
- 近日提供ブラウザコードから操作する本物のブラウザ
- 近日提供サーバーレス Postgresアイドル時はスリープし、接続があれば復帰する Postgres
- 近日提供サードパーティアプリオープンソースプロジェクトの運用を代行。のちにマーケットプレイスも