Set Azure App Gateway min instances to 0 and the bill still won't hit zero.
You pay a fixed hourly charge 24/7, whatever the instance count — that covers a 2-instance HA min, separate from CU billing (where the real ssavings are made).
tinyurl.com/wdnsn58r#Azure #FinOps
#azure #finops #applicationgateway #mvpbuzz | Michael Durkan
If you deploy Azure Application Gateway with minimum instances set to 0, don't expect the bill to come in at zero-cost. You're still paying a fixed hourly charge whether 0 or 100 instances are running.
From a FinOps perspective, Application Gateway v2 (Standard_v2 and WAF_v2) has a dual-component billing model:
- Component 1: Fixed hourly gateway charge. Billed 24/7 from the moment the gateway is provisioned, regardless of traffic, instance count, or autoscale settings. It's deployed with a minimum of two instances with automatic health monitoring and failover, independent of the autoscale minimum you set for capacity unit billing.
- Component 2: Capacity unit (CU) hourly charge. A capacity unit is measured across three dimensions and billed on whichever is highest: 2,500 persistent connections, 2.22 Mbps throughput, or 1 compute unit. Compute unit capacity is SKU-dependent — roughly 50 TLS connections/second on Standard_v2, roughly 10 concurrent requests/second on WAF_v2. Setting minimum instances to 0 means you only pay CU costs when traffic is present.
Where the real savings come from:
- Minimum instances = 0: eliminates reserved CU costs. You pay CU costs only when traffic shows up. Fixed cost remains.
- Minimum instances = 2: reserves 20 capacity units (2 instances × 10 CUs/instance) 24/7, billed regardless of traffic. That's significant variable cost on top of the always-on fixed cost.
The recommended design:
- Delete idle Application Gateways entirely. Zero traffic, 24/7 fixed charge, every hour. Redeploy from IaC when needed.
- Minimum instances = 0 for non-production. You pay the fixed charge plus real traffic only. Trade-off: a spike takes 3–5 minutes to provision a new instance.
- Minimum instances = 2 for production. Two warm instances, no cold start, immediate spike handling. The extra CU cost is the price of production readiness.
- Pre-warm predictable spikes with Azure Automation. Application Gateway doesn't support scheduled autoscaling natively. If your traffic spikes weekday mornings and drops overnight, use an Automation runbook on a timer to raise the minimum before the spike and drop it after.
The metrics to monitor:
- Estimated Billed Capacity Units (what Azure is actually charging this hour)
- Current Capacity Units (what traffic is actually using)
- Fixed Billable Capacity Units (what your minimum instance setting reserves).
If Fixed Billable Capacity Units are consistently higher than Current Capacity Units, you're paying for headroom nobody is using.
#Azure #FinOps #ApplicationGateway #MVPbuzz