All Articles
Cloud Costs
AWS
GCP
Azure
FinOps

Cloud Egress Costs in 2026: AWS vs GCP vs Azure for High-Traffic SaaS Startups

Egress is the line item high-traffic SaaS founders underestimate. AWS, GCP, and Azure all dropped exit fees in 2024 under the EU Data Act, but day-to-day egress still varies 10-40 percent. The honest 2026 breakdown with public pricing tables and six tactics to cut the bill.

Avinash S
May 19, 2026
17 min read
Cloud Egress Costs in 2026: AWS vs GCP vs Azure for High-Traffic SaaS Startups

Egress is the cloud bill line item that high-traffic SaaS founders almost always underestimate. Compute and database costs are predictable. You provision them, you watch them, you pay for them. Egress is different. It scales with user behaviour, with feature shape, with one accidental misconfiguration in a webhook fanout. It hides under different names on different providers (Data Transfer Out, Internet Egress, Outbound Data Transfer), it has tiered pricing that no built-in dashboard summarises clearly, and it is the single category most likely to surprise an early-stage SaaS team on the bill that arrives after a launch week.

This is the honest 2026 breakdown of cloud egress costs across AWS, GCP, Azure, and the egress-disrupting alternatives (Cloudflare R2, Backblaze B2). What the numbers actually are. What changed after the EU Data Act forced free egress on exit in 2024. The hidden inter-region and inter-AZ bills. The six engineering tactics that move the cost needle for high-traffic SaaS, and the stage-specific recommendations for pre-seed, seed, and Series A teams.

1. What "egress" actually means on a cloud bill

Cloud egress is the umbrella term for outbound data transfer that leaves the cloud provider's network. The bill breaks it into three buckets, priced very differently from each other:

  • Internet egress. Data that leaves the provider's edge and reaches the public internet (your users, third-party APIs, on-prem systems). Most expensive bucket. Tiered by monthly volume.
  • Inter-region egress. Data moving between two regions of the same provider (e.g. ap-south-1 to us-east-1 on AWS, or asia-south1 to us-central1 on GCP). Cheaper than internet, more expensive than zero, and almost never visualised on default dashboards.
  • Inter-AZ egress. Data moving between availability zones of the same region. The smallest line item in any specific request but the largest in volume for HA architectures, since every multi-AZ Postgres replica, every Kafka broker spread across zones, every Application Load Balancer fan-out generates this traffic.

Public sources for the canonical pricing: AWS EC2 Data Transfer pricing, GCP VPC Network Pricing, Azure Bandwidth Pricing. Treat these as the single source of truth; vendor sales decks routinely round in the direction that flatters their position.

2. The 2024 EU Data Act and the new free-egress-on-exit policy

The most important regulatory change for cloud egress in the last two years is the EU Data Act, which entered into force on 11 January 2024. Articles 23 to 25 of the Act target what the EU called "unjustified obstacles to switching" between cloud providers, with the specific goal of removing egress fees as a switching barrier. The Act gave providers a transitional period and a final deadline of January 2027, after which all switching-related data transfer charges must be removed.

The hyperscalers responded in early 2024:

What this does NOT change: your day-to-day egress bill. The free-egress-on-exit policies cover only the one-time migration scenario when you fully leave the provider. Webhook traffic to a third party, user downloads from your S3 bucket, cross-cloud replication between AWS and a GCP analytics warehouse, none of that is touched by the EU Data Act provisions. The hyperscalers continue to charge their standard tiered egress rates for everything other than the explicit exit case.

Practitioner opinion: the press coverage of "AWS makes egress free" in 2024 was misleading for SaaS operators. Treat the policy as a switching-cost relief valve, not a structural change to your operating bill.

3. Internet egress: the actual per-GB numbers in 2026

The headline-grabbing numbers from each provider's pricing page, current as of May 2026. Note that GCP and Azure express egress pricing by destination zone (where the traffic lands), while AWS prices by source region (where the traffic originates), so the comparison is region-pair dependent.

AWS internet egress, US East (us-east-1) source:

  • First 10 TB / month: $0.09 per GB
  • Next 40 TB: $0.085 per GB
  • Next 100 TB: $0.07 per GB
  • Over 150 TB: $0.05 per GB (committed contract pricing can go lower)
  • First 100 GB per month is free across all AWS accounts

AWS internet egress, Mumbai (ap-south-1) source:

  • First 10 TB / month: $0.1093 per GB
  • Next 40 TB: $0.085 per GB
  • Next 100 TB: $0.082 per GB
  • Over 150 TB: $0.075 per GB

