Lambda가 2014년 re:Invent에서 발표됐을 때, 많은 개발자들이 "그래서 EC2를 대체하는 건가요?"라고 물었다. 아니다. Lambda는 EC2를 대체하지 않는다. Lambda는 완전히 다른 질문에 답한다. "이 코드를 언제 어디서 실행할지 내가 결정하고 싶지 않다. 그냥 이벤트가 발생했을 때 코드가 실행됐으면 좋겠다." 서버를 프로비저닝하고, OS를 관리하고, 용량을 계획하고, 패치하는 모든 과정을 없애는 것이 Lambda의 본질이다.
그 뒤에는 실제로 서버가 있다. Lambda가 서버리스라는 것은 사용자가 서버를 관리하지 않는다는 의미이지, 물리적 서버가 없다는 의미가 아니다. AWS가 내부적으로 Firecracker라는 마이크로VM 기술로 Lambda 함수를 격리된 실행 환경에서 돌린다. NIST SP 800-145는 클라우드 서비스를 IaaS/PaaS/SaaS로 분류하는데, Lambda는 이 분류를 넘어선 FaaS(Function as a Service)라는 새로운 추상화 계층이다.
Lambda 함수가 처음 호출되거나 오랫동안 사용되지 않다가 다시 호출될 때, AWS는 새로운 실행 환경(Execution Environment)을 준비해야 한다. 이 과정이 콜드 스타트(Cold Start)다.
콜드 스타트 동안 발생하는 일: