클라우드 플랫폼에서 **콜드 스타트(Cold Start)** 는 서버리스(Serverless)나 FaaS(Function as a Service) 환경에서 **요청을 처리할 준비가 전혀 되어 있지 않은 상태의 인스턴스를 처음으로 깨워 올리는 과정** 아주 쉽게 말하면: > **잠자고 있는 서버를 깨우느라 첫 요청이 느려지는 현상** --- # 🔥 왜 콜드 스타트가 발생할까? 서버리스 함수(예: [[AWS Lambda]], Cloudflare Workers* DO NOT have cold start 포함 클라우드 환경에 따라 차이 있음*)는 비용 절감을 위해 **사용하지 않으면 자동으로 종료**되거나 **리소스를 회수**함. 새 요청이 오면: 1. 새로운 인스턴스를 생성하고 2. 런타임(Node.js, Python, Go 등)을 로딩하고 3. 환경변수/라이브러리 로딩 4. 사용자 코드를 메모리에 올리고 5. 네트워크 초기화 이런 초기화 과정이 필요해서 **첫 요청이 느려짐** → 이걸 _콜드 스타트_라고 해. 반면 이미 떠 있는 인스턴스가 있으면 바로 실행됨 → **웜 스타트(Warm Start)** --- # 🧊 콜드 스타트가 중요한 이유 ### ❗ 서버리스 앱의 첫 응답 시간이 느려짐 예: - AWS Lambda는 보통 100~800ms 딜레이 - VPC 연결, 대용량 라이브러리(NumPy 등) 포함하면 **수 초** 걸릴 수 있음 ### ❗ 사용자 경험 저하 - 첫 페이지 요청이 느린 웹 앱 - API 응답 지연 - 실시간 처리 손실 --- # 🌡️ 콜드 스타트 방지 전략 ## 1) **Provisioned Concurrency** (AWS Lambda) - 항상 일정 개수의 인스턴스를 미리 띄워둠 → 사실상 콜드 스타트 없음 - 단점: 비용 증가 ## 2) **함수 코드 최소화** - 패키지 용량 줄이기 - 복잡한 초기화 로직 지양 ## 3) **지역 메모리 재활용** - 글로벌 스코프 변수 캐싱 - DB 커넥션 재활용 ## 4) Cloudflare Workers, Vercel Edge Functions 활용 - 경량 런타임 기반이라 **콜드 스타트 거의 없음 (몇 ms)** --- # 📦 콜드 스타트가 특히 큰 플랫폼 |플랫폼|콜드 스타트 강도|특징| |---|---|---| |**AWS Lambda**|🟥 큼|VPC 있을 때 더 느림| |**Google Cloud Functions**|🟧 중간|런타임 초기화 비용 큼| |**Azure Functions**|🟧 중간|Consumption plan에서 느림| |**Cloudflare Workers**|🟩 매우 낮음|V8 기반 → 0~5ms| |**Vercel Edge Functions**|🟩 매우 낮음|WebAssembly 기반|