Vercel Sandbox에 파일시스템 스냅샷 기능이 추가됐다. 의존성 설치·빌드처럼 시간과 비용이 드는 초기 셋업을 한 번만 수행하고 그 상태를 스냅샷으로 저장해 여러 샌드박스에서 재사용할 수 있다. 단일 스냅샷을 병렬로 여러 인스턴스에 적용하는 것도 가능하다.
핵심 포인트- `sandbox.snapshot()`으로 실행 중인 샌드박스의 파일시스템 전체를 캡처해 스냅샷 ID를 얻는다.
- `Sandbox.create({ source: { type: 'snapshot', snapshotId } })`로 스냅샷 상태에서 바로 샌드박스를 시작한다.
- 동일 스냅샷을 여러 샌드박스 인스턴스가 병렬로 공유할 수 있다 — 독립 실행 테스트에 유용.
- 반복적인 npm install이나 빌드 단계 없이 사전 구성된 환경을 즉시 쓸 수 있다.
상세 정리- 배경: 에페메랄 샌드박스는 매 실행 시 초기 셋업을 반복해야 했다. AI 에이전트가 코드를 실행할 때마다 의존성을 설치하면 비용·시간이 누적된다.
- 스냅샷 생성: 샌드박스를 만들고 필요한 환경(패키지 설치, 파일 생성, 빌드 산출물 등)을 구성한 뒤 `await sandbox.snapshot()`을 호출하면 스냅샷 ID가 반환된다.
- 스냅샷 복원: `Sandbox.create({ source: { type: 'snapshot', snapshotId: 'snap_xxx' } })`로 스냅샷 시점 상태 그대로 새 샌드박스를 시작한다.
- 병렬 활용: 동일 스냅샷에서 N개 샌드박스를 동시에 생성할 수 있다. 독립 테스트 케이스를 병렬로 돌리거나 AI 에이전트가 여러 작업을 동시에 실행하는 패턴에 적합하다.
- TypeScript 예시: (1) 샌드박스 생성 → (2) 파일 작성/패키지 설치 → (3) snapshot() → (4) 스냅샷 ID로 새 샌드박스 생성 → (5) 이전 파일 즉시 접근 흐름.
- 코드 실행 에이전트 패턴: 에이전트 시작 시 한 번 환경을 구성해 스냅샷 저장 → 각 사용자 요청마다 스냅샷에서 샌드박스 복원 → 코드 실행 → 폐기. 셋업 비용을 1회로 압축.
왜 읽나Vercel Sandbox 기반으로 AI 코드 실행 환경이나 병렬 테스트 인프라를 구축하는 엔지니어에게 반복 셋업 비용을 제거하는 스냅샷 패턴 레퍼런스.