Azure Pay As You Go Pricing: A Real Cost Breakdown

Alberto Grande
Head of Marketing

Azure pay as you go pricing looks simple on the surface. You pick a VM size, Azure shows an hourly rate, and you multiply by the hours you expect to run. The trouble starts when that number meets a real invoice. The Azure Pricing Calculator, the tool most teams reach for when they want an azure calculator pricing estimate, is built around list prices for isolated resources. It does not model how your workloads actually consume compute, storage, and bandwidth across a full month. This guide breaks down what azure pay as you go pricing really costs. Every VM rate below comes from a live snapshot of the same dataset that powers DevZero's instance pricing explorer, and the sections after it show where a calculator estimate tends to drift from the bill.
Last updated: 2026-09-06 — Azure VM pricing, East US.
Live pay-as-you-go VM prices#
Pay as you go (also called on-demand) means you are billed per second of VM uptime with no upfront commitment, rounded up and reported hourly. The table below lists the SKUs DevZero tracks for Azure reference pricing in East US, with vCPU, memory, the current on-demand hourly rate, and an approximate monthly figure at 730 hours of continuous use.
| VM Type | vCPU | RAM | On-Demand $/hr | Approx $/month |
|---|---|---|---|---|
| D2s_v5 | 2 | 8 GiB | $0.0960/hr | ~$70.08/mo |
| D4s_v5 | 4 | 16 GiB | $0.1920/hr | ~$140.16/mo |
| D8s_v5 | 8 | 32 GiB | $0.3840/hr | ~$280.32/mo |
| E4s_v5 | 4 | 32 GiB | $0.2520/hr | ~$183.96/mo |
| B2s | 2 | 4 GiB | $0.0416/hr | ~$30.37/mo |
| B4ms | 4 | 16 GiB | $0.1660/hr | ~$121.18/mo |
Those monthly numbers assume the VM never turns off. That is the right assumption for a production node pool and the wrong one for a build agent that runs eight hours a day. The calculator will happily quote either, so the hours input matters more than the rate.
For contrast, here is how the same D-series SKUs price under Spot (spare capacity, evictable at short notice):
| VM Type | On-Demand | Spot |
|---|---|---|
| D2s_v5 | $0.0960/hr | $0.0203/hr (~79% off) |
| D4s_v5 | $0.1920/hr | $0.0405/hr (~79% off) |
| D8s_v5 | $0.3840/hr | $0.0811/hr (~79% off) |
And under a Reserved Instance commitment, using D2s_v5 as the reference SKU for the 1-year and 3-year discount curve:
| Reservation Term | Rate | Discount vs On-Demand |
|---|---|---|
| 1 year | $0.0592/hr | ~38% |
| 3 years | $0.0379/hr | ~60% |
Same hardware, three very different rates. Pay as you go is the most expensive per hour and the most flexible. It is the correct default for workloads that are new, spiky, or short-lived, and an expensive habit for anything that runs predictably around the clock.
What the Azure Pricing Calculator doesn't tell you#
The calculator is a good list-price lookup and a poor forecast. A few reasons the estimate and the invoice diverge:
- List price is not your price. Enterprise Agreement and Microsoft Customer Agreement customers get negotiated discounts that the public calculator never reflects. If your organization has a committed spend deal, the real VM rate can sit well below the number on screen.
- Egress is under-modeled. The calculator has a bandwidth line item, but you have to know your outbound GB per month to fill it in, and most teams guess low. Chatty microservices, container image pulls, and log shipping all count.
- No rightsizing. The calculator prices the SKU you type in. It has no opinion on whether a D8s_v5 that sits at 12 percent CPU should have been a D2s_v5. Oversizing is invisible to it.
- Dev/test rates differ. Azure Dev/Test subscriptions and offers carry different pricing than production pay as you go. A single calculator estimate blends poorly across both.
- Currency and region drift. Rates are set per region and per billing currency. An estimate built for East US in USD will not match a deployment that landed in West Europe billed in EUR.
Treat the calculator output as a floor for a single moment in one region, not a monthly budget.
Hidden and egress costs#
VM compute is the largest line item on almost every Azure bill, but it is never the only one. The costs below rarely make it into an early estimate:
- Inter-region transfer. Replicating data or serving traffic across Azure regions is billed per GB in both directions for some paths. This is easy to trigger with multi-region databases or geo-redundant storage.
- Internet egress tiers. Outbound data to the internet is free for the first 100 GB per month, then billed per GB on a sliding scale that steps down as volume grows, per Azure's published Bandwidth pricing page (rates as of 2026-08-31). The first paid tier is the one most teams hit.
- Cross-zone traffic. Traffic between availability zones inside a region carries a per-GB charge. A workload spread across three zones for resilience pays for the privilege on every internal hop.
- Managed disks and snapshots. Every OS disk and data disk bills separately from the VM, by provisioned size and tier, not by what you write. Snapshots bill on top of that, and forgotten snapshots accumulate quietly.
- Load balancer rules. A Standard Load Balancer bills per configured rule plus per GB of data processed. Several
LoadBalancerservices means several rule charges, not one flat fee. - Log Analytics ingestion. Azure Monitor and Container Insights bill per GB ingested. Turning it on cluster-wide is one click and the meter runs from then on.
None of these appear in a per-VM rate, which is exactly why compute-only estimates come in optimistic.
Worked example: 10 D4s_v5 nodes running 24/7#
Take a small production setup in East US: ten D4s_v5 VMs on pay as you go, running continuously, each with a 256 GiB Premium SSD data disk, plus about 2 TB of internet egress per month.
Compute. Call the live D4s_v5 on-demand rate from the table above R (dollars per hour). Ten VMs at 730 hours is 10 x 730 = 7,300 instance-hours per month, so compute is 7,300 x R. Read R off the on-demand table on this page to get the current figure; it is the single largest number in this example by a wide margin.
Disks. A 256 GiB Premium SSD (P15) runs roughly $38 per disk per month on Azure's published Managed Disks pricing page (as of 2026-08-31). Ten disks is about $380 per month, independent of how much data you actually store.
Egress. The first 100 GB is free. The remaining ~1,900 GB bills at roughly $0.087 per GB in the first paid tier (Azure Bandwidth pricing, East US, 2026-08-31), so about $165 per month.
Monthly total: (7,300 x R) + $380 + $165. Compute dominates, and it is the part you have the most leverage over.
Now change the pricing model. Moving those ten nodes to a 1-year Reserved commitment cuts the compute term by roughly the discount shown in the reserved table (often around 30 to 40 percent for Dsv5), while disks and egress stay flat. Moving an interruptible subset to Spot cuts their compute term far more, at the cost of eviction risk. The disks and egress do not care which compute model you pick, which is why they become a larger share of the bill as you optimize the VMs.
DevZero's angle#
Most pay as you go waste is not a bad rate, it is idle and oversized nodes. A cluster that provisions for peak and never scales down, or pods that request 2 vCPU and use 0.4, pays full on-demand price for capacity nobody uses. DevZero rightsizes Kubernetes workloads on Azure by matching node pools and pod requests to real usage, so the hours you pay for are hours you actually need. See Kubernetes cost optimization for how that works in practice.
Last updated#
Last updated: 2026-09-06 — Azure VM pricing, East US.
The VM rates on this page are a live snapshot from the same dataset that powers DevZero's /instances pages, so they refresh on every deploy. Non-VM figures (egress per GB, disk pricing, reservation discount context) cite Azure's published pricing pages as of 2026-08-31 and should be re-checked against your own region and billing currency. For a deeper look at Azure node costs, see AKS pricing, and for how Azure compares to the other two hyperscalers, see AWS vs Azure vs GCP pricing.

Alberto Grande
Head of Marketing
