피드로 돌아가기
How I built an AWS Lambda clone with Firecracker microVMs
Dev.toDev.to
Infrastructure

VM Snapshot과 vsock 도입을 통한 Cold Start 200ms → 1ms 단축

How I built an AWS Lambda clone with Firecracker microVMs

Vivek jadhav2026년 5월 21일4advanced

Context

강력한 Isolation을 위한 표준 Linux VM 부팅 시 발생하는 200ms 이상의 지연 시간이 Serverless 환경의 치명적인 병목 지점으로 작용. 부팅 시간 단축과 격리 수준 유지라는 상충하는 제약 사항을 해결해야 하는 과제 직면.

Technical Solution

  • 초기 VM 부팅 및 Runtime 초기화 후 메모리 상태를 디스크에 저장하는 VM Snapshot 방식 채택
  • 매 호출 시 전체 부팅 대신 Snapshot 복원을 통해 구동 시간을 1~5ms 수준으로 최적화
  • Host와 VM 간 통신 오버헤드 제거를 위해 TCP 대신 전용 통신 채널인 vsock(virtio sockets) 적용
  • VM 내부 라우팅 효율화를 위한 Unix domain sockets 활용으로 커널 네트워킹 스택 부하 제거
  • Control Plane을 통한 Rootfs 빌드 및 VM Lifecycle 관리로 Multi-tenant 스케줄링 구조 설계
  • Throughput 향상을 위해 Runtime Reuse 전략을 도입하여 요청 간 상태 유지 및 연결 풀링 구현

1. VM 기반 격리 환경 설계 시 표준 TCP/IP 스택 대신 vsock 등 최적화된 IPC 채널 검토

2. Stateless 보장과 성능 사이의 Trade-off 분석을 통한 Runtime Reuse 전략 수립

3. 부팅 오버헤드 제거를 위한 Memory Snapshot 및 Warm Pool 관리 메커니즘 적용

원문 읽기