Optimizing AWS Lambda Cold Starts with Proper Linux/GLIBC Dependency Builds
ARM64용 네이티브 휠 사전 빌드 전략
Hun Jang Dec 10, 2025
서버리스(Lambda) 콜드스타트 줄이는 핵심은 “네이티브 의존성은 배포 전에 맞는 manylinux 휠로 준비”하는 것이다. 즉, 초기화 때 컴파일을 없애고 OS/GLIBC에 맞춘 바이너리를 미리 넣는 것이다.
왜 필요한가
- Lambda 실행환경의 GLIBC가 개발 머신보다 낮으면,
pip install이 소스 빌드로 떨어져 콜드스타트를 악화시킨다. 그래서 Lambda용 호환 휠을 사전에 빌드·동봉해야 해. AWS도 교차 빌드/-platform사용을 권장한다. (AWS Documentation)
어떻게 준비하나 (파이썬 예시)
- 로컬이 Ubuntu 22/24라도 Lambda(특히 Py3.11 이하)의 GLIBC와 맞는 manylinux 태그로 가져오거나 Docker로 빌드한다.
manylinux2014(= glibc 2.17) 태그는 Lambda와 폭넓게 호환돼 안전한 기본값으로 쓰인다. (AWS Documentation)
레이어·패키지 사이즈 주의
- 레이어/패키지 용량이 커질수록 Init 단계가 길어진다. 공통 의존성은 레이어로 분리하되 “용량 최소화”가 최우선이다. (AWS Documentation)
AL2023 전환 메모
- Lambda는 AL2023 런타임을 제공한다(
provided.al2023). 베이스 이미지를 써서 아예 컨테이너로 패키징하면 의존성 일관성이 좋아진다. 그래도 GLIBC 하위호환 원칙은 동일하다. (Amazon Web Services, Inc.)
콜드스타트 더 줄이는 보완책
- 코드/의존성 슬림화 → 프로비저닝 콘커런시/SnapStart(언어별) → 관측과 프라이밍 순으로 적용하면 효과적이다. (Amazon Web Services, Inc.)