India egress is roughly 20 percent more expensive than US East at the entry tier, narrowing at higher volume. The same shape repeats for Singapore, Sao Paulo, and other emerging-market AWS regions.

GCP internet egress (worldwide destinations, excluding China and Australia):

  • First 1 TB / month: $0.12 per GB
  • Next 9 TB: $0.11 per GB
  • Over 10 TB: $0.08 per GB
  • Egress to a Google-owned destination (e.g. user traffic landing on the Google ASN): pricing varies by tier

GCP egress to Australia is priced separately and is higher; GCP egress to China is the most expensive of any provider-destination pair across the three clouds.

Azure internet egress (Zone 1 source: North America, Europe):

  • First 100 GB / month: free
  • Next 10 TB: $0.087 per GB
  • Next 40 TB: $0.083 per GB
  • Next 100 TB: $0.07 per GB
  • Over 150 TB: $0.05 per GB

Azure Zone 2 (India, Singapore, Hong Kong, Japan, Korea) is priced separately and runs around 10-15 percent higher than Zone 1 at every tier.

Cloudflare R2 (object storage, designed as an S3 alternative):

  • Internet egress: $0 per GB. Cloudflare publicly committed to zero egress fees at launch and has held the line.
  • You pay only for storage at $0.015 per GB-month and operations (Class A writes, Class B reads).

Backblaze B2 (object storage):

  • Internet egress: $0.01 per GB. Plus 3x your average storage daily egress is free under the Cloud Replication tier.

4. Inter-region egress: the bill that surprises HA architectures

The moment your architecture spans two regions, inter-region egress shows up. For high-availability database replicas, cross-region object storage replication, or multi-region Kafka, this becomes a meaningful line item that is rarely visible on default cost dashboards.

Reference numbers as of May 2026:

  • AWS: $0.02 per GB for inter-region transfer in the same continent (us-east to us-west), $0.05-$0.09 per GB for cross-continent (us-east to ap-south-1). Mumbai outbound to other AWS regions is in the $0.08-$0.09 range. AWS public pricing.
  • GCP: $0.02 per GB within North America, $0.05-$0.08 per GB cross-continent. India to North America runs at the upper end. Cloud Interconnect changes the calculation; see section 6.
  • Azure: $0.02 per GB Zone 1 to Zone 1, $0.05 per GB Zone 1 to Zone 2, $0.087 per GB Zone 2 outbound to any other zone.

Operational example. A startup running Aurora Postgres Multi-AZ in ap-south-1 with a cross-region read replica in us-east-1 will pay roughly $0.08-$0.09 per GB of WAL traffic shipped to the replica. For a transactional workload generating 200 GB of WAL per day, that is roughly $500-$550 / month on cross-region replication egress alone, on top of the database instance cost. Most early-stage teams do not see this line item because it is bundled into a generic "Data Transfer" category on the Cost Explorer default view.

5. Inter-AZ egress: the invisible HA tax

Same provider, same region, different availability zones. The smallest per-GB number on the bill, the largest cumulative line item for properly-architected HA systems.

  • AWS: $0.01 per GB in each direction (so $0.02 per GB round-trip) for inter-AZ. Same number across all regions. AWS Data Transfer within the same Region.
  • GCP: $0.01 per GB within the same region across zones, charged on the sender side only.
  • Azure: $0.01 per GB Availability Zone egress within a region.

Where this surprises teams:

  • Kafka clusters spread across three AZs. Default replication factor 3 means every produced byte is shipped to two replica brokers, both in different AZs. A 500 MB / second produce rate becomes 1 GB / second of inter-AZ traffic, or about 86 TB / day. That is $860 / day, $26,000 / month, of pure inter-AZ egress on a single Kafka cluster. The AWS MSK pricing page does not show this; it appears in EC2 Data Transfer.
  • Cross-AZ database replicas. Aurora Multi-AZ does not incur inter-AZ egress (Aurora uses a shared storage layer that pre-replicates), but classic RDS Multi-AZ does. Cloud SQL HA same shape. Verify on your specific managed database before assuming.
  • EKS / GKE cluster pods talking to each other across AZs. The default Kubernetes scheduler does not consider AZ-affinity for inter-service traffic. A pod in zone A talking to a service IP that routes to a backend pod in zone B generates inter-AZ egress on every request.

Practitioner opinion: for a high-throughput SaaS at the seed stage and beyond, inter-AZ egress is often 20-40 percent of total egress spend. The default operating posture should be: place latency-sensitive call graphs in the same AZ via topology-aware routing, and accept the slightly reduced HA blast radius. Spreading a microservice mesh across three AZs by default, with no topology awareness, is operationally expensive and almost never delivers the HA benefit it implies.

