Azure 상식

Azure Function Tier 특징 이해와 선택(대용량 Batch를 위한 Function Tier)

ktzzang0601 2025. 8. 21. 00:35

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. 참고 문서