The order matters
- Visibility (who spends what)
- Waste removal
- Rightsizing and scheduling
- Licensing benefits
- Commitments (reservations, savings plans)
- Governance to keep it there
Committing before rightsizing locks in waste for one to three years.
1. Visibility
- Required tags (
owner,costcenter,env,app) enforced by Azure Policy; inherit tags to costs in Cost Management. - Monthly cost views per app and per owner, emailed automatically.
az consumption usage list --start-date 2026-09-01 --end-date 2026-09-30 \
--query "[].{name:instanceName, cost:pretaxCost}" -o table | sort -k2 -nr | head -20
2. Waste
# Unattached managed disks
az disk list --query "[?diskState=='Unattached'].{name:name, rg:resourceGroup, gb:diskSizeGb, sku:sku.name}" -o table
# Unassociated public IPs
az network public-ip list --query "[?ipConfiguration==null].{name:name, rg:resourceGroup}" -o table
# Deallocated VMs still paying for disks
az vm list -d --query "[?powerState=='VM deallocated'].{name:name, rg:resourceGroup}" -o table
Also: old snapshots, empty App Service plans, idle load balancers and gateways, forgotten test environments, Log Analytics tables nobody queries.
- Unattached disks, IPs and snapshots reviewed and deleted
- Empty plans and idle gateways removed
3. Rightsize and schedule
az advisor recommendation list --category Cost -o table
- VMs below about 20% CPU and memory for 30 days downsized
- Dev/test VMs auto-shutdown (
az vm auto-shutdown -g rg -n vm --time 1900) - Non-prod AKS node pools scaled down or stopped out of hours
- Storage lifecycle rules move cold blobs to cool/cold/archive tiers
- Premium disks that don't need the IOPS moved to Standard SSD or Premium SSD v2
4. Licensing
- Azure Hybrid Benefit applied to Windows Server and SQL Server where you own eligible licences with Software Assurance
- Dev/test subscriptions use Dev/Test pricing offers where eligible
az vm update -g rg-app -n vm-app01 --license-type Windows_Server
5. Commitments
| Instrument | Best for | Flexibility |
|---|---|---|
| Reservations | Stable, specific resources (VM family/region, SQL vCores, Cosmos RU, storage) | Lower; exchanges have rules |
| Savings plan for compute | Steady compute spend that changes shape (VM sizes, regions, App Service, Functions Premium, Container Apps) | Higher |
Use Advisor's reservation and savings plan recommendations based on the last 30–60 days after rightsizing. Start with a commitment that covers your stable baseline, not your peak.
- Commit after rightsizing, at baseline level
- Utilisation of reservations and savings plans reviewed monthly
6. Keep it going
- Budgets with alerts per subscription and per app owner
- Anomaly alerts in Cost Management
- Monthly FinOps review with engineering owners, tracking savings achieved