1. 서론
- Azure Functions는 다양한 가격 및 성능 요구 조건을 만족시키는 여러 **호스팅 플랜(Tier)**을 제공하며, 이는 커스텀 워크로드 — 특히 Durable Functions 기반의 대용량 Batch 처리 — 에 매우 중요합니다. Microsoft 공식 문서를 기반으로, 각 Tier의 특성과 비교, 그리고 Durable Functions 실행에 적합한 Azure Function Tier 선택 기준을 정리합니다.
2. 본론
A. 주요 Azure Function 호스팅 Tier 비교
- Consumption Plan : 완전 서버리스, 사용량 기반 과금. 콜드 스타트 있으며, 실행 시간 기본 5분 최대 10분 제한. 무료 그랜트 포함.
- Flex Consumption Plan : 서버리스 + virtual network, Always Ready 인스턴스 옵션, 확장 시간 제한 없음. GA 상태이며, 동시에 Availability Zone 대응 가능.
- Premium Plan (Elastic Premium) : Always Ready / Pre-warmed 인스턴스로 콜드 스타트 제거, VNet, 긴 실행, 컨테이너 지원. 실행 시간 제약 없음, 예측 가능한 과금.
- Dedicated (App Service) Plan : App Service 기반 VM에 항상 실행, Autoscale 설정 가능. Always On 설정 필요, 예측 가능한 고정 과금.
B. Durable Functions를 위한 호스팅 제약사항
- “Durable Functions(지속형 함)”는 서버리스(Azure Functions) 위에서 상태를 가지는(내구성 있는) 워크플로를 코드로 작성할 수 있게 해주는 확장
- Execution Time : Consumption Plan: Orchestrator replay 시 재실행마다 과금, 실행 시간 제한 (예: 기본 5분) 유의.
- 스케일링 및 내결함성 : Flex 및 Premium Plan에서 Availability Zone 지원 가능 → 가용성 향상.
- 스케일 아웃 성능 : Premium Plan이 더 빠른 스케일 아웃 및 긴 단일 실행 시간 지원 (30분 대 5분).
C. Durable Functions를 쓰는 목적
- 팬아웃/팬인: 1000개 작업을 병렬(Activity)로 던지고 결과 집계. 대량 처리/ETL에 적합
- 비동기 HTTP API: 230초 제한이 있는 일반 HTTP 호출 대신, “수락(202)+상태 조회 URL” 패턴으로 장기 작업 진행률을 제공.
- 휴먼 인터랙션: 승인/입력 같은 외부 이벤트를 오케스트레이터가 기다림(타이머로 타임아웃도 동시 설정).
- Aggregator/엔티티: 이벤트를 누적 집계하거나 개별 키별 상태를 관리(가벼운 가상 액터).
- 모니터 패턴: 워크플로에서 유연하고 반복되는 프로세스
3. 결론
- Durable Functions 기반 대용량 Batch 처리에서는 Premium Plan이 가장 안정적이고 확장성 있는 선택입니다. 다만, 비용 효율을 우선시한다면 Flex Consumption Plan이 현실적인 대안이 될 수 있습니다. 결국 선택은 **워크로드의 우선순위 — 성능 vs 비용 vs 가용성 — 에 따라 달라집니다.
4. 참고 문서
- Azure Functions — Premium Plan(Elastic Premium) 개요 :
https://learn.microsoft.com/en-us/azure/azure-functions/functions-premium-plan - Azure Functions — Flex Consumption 및 Scale 특징 :
https://learn.microsoft.com/en-us/azure/azure-functions/functions-scale - Azure Functions — 이벤트 기반 스케일링 설명 및 Flex/Premium 비교 :
https://learn.microsoft.com/en-us/azure/azure-functions/event-driven-scaling - Azure Functions — Dedicated App Service Plan 개요 :
https://learn.microsoft.com/en-us/azure/azure-functions/dedicated-plan - Durable Functions — 재실행(Replay) 과금 구조 설명 :
https://learn.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-billing - Azure Functions — 리던던시 및 Availability Zone 지원 :
https://docs.azure.cn/en-us/reliability/reliability-functions - https://medium.com/@testerest901/azure-function-tier-%ED%8A%B9%EC%A7%95%EC%9D%B4%ED%95%B4%EC%99%80-%EC%84%A0%ED%83%9D-%EB%8C%80%EC%9A%A9%EB%9F%89-batch%EB%A5%BC-%EC%9C%84%ED%95%9C-function-tier-a1a80a7b9324
- Durable Function 개요 : https://learn.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-overview?tabs=in-process%2Cnodejs-v3%2Cv1-model&pivots=csharp
'Azure 상식' 카테고리의 다른 글
| AKS권한 관리 방식: K8S의 IAM처리 방식의 이해 Entra ID, Service Account 등 이해와 차이점 (0) | 2025.08.22 |
|---|---|
| Azure Managed Disk 에 대한 이해 (0) | 2025.08.21 |
| RAG를 위한 저장소/DBMS Azure 서비스 선택 (0) | 2025.08.21 |
| TerraForm의 이해 (0) | 2025.08.19 |
| AKS 성능 개선에 대한 이해 (5) | 2025.08.19 |