Skip to main content
All posts

Guide

How to Reduce Azure Costs: The Fixes That Pay, With Real Prices

Where the Azure bill goes, what each fix saves at Microsoft's own retail prices, which commitment to buy, and the budgets and alerts that keep it down.

Bruno RochaFounder and CEO
Published
Read time
15 min
Ler em portuguêsComo reduzir custos no Azure: o que cortar, quanto economiza e em que ordem

To reduce Azure costs, find the services that drive the bill in Microsoft Cost Management, then work through the fixes that pay: delete unattached disks and empty App Service plans, deallocate VMs instead of leaving them stopped, rightsize from Azure Advisor, move logs and blobs to cheaper tiers, and put the usage you run all month on a reservation or a savings plan. Licenses you already own cut Windows prices through Azure Hybrid Benefit, and Spot VMs take most of the price off work that can stop. Then set a budget and an anomaly alert, so the next spike reaches your inbox before the invoice does.

Every price below comes from Microsoft's Azure Retail Prices API, queried on October 28, 2026: East US, retail US dollars, Linux unless noted, 730 hours a month. Negotiated EA and MCA prices differ, and Spot prices move. Signed in, the Azure Pricing Calculator estimates "with your negotiated or discounted prices".

Where is your Azure money going?

Start in Microsoft Cost Management. It comes "at no additional cost as part of Azure" (product page) and opens for anyone with access to a billing account, subscription, resource group or management group. On a new subscription, some Cost Management features can take up to 48 hours to work (recommendations tutorial). You can also ask Azure Copilot, for example "Summarize my cost for the last 6 months" (Copilot and Cost Management).

  • Turn on tag inheritance, so each cost carries an owner: Settings > Configuration > Tag inheritance > Edit > "Automatically apply subscription and resource group tags to new data". Azure copies billing, resource group and subscription tags onto the usage records and leaves the resources as they are. It works on EA and MCA. Tag inheritance.
  • Export the raw data for your own reports or a FinOps tool: Cost Management > Exports > + Create writes actual, amortized or FOCUS cost data in CSV or Parquet to Blob storage, daily or monthly. Exports.

What does one Azure VM cost under each pricing model?

A D4s v5, with 4 vCPUs, shows how far the price of one machine moves. Most fixes in this guide come back to one of these rows.

Pay-as-you-go
Hourly
$0.192
Monthly
$140.16
vs pay-as-you-go
Baseline
Savings plan, 1 year
Hourly
$0.1316736
Monthly
$96.12
vs pay-as-you-go
-31.4%
Reservation, 1 year
Hourly
$1,038 for the term ($0.1185)
Monthly
$86.50
vs pay-as-you-go
-38.3%
Savings plan, 3 years
Hourly
$0.0883584
Monthly
$64.50
vs pay-as-you-go
-54.0%
Reservation, 3 years
Hourly
$1,993 for the term ($0.0758)
Monthly
$55.36
vs pay-as-you-go
-60.5%
Spot, price on October 28, 2026
Hourly
$0.040531
Monthly
$29.59
vs pay-as-you-go
-78.9%
Rightsized to a D2s v5
Hourly
$0.096
Monthly
$70.08
vs pay-as-you-go
-50.0%
Office hours: 10 h a day, 5 days a week, deallocated otherwise (about 217 h)
Hourly
$0.192
Monthly
$41.71
vs pay-as-you-go
-70.2%
Windows, pay-as-you-go
Hourly
$0.376
Monthly
$274.48
vs pay-as-you-go
Windows baseline
Windows with Azure Hybrid Benefit
Hourly
$0.192
Monthly
$140.16
vs pay-as-you-go
-48.9% vs Windows
Windows on Dev/Test pricing
Hourly
$0.192
Monthly
$140.16
vs pay-as-you-go
-48.9% vs Windows

Source: Azure Retail Prices API, East US, Linux unless noted, queried October 28, 2026. 730 hours a month; a reservation's monthly figure is its term price divided by 12 or 36.

Windows VMs bill on two meters. In Microsoft's words, there's "a compute meter, which is same as the Linux meter, and a Windows server license" (VM reservations). Reservations and savings plans discount the compute meter, and Hybrid Benefit drops the license meter, so on Windows you combine the two.

Which Azure resources are you paying for but not using?

Unattached managed disks

