피드로 돌아가기
Dev.toInfrastructure
원문 읽기
VM Snapshot과 vsock 도입을 통한 Cold Start 200ms → 1ms 단축
How I built an AWS Lambda clone with Firecracker microVMs
AI 요약
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 관리 메커니즘 적용