AWS Lambda 동작 순서 (feat. Warm start vs Cold start)

Falcon·2021년 5월 4일
1

aws

목록 보기
3/35
post-thumbnail

🎯 Goal

  • Lambda Warm Start, Cold Start 가 무엇인지 안다.
  • Cold Start 를 방지하는 방법을 안다.

Lambda 동작 순서

람다 코드 작성 & 배포 -> Load Code as .zip -> Download to contianer -> 의미 Bootstrap code(compile, load code to container) -> run code

what's bootstrap?
(1) 소프트웨어를 컴퓨터에 적재하는 일
(2) ✔️ 특정 언어에 대해 컴파일하여 기록하는 것. // 여기서는 이 의미로 쓰였다.
(3) ROM 상의 OS를 메모리(RAM)에 적재하는일 (부팅과정)

이를 그림으로 표현하면 다음과 같다.

Cold Start

  1. 배포 패키지의 크기와 코드 실행 시간 및 코드의 초기화 시간에 따라 새 실행 환경으로 호출을 라우팅할 때 지연 시간이 발생하는 람다 호출 시작 === 콜드 스타트(Cold start)

Cold Start는 언제 발생하는가?

  • 갑자기 많은 동시 호출 처리
  • 람다 함수 업데이트시
  • 일정 시간 호출하지 않아 유휴 시간에 들어간 상태

💡 오랜만에 실행한 람다함수가 응답까지 오래걸리는 이유는 Cold Start 를 했기 때문이다

Warm Start

이미 실행준비가 완료된 상태, 즉 이미 생성되어 있던 컨테이너의 코드를 재실행하는 것 뿐이다.

Bootstrap code 라는 건 이미 실행할 컴퓨터에 적재된 코드를 실행시켜 결과를 기록하는 것일 뿐이다.

⚠️ 람다함수를 실행시켰을 때 이전 람다에서 완전히 종료되지 않은 프로세스가 재개되어 실행될 수 있다. 위 그림에서 살펴봤듯 실행환경을 일정시간 유지하고 재사용하는 매커니즘이 있기 때문이다.

📊 속도 차이 비교

동일한 람다 함수에 대해 요청-응답 소요시간이 얼마나 걸리는지 단편적으로 비교해보자.
람다 구성환경은 다음과 같다.

메모리사용언어
512MBnode.js

Cold StartWarm Start

🔗 Reference

Understanding Lambda performance optimization - AWS blog

profile
I'm still hungry

0개의 댓글