Are you overpaying for cloud?

Take the 2-min cost quiz →

6. Private connectivity: Direct Connect, Cloud Interconnect, ExpressRoute

If your egress volume to a specific destination crosses 5-10 TB / month, private connectivity becomes a real cost lever, not a luxury.

AWS Direct Connect. A 1 Gbps Dedicated Connection from an AWS Direct Connect location runs around $0.30 per port-hour plus data transfer at $0.02 per GB outbound to the internet (versus $0.09-$0.11 per GB on the standard egress path). Break-even versus standard egress: roughly 5-7 TB / month. Public reference: AWS Direct Connect pricing.

GCP Cloud Interconnect. Dedicated Interconnect at 10 Gbps runs around $1,700 / month for the port (regional availability dependent) plus $0.02 per GB outbound. Partner Interconnect at smaller commits (50 Mbps to 10 Gbps) at proportional pricing. Public reference: GCP Interconnect pricing.

Azure ExpressRoute. Local SKU starts at around $55 / month for 50 Mbps to a metro circuit; Standard SKU at 1 Gbps runs around $300 / month plus $0.025 per GB egress (Zone 1) on Metered plans, or unlimited egress on the Unlimited Data plan. Public reference: Azure ExpressRoute pricing.

For a high-traffic SaaS pushing 50-100 TB / month to a small set of large enterprise customers (typical B2B SaaS shape), private connectivity is the largest single FinOps lever. A 1 Gbps Direct Connect carrying 50 TB / month costs roughly $1,000 in port-hours and another $1,000 in data transfer, total $2,000, versus the same 50 TB at standard egress rates of $0.085-$0.09 per GB which runs $4,250-$4,500. The savings compound at higher volumes.

Caveat: private connectivity adds operational complexity (circuit ordering through a carrier or DC partner, BGP peering, routing policy, redundancy planning). For workloads under 5 TB / month it is rarely worth the engineering time.

7. CDN egress: CloudFront, Cloud CDN, Azure Front Door

For consumer-facing or content-heavy SaaS, the right question is rarely "how do I cut origin egress" and almost always "how do I serve from a cache that does not bill origin egress on every hit." The CDN tier is where this happens.

AWS CloudFront. Per-GB pricing is broadly cheaper than direct S3 / EC2 egress in most regions, especially under the free 1 TB / month tier and the CloudFront Security Savings Bundle. India (Asia Pacific) CloudFront pricing: $0.109 per GB first 10 TB, $0.085 next 40 TB. North America: $0.085 first 10 TB, $0.080 next 40 TB. CloudFront-to-S3 origin pulls are free, which is the key economic property.

GCP Cloud CDN. Cache egress to internet (cache fill from origin is free for GCS origins in the same region). Tier 1 (worldwide destinations excluding Australia, China): $0.08-$0.12 per GB depending on volume. GCP Cloud CDN pricing.

Azure Front Door / Azure CDN. Standard tier egress $0.081-$0.087 per GB for Zone 1 destinations. Azure Front Door pricing.

Cloudflare (used as a CDN in front of any origin). Cloudflare's CDN egress to internet is included in the plan flat fee. The Free, Pro ($25 / month), and Business ($250 / month) plans all carry unmetered bandwidth for typical web traffic. Enterprise plans negotiate. For an early-stage SaaS, putting Cloudflare in front of an AWS / GCP / Azure origin and caching aggressively turns most of the egress bill into a flat monthly Cloudflare fee. This is the largest possible cost lever for a content-heavy or read-heavy workload.

Note: Cloudflare's Terms of Service section 2.8 historically restricted unmetered bandwidth for non-HTML / non-website traffic on lower tiers. Video streaming, large file distribution, and similar workloads can trip the AUP. Read the AUP before betting your architecture on "unmetered."

8. Object storage egress: S3, GCS, Azure Blob, R2, B2

Object storage egress deserves its own treatment because it is the single most common surprise on a startup's bill. Numbers as of May 2026:

  • S3 internet egress (us-east-1): $0.09 per GB tier 1 (uses the same EC2 Data Transfer Out tiering).
  • S3 internet egress (ap-south-1): $0.1093 per GB tier 1.
  • S3 to CloudFront: free ("origin fetch"). This is why CDN-fronted S3 is the standard pattern.
  • GCS internet egress (worldwide, tier-1 excluding China and Australia): $0.12 per GB first 1 TB, $0.11 per GB next, $0.08 per GB over 10 TB.
  • Azure Blob internet egress (Zone 1): $0.087 per GB first 10 TB.
  • Cloudflare R2 internet egress: $0 per GB. Architecturally the most disruptive option for egress-heavy workloads.
  • Backblaze B2 internet egress: $0.01 per GB, with the first 3x of daily storage free.