Microsoft's disk guide warns: "After a VM is deleted, you will continue to pay for unattached disks" (find unattached disks). In the portal, open Disks, filter Disk state to Unattached, and delete the ones nobody claims. Deletion is permanent, so confirm with the owner first. An orphaned 1 TiB Premium SSD P30 costs $135.17 a month, $1,622.04 a year. A forgotten 128 GiB P10 costs $19.71 a month.

Public IP addresses

Azure bills a static public IP "irrespective of the associated resource", and the billing clock stops only when you delete the address (IP address pricing). Standard SKU addresses are always static, and Microsoft retired Basic SKU public IPs on September 30, 2025 (public IP addresses). An unattached Standard IPv4 address lists at $0.005 an hour, about $3.65 a month or $43.80 a year. To find the strays, the Azure Optimization Engine in Microsoft's open-source FinOps toolkit lists orphaned public IPs and orphaned disks in its weekly recommendations. It deploys with Deploy-AzureOptimizationEngine.ps1 in less than five minutes.

Empty App Service plans

Deleting the last app leaves the plan billing. Microsoft: "When you delete all apps in an App Service plan, the plan continues to accrue charges ... delete the plan or scale it down to Free tier" (App Service costs). An empty P1 v3 plan costs $113.15 a month on Linux ($0.155 an hour) or $229.95 on Windows ($0.315 an hour). Advisor flags them with "Unused or empty App Service plan", a check in preview (Advisor cost recommendations).

VMs that are stopped but still allocated

Microsoft's page on VM states lists Stopped (Allocated) as billed and Deallocated as not billed (states and billing). A D4s v5 you stopped and left allocated keeps costing $0.192 an hour, $140.16 a month. Check the power state of every VM your team calls "off", and deallocate the ones still allocated.

Gateways with no connections

Advisor's cost checks also flag virtual network gateways with no connections, a check in preview, and AKS clusters that could use Spot nodes or a different autoscaler profile (Advisor cost recommendations).

How do you rightsize Azure VMs and databases?

Start with Azure Advisor, which Cost Management calls "your first stop" and which updates its recommendations daily (Cost Management overview). Its VM rules recommend a shutdown when "P95 of the maximum value of CPU utilization summed across all cores is less than 3%", and a resize from CPU, memory and outbound network use over 7 to 90 days, B-series sizes included. Configuration > VM/Virtual Machine Scale Sets right sizing sets a CPU filter per subscription (Advisor VM rules). A VM needs 14 days of activity before Advisor rates it (recommendations tutorial).

One size down halves the line: a D4s v5 at $140.16 a month becomes a D2s v5 at $70.08. Check your commitments before you resize, because Advisor's recommendations "don't take into account the presence of Reserved Instances (RI) / Savings plan purchases". For VMs and scale sets, the Azure Copilot Optimization Agent, in preview, "generates Azure CLI or PowerShell scripts that you can deploy". You open it from Copilot, or with Optimize on an Advisor recommendation (Optimization Agent).

Azure SQL databases that sit idle most of the day

Move intermittent databases to the serverless tier. Azure bills its compute per second and pauses the database after a delay you choose: 15 minutes at least on General Purpose, 60 on Hyperscale. A paused database pays for storage alone. General Purpose Gen5 serverless costs $0.521758 per vCore-hour, so a development database that averages about 1 vCore for 8 hours on 22 weekdays uses 176 vCore-hours: $91.83 a month in compute, plus storage at $0.115 per GB-month.

When should you turn Azure VMs off?

At night and on weekends, for anything outside production, and deallocated each time. A development VM that runs 10 hours a day, 5 days a week bills about 217 hours a month. On a D4s v5 that comes to $41.71 instead of $140.16, 70.2% less. Auto-shutdown covers the evening: on the VM, open Operations > Auto-shutdown, switch it On, set the time, and add an email or webhook notice if you want a warning before it runs.

If your developers hold active Visual Studio subscriptions, Azure Dev/Test pricing gives Windows VMs "Savings up to 55%" and also covers SQL Database, App Service, Logic Apps and more. A Windows D4s v5 on the Dev/Test meter costs $140.16 a month, the Linux price, against $274.48 at pay-as-you-go.

Should you buy Azure reservations or a savings plan?

Both trade a one- or three-year commitment for a lower rate. Azure Reservations take "up to 72%" off pay-as-you-go, apply hourly, and cost the same total whether you pay upfront or monthly. A reservation is a billing discount and doesn't guarantee capacity (VM reservations). A savings plan commits you to a fixed dollar amount per hour, and Azure applies it each hour to the usage with the highest discount first. "Unused commitment for an hour expires and doesn't roll over." Microsoft sells two plans (savings plan offers):

  • Savings plan for compute, up to 65% off: VMs, Dedicated Host, Container Instances, Container Apps, Functions premium, App Service and Spring Apps Enterprise.
  • Savings plan for databases, up to 35% off: SQL Database (serverless and Hyperscale too), SQL Managed Instance, PostgreSQL, MySQL, Cosmos DB, and SQL Server licenses on VMs and Arc.

