
엣지 함수의 '기본값'이 흔들리고 있어요
몇 년 전만 해도 '엣지 컴퓨팅' 하면 거의 공식처럼 따라붙는 기술이 있었어요. 바로 V8 아이솔레이트(isolate)예요. Cloudflare Workers가 이 방식으로 유명해졌고, Netlify도 2022년에 Edge Functions를 출시하면서 Deno 기반, 즉 V8 아이솔레이트 위에서 코드를 실행하는 구조를 택했어요.
그런데 Netlify가 이번에 Edge Functions의 실행 기반을 V8 아이솔레이트에서 Firecracker 마이크로VM으로 옮겼다고 발표했어요. 그 결과 엣지 함수가 5배 빨라졌다고 해요. 가볍고 빠른 게 장점이던 아이솔레이트를 두고 굳이 '가상 머신'으로 간다니 처음엔 좀 의아하죠? 이 전환이 무슨 의미인지 하나씩 풀어볼게요.
V8 아이솔레이트와 마이크로VM, 뭐가 다를까요
먼저 V8 아이솔레이트부터 볼게요. V8은 크롬과 Node.js에 들어 있는 자바스크립트 엔진이에요. 아이솔레이트는 이 엔진 안에서 서로 완전히 분리된 작은 실행 공간이고요. 쉽게 말해 큰 아파트 건물(프로세스) 하나에 여러 세대(아이솔레이트)가 벽을 사이에 두고 따로 사는 구조예요. 새 세대가 입주하는 속도가 엄청 빨라서, 콜드 스타트(첫 요청이 들어올 때 실행 환경을 새로 띄우는 데 걸리는 시간)가 수 밀리초 수준이에요. 메모리도 적게 쓰고요.
대신 제약이 있어요. 자바스크립트와 웹어셈블리 중심 환경이라 네이티브 바이너리나 일부 Node.js API를 그대로 쓰기 어렵고, 플랫폼이 걸어둔 CPU 시간이나 메모리 제한도 빡빡한 편이에요. '쓰려던 npm 패키지가 엣지에서는 안 돌아간다'는 불만이 계속 나왔던 이유예요.
Firecracker는 AWS가 만든 오픈소스 가상 머신 모니터(VMM)예요. Rust로 작성됐고, AWS Lambda와 Fargate의 기반 기술이에요. 일반 VM이 '단독 주택'이라면 Firecracker 마이크로VM은 꼭 필요한 설비만 남긴 '조립식 원룸'이에요. 불필요한 가상 장치를 모두 걷어내서 매우 빠르게 부팅되고(공식 목표는 125ms 이하예요), 리눅스 커널 단위로 격리되기 때문에 보안 경계도 아이솔레이트보다 훨씬 단단해요.
어떻게 VM이 더 빠를 수 있을까?
'VM이 아이솔레이트보다 빠르다'는 말은 직관에 어긋나 보이지만, 여기서 말하는 속도는 실행 환경을 띄우는 속도만 뜻하는 게 아니에요. 정확한 측정 조건과 원인은 Netlify 원문을 확인하는 게 가장 확실해요. 다만 이런 전환에서 일반적으로 성능이 좋아질 수 있는 지점은 이런 것들이에요.
- 제약이 풀린 실행 환경: 아이솔레이트의 빡빡한 CPU와 메모리 제한 없이, 더 넉넉한 자원 안에서 코드를 실행할 수 있어요.
- 스냅샷 복원: Firecracker는 초기화가 끝난 VM 상태를 스냅샷으로 저장해 뒀다가 복원하는 기능을 지원해요. 잘 활용하면 콜드 스타트 부담을 크게 줄일 수 있어요.
- 인스턴스 재사용: 한 번 띄운 환경을 여러 요청에 재사용하면 요청당 오버헤드가 줄어요.
- Netlify를 쓰고 있다면: 기존 엣지 함수가 그대로 동작하는지, 런타임 API나 제한 사항이 바뀌는 부분은 없는지 공식 안내부터 확인하세요. 호환 범위가 넓어졌다면, 그동안 엣지에서 못 쓰던 라이브러리도 다시 검토해 볼 만해요.
- 플랫폼을 고르는 입장이라면: '엣지'라는 이름보다 실제 런타임이 무엇인지(아이솔레이트, 컨테이너, 마이크로VM), 콜드 스타트와 제약 조건이 어떤지 비교하는 습관이 더 중요해졌어요.
- 인프라에 관심이 있다면: Firecracker는 오픈소스라서 직접 띄워볼 수 있어요. 서버리스 플랫폼이 내부에서 어떻게 돌아가는지 이해하는 데 이만한 교재가 없어요.
'어떤 워크로드에서 5배인지'는 꼭 따져봐야 해요. 한 줄짜리 리다이렉트 함수와 무거운 SSR(서버 사이드 렌더링) 함수는 체감 차이가 완전히 다를 테니까요.
업계 흐름: '엣지 = 아이솔레이트' 공식이 깨지는 중
이번 발표가 Netlify만의 독특한 결정은 아니에요. Vercel은 이미 2025년에 Edge 런타임 대신 Node.js 런타임을 권장하는 쪽으로 방향을 틀었어요. 제약 많은 엣지 런타임보다 완전한 Node.js 호환성이 개발자에게 더 중요했던 거죠. Cloudflare도 아이솔레이트 기반 Workers는 그대로 두면서 컨테이너를 실행할 수 있는 기능을 따로 추가했고요. Fly.io는 처음부터 Firecracker 마이크로VM을 기반으로 만든 플랫폼이에요.
정리하면 이런 흐름이에요. 초창기 엣지는 극단적인 가벼움을 위해 호환성을 희생했어요. 그런데 이제는 마이크로VM과 스냅샷 기술이 충분히 빨라져서, 가벼우면서도 진짜 리눅스 환경을 제공할 수 있게 됐어요. 속도와 호환성을 둘 다 챙기는 쪽으로 무게중심이 옮겨가고 있는 거죠.
한국 개발자에게 주는 시사점
마무리
한 줄 정리: 가볍지만 제약이 많은 V8 아이솔레이트에서 빠르면서도 진짜 리눅스 환경인 Firecracker 마이크로VM으로, 엣지 컴퓨팅의 기본값이 바뀌고 있어요.
여러분은 엣지 함수를 쓰다가 런타임 제약 때문에 막혔던 경험이 있으신가요? 콜드 스타트와 호환성 중 하나만 골라야 한다면 어느 쪽을 택하시겠어요?
🔗 출처: Hacker News