For pure object storage backed by frequent egress (CDN origin for static assets, software downloads, media libraries, on-demand video) the gap between R2 / B2 and the hyperscalers is structural. A 100 TB / month egress workload runs roughly $8,500-$10,000 on S3 / GCS / Blob, $1,000 on B2, and effectively zero on R2 (only the storage and operations fees, around $1,500 / month for 100 TB stored).

Practitioner opinion: if you are running a static-asset-heavy SaaS and your egress bill is more than $2,000 / month, R2 or B2 should be on your six-month roadmap. The migration is mechanical and the savings recover the engineering time within one to two billing cycles.

9. Which SaaS workload shapes get hurt most by egress

Some workloads are egress-light by nature; others are structurally egress-heavy. Recognising your shape early matters because the architectural response is different for each.

  • API-only SaaS (CRM, accounting, project management). Egress is usually 5-15 percent of bill. Response sizes are small, JSON payloads compress well, mostly TLS overhead. Low priority for egress optimisation work.
  • Webhook-heavy fintech and notification platforms. Outbound webhook delivery to thousands of external endpoints, often retrying on failure. Egress can run 15-30 percent of bill. Look at retry-storm patterns, exponential backoff configuration, and dead-letter queues before optimising the data path itself.
  • Media-heavy SaaS (video editing, photo sharing, podcast hosting). Egress is often 40-70 percent of the bill once the user base crosses a few thousand active accounts. R2 / B2 plus aggressive CDN caching is the structural fix. Origin-served media without a CDN is a financial mistake at scale.
  • Data and analytics SaaS (BI, data warehouse, observability). Egress shows up two ways: customer-facing exports (CSV / Parquet downloads) and cross-cloud replication if the analytics tier lives somewhere different from operational data. Cross-cloud replication is the more dangerous of the two because it is steady, predictable, and rarely visible to the engineering team.
  • AI inference SaaS. Egress includes both the response payloads (large for image / video generation, small for text) and any audio / video streaming back to the client. For a video-generation SaaS pushing 50-200 MB outputs at scale, egress can equal compute spend.

10. Six engineering tactics that move the egress bill

In order of leverage, highest first:

(a) Put a CDN in front of everything that can cache. CloudFront, Cloud CDN, Azure Front Door, Cloudflare. The economics of S3-to-CloudFront-free and Cloudflare's flat-fee bandwidth make this the single biggest cost lever for any read-heavy workload. If you are not running a CDN today, this is week-one work.

(b) Move static-asset and download-heavy object storage to R2 or B2. If your egress is dominated by static-asset serving, the price differential is too large to ignore. R2 specifically eliminates the egress line item entirely. The S3 API compatibility makes the migration a config change for most SDK-based workflows.

(c) Topology-aware AZ routing for inter-service traffic. In Kubernetes, use service topology hints or the TopologyAwareRouting feature to keep client-server traffic in the same AZ when possible. In AWS classic VPC architectures, place tightly-coupled services (web server + cache + database) in the same AZ. Accept that one-AZ-down loses that service tier, and rely on multi-AZ ELB / ALB for fan-out resilience rather than mesh-level multi-AZ chatter.

(d) Compress everything. gzip, Brotli, and zstd at the application level for HTTP responses. zstd at the storage tier for cold data. For JSON-heavy APIs, Brotli at quality 4-6 typically compresses 60-75 percent versus uncompressed, and your egress bill drops in roughly the same proportion for that traffic.

(e) Replace cross-cloud or cross-region replication with private connectivity. If you have a steady 5+ TB / month flowing between AWS and GCP, or between two AWS regions, the economics of Direct Connect / Interconnect / ExpressRoute pay back inside a quarter for most volume tiers. Combine with replication-friendly database engines that ship deltas rather than full rows.

(f) Audit your Cost Explorer for the "Data Transfer" bucket every month. Most early-stage teams look at compute and database costs first, egress last. Flip that order. The biggest single optimisation discovery I have personally found across audits is a misconfigured cross-region replication shipping a database in real time to a region that was supposed to be the cold DR target. Six months of $4,000 / month bills before anyone noticed.

11. The honest summary table