On the D4s v5, the reservation wins on price: $55.36 a month over 3 years against $64.50 on a 3-year savings plan, and $86.50 against $96.12 over 1 year. The savings plan follows your usage across the services it covers, which suits compute that changes shape. Read the rules before you buy:

  • Azure applies reservation benefits first (discount application), and "Savings plan purchases can't be canceled or refunded" (savings plan overview).
  • Reservation refunds stop at "USD 50,000 in a 12-month rolling window", with no early termination fee for now (exchange and refund policy).
  • "Starting February 1, 2027, reservations purchased after this date aren't eligible for exchange if the corresponding service is supported by savings plans": VMs, App Service, SQL Database and similar services. Reservations bought before then keep "one final exchange", and trading a reservation in for a savings plan stays as it is (exchange and refund policy).
  • Microsoft sets the order: rightsize first, because "Discounts reduce rates, not waste", trade in reservations you underuse, reserve the stable workloads, then cover the clean baseline with a savings plan (choose between them).

You buy either in the portal: Reservations > Add, or Savings plans > Add, then enter the hourly commitment (buy a savings plan). App Service plans you keep take commitments too. A P1 v3 Linux plan at $113.15 a month drops to $73.75 on a 1-year reservation ($885 for the term, 34.8% less) or $51.08 on 3 years ($1,839, 54.9% less); the savings plan prices are $84.86 for 1 year and $62.23 for 3. The tools that buy and manage Azure commitments for you are in The Best FinOps Tools for Azure.

How much does Azure Hybrid Benefit save?

On a Windows D4s v5, $134.32 a month: the price falls from $274.48 to $140.16, 48.9% less. Azure Hybrid Benefit covers Windows Server and SQL Server licenses with active Software Assurance or qualifying subscriptions, plus RHEL and SLES. Microsoft quotes "up to 76% versus pay-as-you-go pricing" for Linux, and the offer includes 180 days of migration rights. Turn it on with the Licensing checkbox on the VM's Basics tab, or with --license-type Windows_Server. Existing VMs convert in place (Hybrid Benefit for Windows).

Where do Spot VMs fit?

Spot fits work that can stop at short notice and pick up again. Microsoft sells Azure Spot VMs at "up to 90%" off pay-as-you-go. On October 28, 2026, a D4s v5 on Spot cost $0.040531 an hour, or $29.59 a month, 78.9% under pay-as-you-go. Azure can evict a Spot VM "with 30-seconds notice", with no SLA, and you choose what eviction does: Deallocate, the default, or Delete, which also ends the disk charges (Spot VMs). In the portal, select Yes for an Azure Spot instance on the VM's Basics tab, then pick the eviction type and policy (Spot in the portal).

How do you cut Azure disk and storage costs?

Move disks off Premium SSD where the IOPS allow

Premium SSD v2 bills $0.00011 per GiB-hour. "All Premium SSD v2 disks have a baseline IOPS of 3,000" and "a baseline throughput of 125 MB/s that is free of charge", and Microsoft says it performs better than Premium SSD "while also generally being less costly". It can't be an OS disk (disk types). Standard SSD costs less per GB again and adds $0.002 per 10,000 transactions; Standard HDD adds $0.0005.

128 GiB
Premium SSD
P10: $19.71
Premium SSD v2
$10.28 (-47.8%)
Standard SSD
E10: $9.60 (-51.3%)
Standard HDD
S10: $5.888
1 TiB
Premium SSD
P30: $135.17
Premium SSD v2
$82.23 (-39.2%)
Standard SSD
E30: $76.80 (-43.2%)
Standard HDD
Not compared

Monthly prices, East US, Azure Retail Prices API, October 28, 2026. Standard SSD and HDD add per-transaction charges.

Keep each blob in the tier that matches how often you read it

Blob storage has four access tiers: hot, cool, cold and archive. A fifth option, smart tier, moves your data between hot, cool and cold based on how you use it. Azure charges a prorated early deletion fee on data you delete before the tier's minimum: 30 days in cool, 90 in cold, 180 in archive. Archive is offline, and getting data back takes time "on the order of hours" (access tiers). The colder the tier, the more each read and retrieval costs, so keep the data you read every week in hot.

