Azure Billing Traps UK 2026 — Hidden Costs Explained
Seven Azure pricing traps that surprise engineers — Archive rehydration, Log Analytics 2TB minimum, NAT Gateway always-on charges, and more. UK South GBP pricing.
Prices last verified: April 2026
Seven pricing traps that have burned me or other engineers I know — with the exact cost impact and how to avoid them. All prices are UK South GBP from the Azure Retail Prices API.
Built and verified by an independent Azure engineer, frustrated with the official calculator.
Overview
I have been burned by Azure pricing traps three times. Each time, the bill was 10× what I estimated. Each time, the trap was documented — but buried in a footnote or pricing page footnote that you only find after the invoice arrives.
This guide collects every trap I have personally encountered or verified against real invoices, with the exact cost impact and how to avoid it. These are not theoretical edge cases; they are mistakes that production engineering teams make regularly because the pricing model is unintuitive.
All figures below are current UK South GBP pricing from the Azure Retail Prices API, updated nightly. If you find an error, email me and I will verify it against the API within 24 hours.
Trap 1: The Archive Rehydration Surprise
Archive tier storage is roughly 20× cheaper than Hot tier to store — approximately £0.001/GB/month vs £0.018/GB/month. This makes it look like the obvious choice for old data. It is not.
The trap: retrieving data from Archive tier costs £0.0157/GB plus rehydration time (hours, not seconds). If you restore 1TB of archived data once, you pay £16.07 in retrieval fees. That erases 13+ months of storage savings in a single operation.
Real example
In March 2025, I archived 500GB of old logs thinking I would save £8.50/month. I needed them 3 months later for an audit. Rehydration cost: £7.85. My "savings": £25.50 over 3 months. Retrieval cost: £7.85. Net savings after one restore: £17.65. Not worth the operational complexity.
The second restore would have made Archive tier more expensive than keeping the data in Hot tier the entire time.
The break-even math
Archive storage saves ~£0.017/GB/month. Archive retrieval costs £0.0157/GB. If you restore data more than once every 11 months, Archive is more expensive than Hot.
How to avoid it
Trap 2: The 2TB Log Analytics Restore Floor
Log Analytics Restore operations have a 2,000GB minimum billing floor. Restore 1GB of archived data, you are billed for 2,000GB. At PAYG rates (£2.167/GB), that is approximately £4,334 for restoring 1GB of data.
Real example from Reddit
A user DM'd me: they restored 50MB of archived security logs for a compliance check. The invoice line item: £4,334. They thought the calculator was wrong. It was not — they triggered the 2TB minimum billing floor. The Restore operation is designed for bulk data recovery, not selective queries.
Critical distinction
Restore is for bringing archived data back to interactive (Analytics) tier. Search Jobs are for querying archived data in place. If you need to investigate archived logs, use Search Jobs. Never use Restore for small data pulls.
How to avoid it
Trap 3: NAT Gateway Always-On Charges
NAT Gateway has no pause, stop, or idle state. It bills every hour until deleted. An idle NAT Gateway costs approximately £33.12/month in UK South forever.
This is particularly painful in dev/test environments where engineers create a NAT Gateway for testing, forget about it, and leave it running for months.
My personal burn
I left a NAT Gateway running in a test environment for 4 months. Cost: £132.48. I used it for approximately 2 hours of actual testing. The rest of the time it was idle, burning £0.045/hour for no purpose.
| Scenario | Monthly cost | Annual cost |
|---|---|---|
| Idle NAT Gateway (0GB processed) | £33.12 | £397.44 |
| NAT Gateway + Azure Firewall idle | ~£290 | ~£3,480 |
| NAT Gateway (100GB processed) | £33.12 + £3.50 | £439.44 |
How to avoid it
Trap 4: Blob Storage Early Deletion Penalties
Cool, Cold, and Archive tiers have minimum retention periods. Delete data early and you are charged for the full minimum period anyway.
| Tier | Minimum retention | Penalty if deleted early |
|---|---|---|
| Hot | None | None |
| Cool | 30 days | Charged for 30 days regardless of actual storage time |
| Cold | 90 days | Charged for 90 days regardless of actual storage time |
| Archive | 180 days | Charged for 180 days regardless of actual storage time |
Real example
Moved 2TB to Cool tier for a "temporary" archive. Deleted after 15 days because the project scope changed. Charged for 30 days anyway — extra cost of approximately £240 for data I did not actually store. The early deletion penalty for 2TB in Cool tier is significant.
How to avoid it
Trap 5: Basic Logs Query Cost Trap
Basic Logs are 78% cheaper to ingest than Analytics Logs (£0.46/GB vs £2.13/GB). This makes them look attractive for verbose logs like AppServiceHTTPLogs or NetworkFlow.
The trap: Basic Logs charge £0.0046/GB per query. Query the data 100 times and you have paid £0.46/GB in query costs — the same as Analytics Logs ingestion. Plus Basic Logs have no alert rules and only 8-day retention.
The break-even math
Analytics Logs: £2.13/GB ingestion, free queries. Basic Logs: £0.46/GB ingestion, £0.0046/GB per query. Querying more than 363× per month (12× daily) makes Basic more expensive than Analytics for the same data volume.
How to avoid it
Trap 6: The Hub-Spoke Double NAT Gateway Charge
In hub-spoke architecture, if both hub VNet and spoke VNet have NAT Gateways for outbound internet, traffic from spoke → internet flows through both. 1GB egress through two NAT Gateways = 2GB of NAT Gateway processing billed.
Real example from NHS cloud architecture
Hub VNet with NAT Gateway for shared services. Each spoke also had NAT Gateway for "isolation." 10TB/month egress was billed as 20TB. Extra cost: £300+/month completely invisible in the official calculator because it depends on your routing architecture, not your data volume.
How to avoid it
Trap 7: Inter-Region Bandwidth Charges
Data transferred between UK South and UK West is charged at approximately £0.016/GB. Same country, different Azure region = billed from the first byte. Many engineers assume "same geo = free." It is not.
Real example
DR setup: primary in UK South, replica in UK West. 500GB/day replication. Expected cost: storage only. Actual cost: storage + £43.50/day bandwidth = £1,305/month surprise. The team assumed intra-UK transfer was free.
How to avoid it
Trap 8: ADF "Auto" DIU Defaults to 4
Azure Data Factory Copy activities default to Auto DIU selection, which means ADF picks the Data Integration Unit count at runtime. In practice, Auto almost always resolves to 4 DIUs — even for simple, small-data pipelines that would run fine on 2.
The billing impact: 4 DIUs × duration × rate vs 2 DIUs × duration × rate. Dev and test pipelines running hundreds of small copies per day accumulate 2× the expected cost.
Real example from a reader
A reader emailed after their ADF estimate came out 2× what they expected. Their dev pipeline ran 500 Copy activities per day, each lasting ~30 seconds. Auto DIU = 4. Manual DIU = 2. The difference: £18/day vs £9/day — £270/month on a dev pipeline. Production pipelines genuinely benefit from Auto, but dev/test pipelines almost never do.
How to avoid it
Trap 9: FSLogix Standard Tier Transaction Costs
Azure Files Standard tier for FSLogix profile storage looks attractive at approximately £0.056/GB/month — much cheaper than Premium at £0.192/GB/month provisioned. For a 50-user deployment with 20GB profiles, that is £56/month vs £192/month. An obvious choice.
The trap: Standard tier charges per transaction. An active VDI workload generates tens of thousands of read and write transactions per user login — profile loading, registry reads, folder redirects. The transaction cost can easily exceed the storage savings within the first month.
The break-even math
Premium is provisioned capacity, no transactions. Standard is per-GB plus £0.0113/10,000 write ops and £0.00113/10,000 read ops. An active desktop generating 500K write ops/day crosses the Premium equivalent cost within 3–5 days of the month. After that, every additional transaction makes Standard more expensive than Premium.
How to avoid it
Trap 10: Sentinel Data Lake Free Retention Cliff
Microsoft Sentinel's Data Lake tier (formerly called Auxiliary Logs) offers 3 months of free retention. This sounds generous — and it is, until month 4, when the retention billing clock starts. The billing model is different from Analytics Logs, so teams that have estimated costs using the Analytics Logs retention rate will be surprised.
The practical trap: Sentinel deployments that were architected around "3 months free" as a long-term retention strategy discover in month 4 that they need to either pay for extended retention or export and delete the data — which creates its own operational overhead.
The retention model explained
Analytics Logs: 31 days free, then £0.114/GB/month retention. Data Lake (Auxiliary): 3 months (90 days) free, then retention billing starts — at a different rate from Analytics. The two models are not interchangeable for cost planning.
A 12-month retention requirement on 100GB/day ingestion means 9 months of paid retention on Data Lake vs 11 months on Analytics. Calculate both before choosing a tier.
How to avoid it
Trap 11: Standard HDD vs Standard SSD Transaction Cap Inversion
Standard HDD managed disks are cheaper per-GB than Standard SSD. For data disks storing cold, infrequently accessed data, HDD looks like the obvious choice. The trap is in the transaction billing.
Standard HDD charges £0.000494 per 10,000 transactions. Standard SSD charges £0.000198 per 10,000 transactions. On a disk with moderate I/O — a database log, a file server, a VM with frequent small writes — the Standard HDD transaction cost can overtake the SSD storage savings within a single month.
The inversion
At identical storage capacity and IOPS, HDD can be more expensive than SSD once transaction costs are included. This is the opposite of what most engineers expect. The safe default is Standard SSD for any disk with regular read/write patterns — even if storage capacity alone would favour HDD.
How to avoid it
How to Avoid These Traps
Before provisioning any Azure resource that has a metered cost, run through this checklist. It takes 2 minutes and has saved me thousands of pounds.
Will I ever need to restore Archive data?
If yes, use Cold tier instead (addresses Trap 1)
Am I querying Basic Logs more than weekly?
If yes, switch to Analytics tier (addresses Trap 5)
Is this NAT Gateway in a dev/test environment?
If yes, set calendar reminder to delete it (addresses Trap 3)
Am I tiering data with uncertain retention?
If yes, keep in Hot tier until retention is certain (addresses Trap 4)
Do I have NAT Gateways in both hub and spoke?
If yes, remove spoke NAT Gateway immediately (addresses Trap 6)
Is my DR strategy multi-region?
If yes, add bandwidth costs to the budget explicitly (addresses Trap 7)
Is my ADF Copy activity using Auto DIU in dev/test?
If yes, set DIU = 2 explicitly to halve compute costs (addresses Trap 8)
Are my FSLogix profiles on Azure Files Standard tier?
If users log in daily, compare transaction costs against Premium provisioned (addresses Trap 9)
Am I using Sentinel Data Lake tier beyond 3 months?
If yes, model the full retention cost at month 4+ before committing (addresses Trap 10)
Did I choose Standard HDD to save on storage?
If the disk has regular I/O, check transaction costs — SSD may be cheaper (addresses Trap 11)
The Methodology page explains how I verify every price on this site against the Azure Retail Prices API. The Invoice Reconciliation guide shows how to verify the calculator against your actual Azure bill.
Official Resources
AZ-104 Microsoft Azure Administrator
From £99
AD: We earn a commission on qualifying purchases at no extra cost to you.