WorkloadAWSGCPAzureBest alternative
Internet egress, US source, <10 TB$0.09/GB$0.12/GB$0.087/GBCloudflare R2 ($0)
Internet egress, India source, <10 TB$0.1093/GB$0.12/GB$0.10/GB (Zone 2)Cloudflare R2 ($0)
Inter-region (same continent)$0.02/GB$0.02/GB$0.02/GBPrivate connectivity if >5 TB / mo
Inter-region (cross-continent)$0.05-$0.09/GB$0.05-$0.08/GB$0.05-$0.087/GBPrivate connectivity, async replication
Inter-AZ same region$0.01/GB each way$0.01/GB sender$0.01/GBTopology-aware routing
Free-egress on exit (EU Data Act)Yes, since Mar 2024Yes, since Jan 2024Yes, since 2024One-time only
Object storage egress (heavy CDN origin)S3 $0.09/GB direct, free to CloudFrontGCS $0.12/GB direct, free to Cloud CDNBlob $0.087/GB direct, free to Azure CDNR2 ($0 egress), B2 ($0.01/GB)
CDN egress (cached delivery)CloudFront $0.085-$0.109/GBCloud CDN $0.08-$0.12/GBFront Door $0.081-$0.087/GBCloudflare (flat plan fee)

12. Stage-specific recommendations

Pre-seed (1-5 engineers, <$5k / month cloud bill). Egress is probably 5-10 percent of your bill. Do not over-engineer. Put Cloudflare in front of your origin (free or $25 Pro tier), enable gzip on every endpoint, leave the rest alone. The opportunity cost of optimising egress at this stage is much higher than the dollar savings.

Seed (5-20 engineers, $5k-$30k / month cloud bill). Egress is probably 10-25 percent of bill. Audit the Data Transfer line on Cost Explorer / Billing once a month. If you are serving static assets, move them behind Cloudflare with aggressive caching; if you are running cross-region replication, verify it is necessary and configured efficiently. For media-heavy workloads, evaluate R2 / B2 migration as a one-quarter project.

Series A (20-50 engineers, $30k-$200k / month cloud bill). Egress is probably 20-40 percent of bill. Hire or assign a part-time FinOps owner. Audit inter-AZ traffic patterns (especially Kafka and Kubernetes service mesh). Evaluate Direct Connect / Cloud Interconnect / ExpressRoute for the top 2-3 destinations. Consider negotiating committed egress pricing with your account team; at this volume, 15-25 percent discounts versus published rates are routinely available with a 1-3 year commit.

Series B and beyond. Egress economics start to drive architectural decisions: where to place compute relative to users, whether to operate your own edge POPs (rare, but real at the scale of Netflix, Cloudflare, Spotify), and whether multi-cloud is paying for itself or quietly bleeding 1.6-1.8x on egress with no offsetting benefit.

The trap: free-egress-on-exit makes the day-to-day bill look smaller than it is

The 2024 EU Data Act coverage made cloud egress sound like a solved problem in the press. It is not. The free-egress-on-exit policy applies only when you fully leave a provider, and even then you need to actively request the credit and close the account. Daily operational egress to your users, to third-party APIs, to your other cloud, continues to bill at standard tiered rates and remains one of the largest single optimisable line items on any high-traffic SaaS bill.

Treat egress as you would any other unbounded cost driver: instrument it, tag it, alert on anomalies, and assign a clear owner to optimise it. The teams I have seen most surprised by their egress bill are uniformly the teams that had no one looking at it month-over-month.

If you want a second opinion on your egress posture

I run a free 20-minute cloud cost audit for SaaS founders looking at high-traffic workloads. Pull your Cost Explorer / Billing report for Data Transfer for the last 90 days; bring the breakdown; I will give you a ranked list of the three highest-leverage optimisations specific to your architecture, with rough payback timelines. No NDA needed for the first conversation. Send a note.

Avinash S is the founder of MatrixGard. Fractional DevSecOps for pre-seed and seed startups across India, the GCC, the UK, and the US. Almost a decade of running production workloads across AWS, GCP, and Azure, including egress-heavy CDN, media, and data-replication architectures.


Methodology note. All pricing references taken from public AWS, GCP, and Azure pricing pages, plus the public Cloudflare and Backblaze pricing pages, current as of May 2026. Regulatory references taken from the European Commission's Data Act materials and the public AWS / GCP / Azure announcement blogs on free-egress-on-exit. Vendor sales decks and analyst reports were not used. Cloud pricing changes quarterly; verify the specific numbers against the source pages before committing them to a budget. Operational opinions are mine, labelled inline. The summary table aggregates published prices and rounds to the nearest commonly-cited tier; reasonable practitioners working from the same primary sources will arrive at substantially the same conclusions, though stage-specific recommendations vary by workload shape.

MatrixGard

Ready to cut your cloud bill?

MatrixGard typically finds 20-40% in cloud waste on the first audit. Fixed price, money-back guarantee.

Book a free review