본문으로 건너뛰기

© 2026 Molayo

Vercel헤드라인2026. 04. 23. 22:17

Vercel Sandbox 스냅샷 속도 개선: 40초에서 초 단위로

요약

Vercel은 팀이 작업 환경(sandbox)의 전체 파일 시스템 상태를 저장하고 복원하는 기능을 제공하며, 이 과정의 성능 최적화에 집중했습니다. 초기에는 안정성에 초점을 맞췄으나, 스냅샷 복원 시간이 40초 이상 걸리는 문제를 발견했습니다. 이를 해결하기 위해 병렬 처리와 로컬 캐싱 전략을 도입하여 p75 복원 시간을 1초 미만으로 단축시켰습니다. 특히 S3 다운로드 시 HTTP Range 요청과 AWS Go SDK를 활용한 병렬 스트리밍, 그리고 디컴프레션(decompression) 과정을 여러 스레드에서 동시에 처리하는 방안

핵심 포인트

  • 스냅샷 복원 속도를 개선하기 위해 다운로드 및 압축 해제 과정에 병렬 처리를 적용했습니다.
  • 로컬 디스크 캐싱(LRU)을 도입하여 자주 사용되는 스냅샷의 경우 네트워크 통신과 압축 해제를 건너뛰게 했습니다.
  • 최적화 결과, p75 복원 시간이 40초 이상에서 1초 미만으로 대폭 단축되었습니다.
  • 궁극적으로는 캐싱 없이도 빠른 '콜드 패스(cold path)'를 목표로 하고 있습니다.

Vercel은 팀이 작업 환경(sandbox)의 전체 파일 시스템 상태를 캡처하고 복원하는 기능을 구현했습니다. 초기에는 시스템 안정성을 확보하는 데 주력했으나, 이후 성능 최적화에 돌입하며 큰 진전을 이루었습니다.

기존 스냅샷 복원 과정은 병목 현상이 심각하여 p75 기준 40초 이상이 소요되었습니다. Vercel은 이 문제를 해결하기 위해 여러 단계의 아키텍처 개선을 진행했습니다.

첫째, S3 다운로드 과정을 최적화했습니다. 스냅샷 파일(수백 MBGB 단위)을 한 번에 받는 대신 HTTP Range 요청과 AWS Go SDK를 활용하여 청크(chunk) 단위로 병렬 스트리밍 받도록 변경했습니다. 이를 통해 다운로드 속도를 25배 향상시켰습니다.

둘째, 압축 해제 과정(decompression)을 개선했습니다. 디스크 이미지의 각 영역에 대한 헤더와 프레임을 활용하여 단일 스레드 대신 여러 개의 고루틴(goroutine)이 동시에 처리하도록 변경함으로써 속도를 2~4배 높였습니다.

셋째, 다운로드된 데이터를 압축 해제하기 위해 임시 디스크에 쓰는 중간 과정을 생략하고, S3 스트림을 바로 압축 해제 파이프라인으로 연결했습니다. 이로써 엔드투엔드 복원 시간이 추가로 2배 단축되었습니다.

여기에 더해 로컬 캐싱 전략(LRU)을 도입하여 자주 사용되는 스냅샷은 네트워크 다운로드와 압축 해제를 완전히 건너뛰게 했습니다. 그 결과, p75 복원 시간은 40초대에서 1초 미만으로 급감했으며, 이는 대부분의 사용자에게 즉각적인 경험을 제공합니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Vercel AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
3

댓글

0