숫자로 보는 볼륨
- 캐시 없이 데이터 GB-월당
- $0.02
- 전부 NVMe에 둘 때 GB-월당
- $0.08
- 쓰기·읽기 비용
- $0
세 단계로
명령줄, 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"}
볼륨은 분리할 때까지 한 번에 샌드박스 하나에만 속합니다. 볼륨이 있는 큐브는 인스턴스가 하나입니다.
주요 기능
쓰기와 캐시된 읽기는 NVMe 속도로, 캐시할 양은 직접 고릅니다.
데이터와 캐시만큼 과금: 시간 단위로 세며, 크기나 읽기로는 과금하지 않습니다.
모든 쓰기는 1초 안에 계층형 스토리지로, 250 ms마다 내보냅니다.
리전 안의 어느 머신에든 마운트, 블록은 읽히는 대로 따라옵니다.
볼륨의 스냅샷, 포크, 복원: 아무것도 복사하지 않습니다.
스냅샷 하나를 여러 샌드박스에서 읽기 전용으로 동시에 마운트할 수 있어, 가중치와 데이터셋에 알맞습니다.
이해를 돕기 위한 예시 그림
상태를 보존하는 방법 고르기
플랫폼이 프로그램의 상태를 보존하는 세 가지 방법과 각각의 쓰임.
| 보존하는 것 | 용도 | |
|---|---|---|
| 잠자기 | 메모리, 프로세스, 디스크를 그대로 | 쓰지 않는 사이의 인스턴스나 샌드박스 |
| 스냅샷 | 한 시점의 샌드박스 전체 | 되돌아갈 지점, 또는 여러 사본의 출발점 |
| 볼륨 | 어느 인스턴스와도 분리된 디스크 | 인스턴스보다 오래 남는 파일: 데이터베이스, 작업 공간, 데이터셋 |
주요 용도
큐브 위의 데이터베이스
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 | 볼륨에 담긴 전체 데이터, 계층형 스토리지에 보관 | $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-월 |
한 달 가격
100 GB를 한 달 내내 보관할 때, 캐시를 세 가지 방식으로 둔 경우입니다. 쓰기와 읽기는 무료입니다.
전부 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까지 가능합니다. 인스턴스 하나에는 볼륨을 최대 8개 마운트합니다.
데이터 보관 방식
먼저 머신에 기록되고, 기록되는 대로 계층형 스토리지에 복사됩니다.
먼저 머신에
쓰기는 머신의 NVMe에 기록되며, 머신에 있는 데이터를 읽을 때는 머신 밖으로 나가지 않습니다.
1초 안에 외부 저장소로 복사
250 ms마다 내보내며, 아직 보내지 않은 가장 오래된 쓰기가 900 ms가 되면 새 쓰기는 기다립니다.
머신을 잃었을 때의 손실
직전 순간의 상태로 돌아옵니다. 같은 방식으로 복사되는 샌드박스 디스크는 41번의 손실에서 최대 1.0초 분량의 쓰기만 잃었습니다.
쓰기는 한 번에 한 곳에서만
머신 하나가 리스를 보유하며, 갱신하지 못하면 쓰기를 멈춥니다.
프로젝트 키로 봉인
모든 메가바이트를 프로젝트의 키와 AES-256-GCM으로 암호화합니다.
한 곳에 보관
데이터 센터 한 곳에 보관하며, 옮기지 않는 한 다른 리전에는 두지 않습니다.
더 읽어 보기
플랫폼
큐브
관리형 애플리케이션
- 샌드박스에이전트마다 전용 컴퓨터
- 출시 예정브라우저코드로 조작하는 실제 브라우저
- 출시 예정서버리스 Postgres유휴 시 잠들고 연결이 들어오면 깨어나는 Postgres
- 출시 예정서드파티 앱대신 운영해 드리는 오픈 소스 프로젝트, 이후에는 마켓플레이스