Hot
Per GB-month
$0.0208 (first 50 TB)
10 TB (10,240 GB) a month
$212.99
vs Hot
Baseline
Cold
Per GB-month
$0.0036
10 TB (10,240 GB) a month
$36.86
vs Hot
-82.7%
Archive
Per GB-month
$0.00099
10 TB (10,240 GB) a month
$10.14
vs Hot
-95.2%

Source: Azure Retail Prices API, East US, queried October 28, 2026. Storage only; reads, writes and retrieval bill on top.

Lifecycle rules move the data for you. "Lifecycle management policies are free of charge", though Azure bills the Set Blob Tier calls they make. A rule can key on last access time, and it takes up to 24 hours to apply (lifecycle management).

How do you cut Log Analytics costs?

Log Analytics bills by the GB you ingest, and you pick the plan table by table (Azure Monitor Logs costs). Analytics costs $2.30 per GB, with the first 5 GB listed at $0 in the API. Basic costs $0.50 per GB to ingest, 78% less, and Auxiliary $0.05. Basic also bills its queries, at $0.005 per GB scanned. Move verbose tables to Basic or Auxiliary; Advisor points at candidates with "Consider configuring the cost effective Basic logs plan on selected tables". For the tables that stay on Analytics, commitment tiers start at 100 GB a day and hold you for a 31-day commitment period. Microsoft puts the saving at "as much as 30 percent", and the top tier lists at 36% off.

100 GB a day
Per day
$196
Effective per GB
$1.96
vs $2.30 pay-as-you-go
-14.8%
1,000 GB a day
Per day
$1,700
Effective per GB
$1.70
vs $2.30 pay-as-you-go
-26.1%
5,000 GB a day
Per day
$8,050
Effective per GB
$1.61
vs $2.30 pay-as-you-go
-30.0%

Source: Azure Retail Prices API, East US, queried October 28 and 29, 2026. Tiers run up to 50,000 GB a day, at $73,600 a day ($1.47 per GB, -36.0%).

At 100 GB a day for 30 days, Analytics on pay-as-you-go costs $6,900, the 100 GB tier $5,880 ($1,020 less), and Basic ingestion $1,500 before its query charges. Retention adds its own line. Analytics ingestion includes 31 days of retention, so cutting it below 31 saves nothing. Longer analytics retention costs $0.10 per GB-month, and long-term retention (Data Archive) $0.02 per GB-month, for up to 12 years (data retention).

How do you set an Azure budget with alerts?

You need Contributor or Cost Management Contributor on the scope. The steps follow Microsoft's budgets tutorial:

  • Sign in to the Azure portal, open the subscription, resource group or management group, and select Budgets. The Scope pill switches scope.
  • Select + Add. Check the scope and add filters, for example one resource group or the Virtual Machines service.
  • Name the budget and pick a reset period: Monthly, Quarterly or Annually (Billing month, quarter or year on pay-as-you-go). Set the expiration date.
  • Enter the amount. Azure suggests one "based on the highest forecasted cost".
  • Select Next and add alert conditions: Actual or Forecasted, each with a percentage threshold between 0.01% and 1000%, up to five conditions. Add up to five emails and pick the email language. On subscription and resource group budgets, an action group can run automation when an alert fires.
  • Select Create, and add azure-noreply@microsoft.com to your safe senders.
  • Add an anomaly alert next: Cost Management > Cost alerts > + Add, alert type Anomaly (anomaly alerts).

A budget warns you and stops nothing. Azure evaluates it every 24 hours, on actual cost (not amortized), and in Microsoft's words, "Resources aren't affected, and your consumption isn't stopped." To keep reservation and Marketplace purchases out of the total, filter Publisher Type = Azure and Charge Type = Usage. Anomaly alerts work at subscription scope, up to five per subscription. Azure checks each day against a forecast "based on the last 60 days" and runs the check "36 hours after the end of the day (UTC)", so expect an alert about a day and a half after the spend. Detection starts once you open a smart view in Cost Analysis.

In what order should you cut Azure costs?

Free fixes first, commitments last. Delete what nobody uses, deallocate and schedule non-production, rightsize, move storage and logs to the right tier, and commit to the baseline that remains. Microsoft's commitment guidance runs in the same order: right-size before any discount, then reservations, then a savings plan (choose between them). Its Well-Architected Framework frames cost optimization as five design principles:

  • Develop cost-management discipline.
  • Design with a cost-efficiency mindset.
  • Design for usage optimization.
  • Design for rate optimization.
  • Monitor and optimize over time.

