Migrate to RunxBuild and earn up to $50 in hosting credit on your first deposit.

Calculate your savings
unxBuild
Back to Blog Explainer

Azure Bandwidth Pricing: Inbound Is Free, Outbound Is the Bill

Sean

Platform Writer

Jul 14, 2026
7 min read

Azure bandwidth pricing has one rule that explains most of it: data going in is free, data going out costs money. Egress to the internet is free for the first 100GB each month, then roughly $0.087/GB, dropping in tiers as volume climbs. That much is on the pricing page. What is not obvious is that traffic which never leaves Azure can still cost you - between availability zones, between regions, and through a VNet peering - and those internal charges are the ones that appear on the bill without ever appearing in the architecture diagram.

Azure Bandwidth Pricing: Inbound Is Free, Outbound Is the Bill

Table of contents

The basic rates

Ingress is free. Uploading to Azure, from anywhere, costs nothing. This is true across every hyperscaler, and it is not generosity - it is why getting data in is easy and getting it out is expensive.

Egress to the internet:

  • First 100GB/month: free (this was raised from 5GB and is a genuine improvement).
  • Next 10TB: roughly $0.087/GB.
  • 10-50TB: roughly $0.083/GB.
  • 50-150TB: roughly $0.07/GB.
  • Above that, it keeps stepping down, and at serious volume you negotiate.

The tiering barely matters for most teams. If you are moving under 10TB a month, your rate is effectively $0.087/GB, and the discount tiers are a rounding error.

A concrete sense of scale: 1TB of egress is about $87/month. A moderately successful media site serving 10TB is around $850/month - which for many teams is more than all their compute combined. This is the line item that quietly reorders your bill.

The internal traffic nobody budgets for

Traffic that never touches the internet is still billed, and this is where the surprises live.

Between availability zones, same region: roughly $0.01/GB, in both directions. Both. A chatty microservice architecture spread across three zones for high availability is paying for every internal call, twice.

Between regions: roughly $0.02/GB and up, depending on the geography. Continental egress from Europe to Asia costs more than within Europe.

VNet peering: billed on both sides - roughly $0.01/GB in and $0.01/GB out. Peering is not a free wire; it is a metered one.

Within a single availability zone: free.

Here is what that means in practice. A team deploys across three zones because the reliability guidance says to. The application makes chatty internal calls between services - an API talking to a cache talking to a database - and roughly two thirds of those calls now cross a zone boundary, because the scheduler placed the pods wherever there was room.

Moving 1TB/month of internal service-to-service traffic across zones costs about $20/month in each direction. That is small. Moving 50TB is $2,000, for traffic that never left the datacentre campus, to serve an availability requirement nobody quantified.

The fix, where reliability requirements permit it, is zone-aware routing - keep chatty traffic within a zone and only cross zones for genuine failover. Most teams never look at the cross-zone line at all, because it is not in the architecture diagram.

Where the egress actually comes from

Before optimising, find out what is generating the traffic. It is usually one of these, and it is usually not what people guess.

Serving media directly from storage. Images, video, and downloads streamed straight out of a blob container. Every byte is egress at full price.

API responses. Verbose JSON, at scale. An API returning 50KB where 5KB would do, called ten million times a month, is 450GB of pure waste - about $40/month to send data nobody reads.

Database replication to another region. Continuous, and priced as cross-region egress. Frequently the largest single line, and completely invisible until you go looking.

Backups leaving the region. Correct practice - a backup in the same region as the thing it protects is not much of a backup - but it is billed egress, and nightly full backups instead of incrementals multiply it.

Log and metric shipping to a third party. Datadog, Splunk, and similar receive a continuous stream of your data over the internet, and every byte is egress. Teams shipping verbose debug logs at volume are paying twice: once to Azure for the egress, once to the vendor for ingestion.

That last one is worth auditing specifically. It is common to find a meaningful monthly egress bill for logs that nobody has queried in six months.

Cutting the egress bill

In order of leverage.

