Vercel이 2022년 12월 Edge Functions를 정식 출시(GA)했다. 베타 기간 동안 300억 건 이상의 호출을 처리했으며, MicroVM 없이 V8 엔진을 직접 사용해 즉각적인 콜드 스타트와 낮은 비용을 실현한 것이 핵심이다. WebAssembly 지원과 Regional binding이 함께 추가됐다.
핵심 포인트- V8 엔진 직접 실행으로 MicroVM 오버헤드 제거, 사실상 콜드 스타트 없음
- OG 이미지 생성 기준 서버리스 대비 40% 빠르고 약 15배 저렴
- WebAssembly 지원 추가 — C/Rust 컴파일 가능, JS 대비 복잡 연산 2배 가속
- Regional binding: 함수를 특정 리전(DB 근처)에 고정해 DB 왕복 지연 최소화
- 50ms CPU 시간 단위 과금, DB/API 대기 중 시간은 과금 제외
상세 정리- 아키텍처 차이: 기존 서버리스(Lambda 등)는 MicroVM 격리 방식으로 콜드 스타트 비용 발생. Edge Functions는 V8 엔진을 직접 사용해 격리 오버헤드를 제거, 즉각적인 실행 가능.
- 실행 위치: 전 세계에 기본 배포돼 요청자와 가장 가까운 리전에서 실행. 캐시 레이어 이후에 실행돼 캐싱과 동적 응답 반환을 동시에 지원.
- Routing Middleware와 차이: Middleware는 캐시 레이어 앞에서 라우팅/리다이렉트 처리. Edge Functions는 캐시 이후 데이터 페칭, 응답 변환에 적합.
- 코드 설정: export const config = { runtime: 'edge' } 한 줄로 Edge 런타임 활성화. Request/Response Web API 표준 사용.
- WebAssembly: V8 호환으로 C/Rust 코드를 Wasm으로 컴파일해 실행 가능. 복잡 연산은 JS 대비 2배 빠름. Vercel의 OG Image Generation을 Wasm으로 이전 후 P99 TTFB가 5배 개선됨.
- Regional binding: 글로벌 배포는 사용자-함수 지연을 최소화하지만 함수가 멀리 있는 DB를 조회하면 왕복 지연이 추가됨. Regional binding으로 함수를 DB와 동일 리전에 묶어 해결.
- 크기 제한 확장: Pro 팀 2MB, Enterprise 4MB로 상향. 더 무거운 라이브러리/모델 사용 가능.
- 과금 모델: 50ms CPU 시간 단위 과금. DB, 외부 API 호출 중 I/O 대기 시간은 포함되지 않아 실제 연산 시간만 과금. Hobby 월 500,000 단위 무료, Pro/Enterprise 월 100만 무료.
- 프레임워크 지원: Next.js 네이티브, Nuxt/Astro/SvelteKit 통합 지원.
- 향후 방향: Edge 런타임을 Node.js API의 공식 subset으로 만들어 Node.js-Edge Functions 간 코드 호환성 개선 예정. Vercel Logs/Monitoring 통한 관측성 강화 계획.
왜 읽나엣지 컴퓨트 모델의 V8 아키텍처 이점, Wasm 성능 특성, Regional binding 패턴을 실제 수치로 이해하려는 인프라/백엔드 엔지니어에게 유용.