本文へスキップ

キューブ

ボリューム

インスタンスより長く残るディスク

どのインスタンスからも独立した、キューブのディスク。データはすべて階層型ストレージに保存され、マシンの 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
  1. ボリュームを作る

    課金されるのは書き込んだデータだけです。

    glac drives create --name data \
      --size-bytes 10GiB
    curl $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}
  2. マウントして書き込む

    サンドボックスの、任意のパスに。

    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"}
  3. 引き継ぐ

    中身ごと、次のサンドボックスへ。

    glac drives detach data web
    glac sandboxes create --name next \
      --drive data:/data
    glac sandboxes exec next -- \
      cat /data/note
    curl -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

    すべての読み取りがネットワークの速度。

プランごとの制限

各プランのすべての制限
無料プラン有料プラン
ボリュームプロジェクト内3500 個(ご要望に応じて追加)
ボリュームの最大サイズ10 GiB1 TiB
全ボリュームの合計プロジェクト内15 GiB上限なし

エンタープライズアカウントでは、ご相談によりボリュームあたり最大 16 TiB まで。1 つのインスタンスがマウントできるボリュームは最大 8 個です。

データの保存の仕組み

まずマシン上に書き込まれ、書き込まれるそばから階層型ストレージへコピーされます。

  • まずマシン上に

    書き込みはマシンの NVMe に入り、そこにあるデータの読み取りはマシンの外に出ません。

  • 1 秒以内にコピー

    250 ミリ秒ごとに送信。未送信で最も古いデータが 900 ミリ秒を超えると、書き込みは待機します。

  • マシンを失ったときの影響

    直前の状態に戻ります。同じ方法でコピーされるサンドボックスのディスクでは、マシン喪失 41 回で、失われた書き込みは最大 1.0 秒分でした。

  • 書き込みは一度に 1 台だけ

    リースを持つのは 1 台のマシンだけで、更新できなければ書き込みを止めます。

  • プロジェクトの暗号鍵で暗号化

    すべてのデータを、プロジェクトの暗号鍵により AES-256-GCM で暗号化。

  • 保存場所は 1 か所

    1 つのデータセンターに保存され、移動しない限り別のリージョンには保存されません。

さらに詳しく

プラットフォーム