2014년 Amazon은 내부적으로 심각한 문제를 마주하고 있었다. EC2 위에 올라가는 컨테이너 기반 함수 실행 환경은 멀티테넌시 보안 격리가 약했고, 콜드 스타트가 수 초에 달했다. 같은 해 발표된 Lambda는 초창기엔 컨테이너(LXC)로 동작했지만, 이 모델은 보안 경계가 불분명하고 밀도(하드웨어당 동시 실행 수)가 낮았다. 해결책으로 AWS는 2018년 AWS re:Invent에서 Firecracker를 공개했다. Rust로 작성된 MicroVM 하이퍼바이저로, 부팅에 125ms 미만, 메모리 오버헤드 5MB 미만을 달성한다. Lambda는 2019년부터 Firecracker 위에서 동작한다.
Firecracker를 이해하면 Lambda의 실행 모델이 한눈에 보인다. 전통적인 VM(QEMU 기반)은 에뮬레이션 레이어가 수백 개의 가상 디바이스를 구현한다. Firecracker는 그 대부분을 버리고 최소한의 가상 NIC, 블록 디바이스, 직렬 포트, 키보드만 남긴다. 결과적으로 코드 크기가 50,000줄 이하로 공격 표면(attack surface)이 극도로 작아진다. KVM(Linux 커널의 하이퍼바이저 레이어)을 그대로 활용하기 때문에 Intel VT-x / AMD-V 하드웨어 가상화를 쓰며, Rust의 메모리 안전성이 버그를 원천 차단한다.