How to Reduce Your Azure Bill: 10 Proven Steps
Most Azure bills carry 25–35% waste — and almost none of it is the big, obvious stuff. It's the orphaned disk nobody deleted, the dev VM running 24/7 that's used 9–5, the Windows licence being paid for twice, the Log Analytics workspace swallowing verbose logs at full retail. The good news: you can usually recover 15–30% of the bill without re-architecting anything.
The order below matters. Do the zero-risk waste removal first — it's pure savings that needs no sign-off and builds the credibility to make the harder calls. Then rightsize, then commit, then govern so it doesn't creep back.
1. Delete orphaned and idle resources (do this first)
The fastest money on Azure is waste that carries zero performance risk. Hunt down:
- Unattached managed disks — Portal → Disks → filter Disk state = Unattached, sort by size. A 512 GB Premium disk is ~$80/month doing nothing. (Watch the traps — see the orphaned-disks guide.)
- Unassociated public IPs — Standard SKU IPs bill even when attached to nothing.
- NAT gateways and load balancers wired to an empty backend.
- Empty App Service plans — a plan with no apps still bills for its tier.
- Old snapshots and disconnected restore points whose source no longer exists.
Across a whole tenant, find unattached disks in one query:
az graph query -q "
Resources
| where type =~ 'microsoft.compute/disks'
| where isempty(managedBy) and properties.diskState == 'Unattached'
| extend sizeGB = toint(properties.diskSizeGB)
| project name, resourceGroup, location, sizeGB
| order by sizeGB desc"
2. Turn off non-production out of hours
Dev, test, QA and demo environments rarely need to run nights and weekends — but they usually do. A VM used 50 hours a week but billed for 168 is paying ~70% for idle time.
- Set auto-shutdown on VMs (Portal → VM → Operations → Auto-shutdown), or schedule start/stop with Automation / Azure Functions.
- Remember a deallocated VM stops compute charges but its disks keep billing — so delete genuinely dead VMs, don't just stop them.
3. Rightsize over-provisioned VMs and databases
Most VMs are a size (or two) bigger than they need. Azure Advisor (Cost tab) flags low-utilization VMs using real CPU/memory/network metrics; validate against a few weeks of data, then resize down a notch in the same family.
- Consider Ampere/ARM (Dpsv5/Epsv5) or newer Intel/AMD v5/v6 SKUs — more performance per dollar.
- For SQL Database / Managed Instance, move from heavy provisioned vCores to the right tier, or to serverless for bursty workloads.
4. Apply Azure Hybrid Benefit everywhere it's eligible
If you own Windows Server or SQL Server licences with Software Assurance, Azure Hybrid Benefit stops you paying for them twice — up to ~40% off Windows VMs and significantly more on SQL. The common mistake is excluding anything tagged "dev": a dev-tagged VM in a normal subscription still pays full Windows rates and should get AHB. Only the actual Dev/Test subscription offer already bills at base rate. (Details in the Hybrid Benefit checklist.)
5. Commit: layer Reservations and Savings Plans
Pay-as-you-go is the most expensive way to run a steady workload. For anything that runs predictably:
- Reserved Instances — deepest discount (up to ~72%) for a committed VM family in a region. Best for stable baseline.
- Compute Savings Plans — slightly smaller discount, but flexible across VM family and region. Best for workloads that change.
- Layer them: reservations for the predictable floor, a savings plan over the variable top. Buy from coverage data, not a guess. (See Reservations vs Savings Plans.)
6. Right-tier your storage
- Move infrequently-read blobs to Cool or Archive tiers with lifecycle management rules.
- Drop over-provisioned Premium SSD data disks to Standard SSD where IOPS allow.
- Review storage redundancy — GRS/RA-GRS costs roughly double LRS; not every workload needs geo-redundancy.
- Clear stale Azure Backup retention and orphaned restore points.
7. Tame Log Analytics and monitoring
Monitoring is a stealth line-item. Log Analytics bills per GB ingested, and verbose diagnostic settings add up fast.
- Switch high-volume tables to the cheaper Basic/Auxiliary logs tier where you don't need full analytics.
- Buy a commitment tier if you ingest more than ~100 GB/day.
- Trim retention and turn off diagnostic categories nobody queries.
8. Cut avoidable networking and egress
- Keep chatty traffic in-region and inside the same VNet to avoid cross-region/zone egress charges.
- Use Private Endpoints / service endpoints instead of routing storage and PaaS traffic over the public path.
- Review idle VPN/ExpressRoute gateways and over-provisioned bandwidth.
9. Tag and allocate so spend has an owner
You can't reduce what nobody owns. Enforce a small set of allocation tags (owner, environment, cost-center, application) with Azure Policy, then publish a per-team showback statement. When teams see their own number, waste falls on its own. (See the tagging strategy and how to build showback.)
10. Don't forget AI spend — and make it monthly
AI is now the fastest-growing line on many Azure bills. Watch Azure OpenAI token usage: cap output, use prompt caching, route to a smaller model where quality allows, and kill zombie deployments. (See AI cost governance.)
Most importantly, make the whole review a monthly habit, not a once-a-year fire drill. Cloud churn never stops; your cadence shouldn't either.
Or do all ten in about ten minutes. The CloudFinOpsKit Tool (from $40, one-click, read-only) scans your whole tenant, finds every item above — orphaned resources, rightsizing, missing Hybrid Benefit, reservation/savings-plan gaps, Log Analytics waste, even AI spend — and prices each finding from your actual billed cost, with the exact action to take. No agents, no infrastructure, nothing changed.
Prefer the manual route first? Grab the free Azure Cost Review Checklist and make it a monthly habit.
FAQ
What's the fastest way to reduce an Azure bill?
Zero-risk waste first: orphaned disks, idle public IPs, NAT gateways and load balancers attached to nothing, and empty App Service plans. Pure savings, no performance impact, no sign-off needed.
How much can I realistically save?
Most environments carry 25–35% waste; quick wins plus rightsizing and the right commitments typically recover 15–30% without re-architecting. Azure Hybrid Benefit alone can cut eligible Windows VM costs by up to ~40%.
Reservations or Savings Plans?
Reserve the stable baseline for the deepest discount; use a compute Savings Plan for workloads that change; layer both. Always buy from coverage/utilization data, not a guess.
Related reading: the full 47-point Azure cost optimization checklist · find orphaned disks in Azure · Reservations vs Savings Plans · the best Azure cost tools in 2026