한눈에 보기
- Azure Functions의 콜드 스타트(첫 호출 지연)를 줄이는 실전 방법을 정리합니다.
- 핵심은 호스팅 플랜 선택과 워밍업·런타임 최적화입니다.
- 지연에 민감한 API라면 Premium 플랜, 비용 우선이면 Consumption + 워밍업.
서버리스의 단점 하나가 ‘콜드 스타트’ — 한동안 호출이 없다가 들어오면 인스턴스를 새로 띄우느라 첫 응답이 수백 ms~수 초 느려집니다. 사용자 대면 API에선 체감이 큽니다. 원인과 줄이는 법을 봅니다.
호스팅 플랜 비교
| 플랜 | 콜드 스타트 | 비용 | 적합 |
|---|---|---|---|
| Consumption | 있음(유휴 후 발생) | 사용량만(가장 저렴) | 간헐적·비용 우선 |
| Premium | 거의 없음(상시 워밍) | 상시 인스턴스 비용 | 지연 민감 API |
| Dedicated(App Service) | 없음(Always On) | 고정 | 기존 App Service 함께 |
콜드 스타트 줄이는 5가지
- Premium 플랜의 사전 워밍(미리 준비된 인스턴스) 사용 — 가장 확실.
- 런타임·패키지 경량화 — 의존성이 적을수록 초기화가 빠릅니다.
- 언어 선택 — 일반적으로 컴파일·초기화가 가벼운 런타임이 유리.
- 타이머 트리거로 주기적 핑(워밍업) — Consumption에서 임시방편.
- 대형 종속성·무거운 초기화 지연 로딩 — 첫 요청 밖으로 미루기.
# Premium 플랜으로 함수앱 생성(콜드 스타트 최소화)
az functionapp plan create -g <RG> -n premplan --sku EP1 --location koreacentral
az functionapp create -g <RG> -n <APP> --plan premplan \
--runtime node --storage-account <STORAGE>
흔한 실수
- 지연 민감 API를 Consumption에 — 유휴 후 첫 사용자가 항상 느립니다.
- 무거운 전역 초기화 — 매 콜드 스타트마다 그 비용을 다시 치릅니다.
- 타이머 핑만 믿기 — 트래픽이 늘면 스케일아웃 인스턴스는 또 콜드입니다. Premium이 근본 해법.
자주 묻는 질문(FAQ)
- Q. Consumption에서 콜드 스타트를 0으로 만들 수 있나요? A. 완전히는 어렵습니다. 워밍 핑으로 완화할 뿐, 0에 가깝게 하려면 Premium이 필요합니다.
- Q. Premium은 비싸지 않나요? A. 상시 인스턴스 비용이 듭니다. 지연이 매출·UX에 직결될 때만 쓰세요.
- Q. 가장 먼저 할 일은? A. 패키지·초기화 경량화. 그다음 플랜을 고민하세요.
마치며
지연이 중요하면 Premium, 비용이 중요하면 Consumption + 경량화 + 워밍. 워크로드의 ‘지연 민감도’가 선택의 기준입니다.