The cost optimization checklist breaks them into items CO:01 to CO:14. Seven of them map onto this guide: CO:03 "Collect and review cost data", CO:04 "Set spending guardrails", CO:05 "Get the best rates from providers", CO:07 "Optimize component costs", CO:08 "Optimize environment costs", CO:10 "Optimize data costs" and CO:12 "Optimize scaling costs". If you pay for more than one cloud, continue with our guide to reducing cloud costs; How to Reduce Your AWS Bill prices the AWS fixes.

Common mistakes when cutting Azure costs

  • Buying a reservation or savings plan before deleting idle resources and rightsizing, which locks a discount onto waste.
  • Treating a stopped VM as off when Azure shows it as Stopped (Allocated), a state it still bills.
  • Deleting every app in an App Service plan and leaving the plan, which keeps billing.
  • Moving blobs to archive and reading them back within weeks: you pay the early deletion fee and wait hours for the data.
  • Resizing from Advisor without checking commitments, since Advisor's VM recommendations ignore reservations and savings plans.
  • Reading a budget as a spending cap. It sends email and leaves your resources running.

Can a tool do this work for you?

Microsoft's own tools cover most of this guide. A FinOps platform pays off once Azure shares the bill with other clouds, SaaS and AI, or the fixes outgrow the people who apply them. We compare Microsoft's tools and the third-party options in The Best FinOps Tools for Azure.

LevelFour reads your Cloud, SaaS, and AI bills in one view, finds the savings, and ships each one: applied in your cloud or SaaS account with access scoped to that one change, as a pull request to your infrastructure code, or as manual steps. Savings Audit confirms each saving on the bill, and LevelFour buys and renews your Azure reservations and savings plans (Azure commitments). Cloud Savings costs 30% of realized savings, and plans start at $30 a month (pricing). You can also buy LevelFour on the Azure Marketplace.

See what LevelFour can save you in 5 minutes, with read-only access.

Frequently asked questions

How can I reduce Azure costs quickly?

Delete unattached disks and empty App Service plans, and deallocate VMs left in Stopped (Allocated). In East US, an orphaned 1 TiB Premium SSD costs $135.17 a month and an empty P1 v3 Linux plan $113.15. Then move verbose Log Analytics tables to the Basic plan, rightsize from Azure Advisor, and commit to the usage that stays steady.

Should I buy Azure reservations or a savings plan?

Reservations for steady usage, a savings plan for compute that changes. On a D4s v5 in East US, a 3-year reservation costs $55.36 a month and a 3-year savings plan $64.50, against $140.16 pay-as-you-go. Azure applies reservations first, savings plans can't be canceled or refunded, and reservations bought after February 1, 2027 can't be exchanged on services that savings plans cover. Choose between a savings plan and a reservation.

How much does Azure Hybrid Benefit save?

On a Windows D4s v5 in East US, $134.32 a month, from $274.48 to $140.16 (48.9%), because it drops the Windows license meter. Microsoft quotes up to 76% for RHEL and SLES. It needs Windows Server or SQL Server licenses with active Software Assurance or qualifying subscriptions. Azure Hybrid Benefit.

How do I find unattached disks and idle resources in Azure?

In the portal, open Disks and filter Disk state to Unattached. Azure Advisor lists empty App Service plans, virtual network gateways with no connections and unattached disks, all three in preview, and the Azure Optimization Engine in Microsoft's FinOps toolkit adds orphaned public IPs in its weekly recommendations. Find unattached disks.

Does an Azure budget stop my resources?

No. A budget sends alerts at the thresholds you set, and Microsoft says "Resources aren't affected, and your consumption isn't stopped." Azure also evaluates budgets every 24 hours, so an alert can arrive after the spend. To act on an alert, attach an action group on a subscription or resource group budget. Budgets tutorial.

Does Azure Advisor reduce costs?

Advisor finds the savings and you make the change. It recommends shutting down VMs whose P95 CPU stays under 3%, resizing others, deleting idle resources and buying commitments. Its VM recommendations ignore the commitments you already hold, so check those first. The Azure Copilot Optimization Agent (preview) turns a VM recommendation into a script you deploy. Advisor cost recommendations.

Try LevelFour free for 14 days

See what it saves on your cloud, SaaS, and AI bills. No credit card required.

Start free trial

See what LevelFour can save you