검색
← 릴리스 노트

샌드박스 스냅샷 복원 속도 개선

Vercel · 기능추가 · 2026.04.02

병렬 다운로드, 병렬 압축 해제, 로컬 디스크 캐시로 Vercel Sandbox 스냅샷 복원이 크게 빨라졌습니다.

교안에 영향

이제 `Automatic Persistence`와 스냅샷 복원 성능 안내는 병렬 다운로드와 로컬 캐시를 전제로 설명해야 합니다.

요약

- `sandbox.snapshot()`과 `Sandbox.create()`의 스냅샷 저장·복원 흐름은 그대로 두고 복원 경로의 성능을 개선했습니다. - S3 다운로드를 `Range` HTTP header와 AWS Go SDK `transfermanager`로 병렬화해 다운로드 속도를 높였습니다. - `.vhs` 복원에서 한 번에 하나씩 처리하던 압축 해제를 여러 goroutine으로 병렬화했습니다. - 다운로드 데이터를 디스크에 먼저 쓰지 않고 압축 해제로 바로 연결해 추가 지연을 줄였습니다. - `.img`를 직접 저장하는 LRU 기반 로컬 디스크 캐시를 도입해 캐시 적중 시 다운로드와 압축 해제를 건너뜁니다.

바뀐 것

개선 5

  • `sandbox.snapshot()`으로 생성한 스냅샷의 복원 경로를 최적화했습니다.
  • S3 다운로드에 `Range` HTTP header와 AWS Go SDK의 `transfermanager`를 사용해 여러 구간을 병렬로 받도록 했습니다.
  • `.vhs`를 읽을 때 하나의 decoder가 여러 decompression goroutine에 데이터를 공급하도록 바꿨습니다.
  • S3 range request 스트림을 압축 해제로 바로 연결해 중간 디스크 쓰기 단계를 없앴습니다.
  • 총 디스크 공간 기준으로 동작하는 LRU 로컬 디스크 캐시를 추가하고 `.img`를 직접 캐시하도록 했습니다.

기타 2

  • 정합성과 성능 향상을 위한 최적화 결과로 p75 복원 시간이 40초대에서 1초 미만으로 줄었습니다.
  • 이 최적화는 `Automatic Persistence`의 기반이 되며, 현재 beta로 제공됩니다.

원문 제목 · Optimizing Vercel Sandbox snapshots