1. 소개

서버리스 서비스인 람다의 <콜드 스타트>와 <웜 스타트>에 대한 이야기

2. 내용

  1. 이벤트가 호출되어 람다가 실행될 때 실행할 컨테이너가 준비되어 있지 않다면 실행 콘텍스트 설정 및 부트스트래핑 실행을 위한 <콜드 스타트> 과정을 거치게 된다.
  2. 실행이 완료되면 앞서 준비된 컨테이너는 일정 시간 대기한다.
  3. 일정 시간 대기 중에 호출이 발생하면 대기 중인 컨테이너가 바로 처리한다. 이것이 <웜 스타트>이다.

3. 시간 차이

람다에 올라간 개발 언어간에 시간 차이가 있는 것으로 알려져 있다. Python, Node.js는 빠르고 Java, C#은 느린 것으로 알려져 있음.

참고 : https://medium.com/harrythegreat/aws-lambda%EB%A5%BC-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-%EC%A0%84-%EC%95%8C%EC%95%98%EC%9C%BC%EB%A9%B4-%EC%A2%8B%EC%95%98%EC%9D%84%EA%B2%83%EB%93%A4-788bd3b3bdd2

4. 해결방법

주기적으로(5분 이내) 람다를 호출하여 콜드 상태로 빠지지 않게 한다. 단 호출에 따른 비용이 발생할 수 있으니 주의해야 한다.

5. 주의사항

요청이 너무 많으면 내부 스케일링 때문에 콜드 상태로 빠질 수 있다.