Learning
토픽 63 / 107·서버리스와 관찰성

Lambda Cold Start 최적화 (Lambda Cold Start Optimization)

Lambda Cold Start 최적화 (Lambda Cold Start Optimization)

Lambda 함수 최초/장기 미사용 호출 시 발생하는 초기화 지연(Cold Start)을 최소화하는 기법

특징: 실행 환경 초기화, 컨테이너 재사용, 언어별 차이, 메모리 설정 영향

Cold Start 원인: 컨테이너 프로비저닝, 런타임 초기화(JVM 등), 코드 다운로드, 의존성 로딩

최적화 기법

  • Provisioned Concurrency: 환경 예열 유지, 즉시 응답, $0.015/GB-hr 비용
  • SnapStart(Java): CRaC 기반 스냅샷, Init 10배 단축, 무료, Java 11/17+
  • 메모리 증가: CPU 비례 증가, 초기화 2~3배 빠름, Power Tuning 도구
  • 패키지 최소화: Tree Shaking(esbuild), Layer 활용, 50~80% 감소
  • 런타임 선택: Python/Node.js(200~500ms) vs Java(3~10s)
  • 연결 재사용: DB 연결 핸들러 외부 선언
  • 경량 런타임: Custom Runtime(Rust/Go), GraalVM Native Image

VPC Cold Start: ENI 생성 추가 지연 → Hyperplane ENI로 개선

측정: X-Ray(Init Duration), CloudWatch Logs(REPORT), p99 vs p50 차이

비교: Provisioned Concurrency(예열/비용) vs SnapStart(Java/무료) vs 코드 최적화(노력)

연관: AWS Lambda, Serverless, API Gateway, Provisioned Concurrency