1. Put a CDN in front of anything user-facing. Azure Front Door or Azure CDN caches at the edge. Cached hits never reach your origin, so you pay CDN egress (cheaper, and cheaper still at volume) instead of storage or VM egress. For any content served repeatedly, this is the single biggest lever and it usually pays for itself.

2. Compress everything. Gzip or Brotli on API responses and text assets routinely cuts payload size by 70-80%. That is a direct 70-80% cut to the egress line for that traffic, and it is a configuration change rather than a project.

3. Keep chatty traffic inside a zone. Cross-zone is $0.01/GB each way. If services talk constantly, co-locate them and use zone redundancy for failover rather than for steady-state traffic.

4. Trim the API responses. Do not return 40 fields when the client renders 6. Pagination and sparse fieldsets are performance improvements that happen to also be cost improvements.

5. Audit the log pipeline. Shipping every debug line to a third-party observability platform is expensive in egress and expensive in ingestion. Sample aggressively, and ask when anyone last queried the data you are paying twice to move.

6. Use private endpoints for Azure-to-Azure traffic where it avoids routing through the public internet.

The comparison that matters

Azure at $0.087/GB is not an outlier - it is the standard hyperscaler rate. AWS is roughly $0.09/GB and GCP is similar. The three of them price egress within a few percent of each other, which is a fact worth sitting with.

What is genuinely different is what the smaller providers do. DigitalOcean bundles a transfer allowance with each Droplet, typically 1TB, pooled across the account, with overage at $0.01/GB. Hetzner and a few others go further and effectively do not charge for egress at all.

That is roughly a 9x difference in the marginal cost of shipping a gigabyte to a user. For a compute-heavy workload with little traffic, it is irrelevant. For anything media-heavy or download-heavy, it can be the largest single factor in the total bill - larger than the compute you spent weeks choosing.

Which leads to the honest conclusion: if your workload is bandwidth-dominated, the hyperscaler egress rate is not a line item to optimise, it is a reason to reconsider the platform. No amount of compression will close a 9x gap.

And if you are staying on Azure regardless - for identity, for compliance, for the Enterprise Agreement - then model the egress explicitly at the start, because it will not shrink on its own and it grows with your success.

How this fits the rest of the stack

Whatever you decide here, the cost of the decision only shows up as a bill. The RunxBuild hosting calculator is the right place to model that before committing: the compute, the database, the storage, the bandwidth, the worker - each one is a separate line item, and the real cost of a platform is the sum, not the headline number. The RunxBuild dashboard is where the team sees the actual usage once it is running.

Useful related references:

FAQ

How much does Azure charge for bandwidth?

Ingress is free. Egress to the internet is free for the first 100GB per month, then roughly $0.087/GB for the next 10TB, with modest volume discounts above that. Internal traffic across availability zones costs about $0.01/GB in each direction.

Is data transfer into Azure free?

Yes, ingress from the internet is free across all Azure services. This is standard across the hyperscalers - getting data in is free, getting it out is where the charges are, which is also why data gravity is a real strategic concern.

Does traffic between availability zones cost money in Azure?

Yes, roughly $0.01/GB in both directions. A chatty microservice architecture spread across three zones for redundancy pays for a large share of its internal calls, and this line rarely appears in anyone’s cost model because it does not appear in the architecture diagram.

How do I reduce Azure egress costs?

Put a CDN in front of user-facing content (the biggest lever), enable gzip or Brotli compression (a 70-80% cut to text payloads for a config change), keep chatty service traffic within a single zone, trim oversized API responses, and audit what you are shipping to third-party log platforms.

Is Azure bandwidth more expensive than AWS?

No, they are within a few percent - roughly $0.087/GB versus $0.09/GB. The real gap is against providers like DigitalOcean, which bundles 1TB per Droplet with overage at $0.01/GB. That is close to a 9x difference in marginal egress cost, which matters enormously for bandwidth-heavy workloads.

#azure#bandwidth#egress#cloud-costs#dev-infra