피드로 돌아가기
EC2 안 Firecracker VM으로 브라우저를 1초 미만에 시작하기
GeekNewsGeekNews
Infrastructure

EC2 안 Firecracker VM으로 브라우저를 1초 미만에 시작하기

Firecracker VM 기반 브라우저 런타임 최적화로 시작 지연 p50 825ms 달성

xguru2026년 6월 18일17advanced

Context

Unikraft 기반의 기존 구조는 유휴 비용 절감에는 유리했으나, Autoscaling 부족으로 인한 트래픽 급증 시 수동 대응 및 프로덕션 중단 문제를 야기함. 세션 간 완전한 격리를 위해 VM 도입이 필수적이었으나, 일반적인 VM은 생성 비용과 시간이 과다하여 클라우드 브라우저 환경에 부적합한 한계를 가짐.

Technical Solution

  • 정규 EC2 위에서 Firecracker VM을 구동하는 Nested Virtualization 구조를 채택하여 빠른 인스턴스 확보 및 비용 최적화 달성
  • Page Fault 병목 해결을 위해 메모리 페이지 단위를 4KB에서 2MB로 확장하고 userfaultfd 커스텀 핸들러를 통한 사전 로드 구현
  • Chromium 시작 시 발생하는 CPU Burst 처리를 위해 초기 unpinned 상태로 분산 배치 후, Ready 상태 시 vCPU Pinning 및 Real-time Priority 부여
  • Sibling Thread 간의 자원 경쟁 방지를 위해 각 브라우저 VM에 물리 코어의 하이퍼스레드 쌍을 모두 할당하는 배치 전략 적용
  • Anti-bot 탐지 회피를 위해 JavaScript 주입 방식 대신 Chromium 저수준 엔진 패치 및 하드웨어 핑거프린팅 모사 구현
  • CloudWatch의 지연 시간을 극복하기 위해 실시간 플릿 상태를 감시하고 배치를 결정하는 자체 Control Plane 구축

- VM Snapshot 복원 시 발생하는 Page Fault 지연 확인 및 Huge Pages 적용 검토 - CPU Burst가 심한 초기화 단계에서 vCPU Pinning 전략을 동적으로 변경하여 리소스 경합 방지 - 표준 모니터링 도구의 해상도로 부족한 경우, 상태 기반의 전용 Control Plane 설계 고려 - 보안 격리가 필수적인 멀티 테넌트 환경에서 Container보다 공격 표면이 좁은 MicroVM 도입 검토

원문 읽기