Hacker News인프라 · 데브옵스

Netlify 엣지 함수, Firecracker MicroVM으로 5배 빨라졌다

원제 5x faster Edge Functions: V8 isolates to Firecracker MicroVMs

105 포인트댓글 38
Key Point

V8 isolate 기반 엣지 함수가 MicroVM으로 바뀌면서 응답 속도가 5배 빨라지고 진정한 보안 격리가 가능해져, 프론트엔드 성능과 보안이 모두 핵심인 웹 개발자에게 직결된 영향을 미친다.

핵심 요약

  • Netlify는 엣지 함수 실행 인프라를 V8 isolate에서 Firecracker MicroVM 기반으로 전환해 중간값 기준 응답 시간을 25~40ms에서 5~6ms로 단축했다.
  • 이제 요청이 외부 실행 서비스로 나가지 않고 Netlify의 엣지 네트워크 내 MicroVM에서 직접 처리되며, p99 기준으로도 47.4% 빨라졌고 가용성은 99.998%이다.
  • 요청이 도착하면 엣지 노드가 경로를 확인해 매칭되는 엣지 함수가 있으면 머신 사양을 포함한 명세를 생성하고, rendezvous 해싱으로 동일 서비스가 같은 컴퓨트 노드에 할당되도록 한다.
  • 컴퓨트 노드는 서비스 ID로 기존 서비스를 확인하고 없으면 새로 생성하며, 필요한 이미지가 없으면 엣지 노드에서 가져와 디스크에 저장한다.
  • 각 엣지 함수는 1ms 이내에 생성되고 p99 기준 약 2ms에 시작하는 Firecracker MicroVM에서 실행되며, 부팅 후 스냅샷을 남겨 다음 호출 시 신속한 복구를 가능하게 한다.
  • 엣지 함수 파일은 압축하지 않은 EROFS 이미지로 마운트되고 메모리 맵되어 VM이 실제로 사용하는 부분만 읽도록 최적화했다.
  • 콜드 스타트(새로운 지역에서의 첫 호출)는 전체 호출의 약 1.2%이며 평균 9ms가 소요되고, 따뜻한 호출에서는 전체 요청 처리가 약 6ms만 추가된다.
  • 컴퓨트 노드들은 컨트롤 플레인으로 관리되며 엣지 노드들이 상태를 폴링하고, 새 배포 시 기존 플릿과 병렬로 실행 후 정상 확인 후에만 트래픽을 넘겨받는다.
  • 트래픽 스파이크 대응을 위해 특정 임계값을 넘으면 서비스를 여러 노드에 분산시켜 단일 고객의 트래픽이 다른 서비스에 영향을 주지 않도록 한다.
  • 각 서비스는 코드나 환경 변수가 다르면 별도 MicroVM에서 실행되어 보안 격리를 제공하며, 손상된 배포도 다른 고객이나 컴퓨트 레이어에 영향을 주지 못한다.
  • 로컬 DNS 리졸버 배치, 부팅 시간과 포트 개방 시간 등의 상세 메트릭 수집, 회로 차단기(circuit breaker) 배치 등으로 안정성과 디버깅 능력을 강화했다.
  • 이 변경사항은 엣지 함수 작성 방식을 바꾸지 않으며, npm 패키지 지원을 베타에서 정식으로 전환하고 기존 50ms CPU/512MB 메모리 등의 제한을 재검토할 수 있게 한다.
  • Unikraft 팀과의 긴밀한 협업으로 검증과 대규모 트래픽 처리 능력을 구축했으며, 이미 기존 가격과 마이그레이션 없이 프로덕션 트래픽을 처리 중이다.
AI 요약 안내

AI가 한국어로 정리한 내용입니다. 정확한 정보는 원문을 확인해 주세요.

요약 원칙 ↗