클라우드 플랫폼에서 **콜드 스타트(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 기반|