The Direct Answer: What Actually Drives S3 Egress Costs

AWS S3 egress costs are the fees you pay when data leaves AWS's network — whether to the public internet, to another cloud provider, or in some cases across regions. As of 2026, standard internet egress from S3 in us-east-1 is priced at roughly $0.09 per GB for the first 10 TB per month, dropping to about $0.085/GB for the next 40 TB, $0.07/GB up to 150 TB, and lower tiers beyond that. That means a platform serving 100 TB of outbound video or dataset traffic per month is looking at a bill north of $8,000 just for egress, before storage, requests, or compute. For media platforms, backup providers, and data-intensive SaaS, egress routinely becomes 30–60% of the total S3 line item.

Also worth reading: How do platform teams optimize cross-cloud storage costs in a multi-cloud architecture? · What is object storage SaaS for platforms and how does it change data architecture? · How should early-stage startups architect object storage without locking into single-vendor clouds?

The good news: there are proven ways to cut this cost by 50–90%, and none of them require rewriting your application. AWS itself published a case study of a petabyte-scale video hosting platform that saved 70% on S3 through a combination of storage tiering, CDN offload, and request optimization. Cloudflare's R2 offers zero-egress object storage, and Oracle has publicly argued that getting data out of the cloud shouldn't cost a fortune — a position that has pushed the entire market toward egress-free pricing models. This article walks through every practical lever, ranked roughly by effort-to-savings ratio.

Why Egress Is So Expensive: The Economics Behind the Fee

Egress pricing exists because it was historically one of the few places cloud providers could monetize data gravity. Once your data lives in S3, moving it out means paying twice: once in engineering time and once in bandwidth fees. AWS's margins on egress are widely estimated to be far higher than on compute or storage, which is why the fee has barely moved in over a decade even as storage prices fell dramatically. Compare Glacier storage at roughly $0.00099/GB per month (about $1/TB) against egress at $90/TB — you could store that terabyte for 90 years for the price of retrieving it once over the internet.

This asymmetry is deliberate and it shapes architecture decisions more than most engineers realize. It also explains why competitors attack this specific line item: Cloudflare built R2's entire go-to-market around 'no egress fees,' using its own global backbone to make zero-egress economically viable. When evaluating any cost-reduction strategy, understand that you're not fighting physics — bandwidth at scale costs providers cents per GB — you're navigating a pricing structure designed to reward staying put. Every tactic below either reduces bytes leaving AWS, moves the exit point to a cheaper location, or renegotiates the rate itself.

Strategy One: Offload Delivery to a CDN with Waived or Reduced Egress

The single highest-leverage move for most teams is putting a CDN in front of S3 so that repeat requests never touch AWS egress billing. CloudFront, Fastly, Akamai, and BunnyCDN all cache objects at edge locations; only cache misses pull from origin. A well-tuned CDN with a 90%+ cache hit ratio converts $0.09/GB internet egress into CDN pricing, which for high-volume customers can be negotiated down to $0.01–$0.03/GB or better. BunnyCDN, for example, publishes rates around $0.005–$0.01/GB depending on region and volume — an order of magnitude below raw S3 egress.

CloudFront deserves special mention because AWS offers tiered volume discounts and, critically, because CloudFront-to-S3 origin transfer within the same region is free. If your workload serves large static files to global audiences, moving delivery behind CloudFront typically cuts effective egress spend by 60–85% immediately. The caveats: cache invalidation costs money ($0.005 per path after the free 1,000 paths/month), TTL tuning matters enormously, and dynamic or uncacheable content gains nothing. Audit your access logs first — if less than half your GET traffic is cacheable, CDN offload alone won't save you 70%, and you'll need the strategies below alongside it.

Strategy Two: Migrate Egress-Heavy Data to Zero-Egress Storage

If your data genuinely needs to leave the cloud constantly — think user downloads, cross-cloud analytics pipelines, or multi-region replication — the cleanest fix is storing that data somewhere egress is free. Cloudflare R2 charges $0.015/GB-month for storage with zero egress fees, period. Backblaze B2 similarly offers free egress up to three times your average monthly storage (capped at 20 TB/day), then charges via their CDN partnership rather than direct egress. Wasabi includes unlimited free egress under a fair-use policy. For a team pushing 50 TB/month out of S3, switching that dataset to R2 eliminates roughly $4,500/month in egress instantly, offsetting R2's slightly different storage economics many times over.

Cloudflare's Sippy tool makes this migration incremental rather than big-bang: it sits in front of your existing S3 bucket and copies objects to R2 on-demand as they're requested, so you avoid paying massive one-time S3-to-internet egress during a bulk migration. This matters more than people expect — migrating 500 TB out of S3 naively costs ~$45,000 in egress alone. Incremental migration via Sippy, AWS DataSync (which AWS documents for agentless transfers, including Azure Blob to S3 patterns that work in reverse planning too), or batch jobs routed through free pathways (see below) keeps migration cost near zero. The trade-off to weigh honestly: R2's ecosystem is thinner than S3's, some S3 features like certain event integrations and storage-class behaviors differ, and your IAM/tooling will need adjustment.

FeatureAWS S3 StandardCloudflare R2Backblaze B2
Storage price~$0.023/GB-mo$0.015/GB-mo~$0.005–0.006/GB-mo
Internet egress$0.09/GB (first 10 TB)FreeFree up to 3x stored volume/day
S3 API compatibleNativeYesYes
Best fitGeneral purpose, deep AWS integrationCross-cloud, high-download workloadsBackup, archival with periodic restore
Migration toolingSippy (incremental)Native S3-compatible APIs
## Strategy Three: Route Transfers Through Free or Discounted Pathways

Not all bytes leaving S3 incur the full $0.09/GB. Several pathways are free or heavily discounted, and knowing them saves real money. First, S3-to-CloudFront origin fetches within the same region are free, as noted. Second, AWS offers 100 GB of free internet egress per month account-wide (introduced in 2021) — small but nonzero. Third, if you're moving data between AWS and another provider, check whether that provider operates an interconnect or private peering arrangement where ingress is free on both sides; pulling from S3 into a provider with free ingress still incurs AWS egress, but pulling via a partner program sometimes doesn't. Fourth, AWS Snowball and Snowmobile physical appliances exist precisely because bulk export over the network is expensive — for one-time migrations above ~50 TB, shipping drives is often cheaper than paying egress.

Fifth, and least known: some workloads can be restructured so data never leaves AWS at all. If your downstream consumer is another AWS service (Athena, EMR, SageMaker), keep the pipeline inside one region and pay nothing for transfer. The InfoQ coverage of diskless Kafka architectures highlights this pattern in streaming: keeping consumers co-located with the storage tier eliminates the cross-network hops that generate egress bills. Before optimizing rates, ask whether the transfer needs to happen at all — architectural consolidation frequently beats price negotiation.

Strategy Four: Compress, Deduplicate, and Right-Size What You Store

Every byte you don't store is a byte you never pay egress on. Compression before upload is the cheapest optimization available: Parquet with ZSTD compression routinely shrinks analytical datasets 5–10x versus raw JSON, meaning a five-fold reduction in both storage and egress for query-result exports. Image and video assets should be transcoded to modern codecs (AVIF, HEVC/H.265) — a 30–50% size reduction directly translates to 30–50% less egress for download-heavy platforms. Content-addressable deduplication helps backup and container-image workloads where identical layers or blocks get transferred repeatedly.

Also audit what's being requested at all. Access logs frequently reveal that 20–40% of egress comes from bots, scrapers, broken clients retrying failed downloads, or stale SDK versions fetching objects they no longer need. Rate-limiting abusive clients, adding conditional requests (ETags, Range headers so clients resume instead of re-downloading whole files), and blocking known bad user agents can trim double-digit percentages from the bill with a day of work. None of this changes your architecture; it just stops paying to serve bytes nobody valuable asked for.

Common Mistakes That Waste Money or Create Risk

The most expensive mistake is migrating data out of S3 naively: a bulk copy of hundreds of terabytes triggers the very egress bill you were trying to avoid. Always use incremental tools like Sippy, schedule transfers through discounted windows, or ship physical media. The second mistake is ignoring retrieval fees on archive tiers — Glacier Deep Archive charges roughly $0.02/GB plus per-request fees for restores, and restoring a large archive for 'temporary' access can exceed a year of Standard storage savings. AWS's own video-platform case study achieved 70% savings partly by matching access patterns to tiers correctly, not just blindly archiving.

Third, teams often overestimate CDN savings without checking cache hit ratios; a misconfigured cache key that fragments caching across query strings can leave hit ratios at 40% and savings minimal. Fourth, watch for hidden cross-AZ and cross-region transfer: replicating buckets across regions for resilience generates steady inter-region transfer charges (~$0.02/GB) that show up separately from internet egress but belong in the same budget conversation. Finally, don't lock yourself into a zero-egress provider without testing real-world performance from your users' regions — free egress delivered with 400 ms latency isn't free in practice. Run a shadow deployment before committing.

Negotiation, Commitments, and Enterprise Levers

If your monthly AWS bill exceeds roughly $50,000–$100,000, you have negotiating leverage most articles ignore. AWS offers Private Pricing Addendum discounts, EDP (Enterprise Discount Program) commitments, and — specifically relevant here — custom egress pricing for large customers or those with credible migration threats. Publicly documented cases exist of AWS reducing egress rates for customers evaluating multi-cloud moves. Even a 20% negotiated discount on a $30,000/month egress bill is $72,000/year for a single conversation. Come prepared with a concrete alternative quote (R2, B2, or a hybrid design) and a migration plan; vague threats accomplish little.

Committed-use structures help elsewhere too: Savings Plans don't cover S3, but Reserved capacity on CloudFront and volume-tiered egress pricing mean consolidating your egress into fewer accounts or fewer regions can push you into better marginal tiers. Note the tiers reset per account, so organizations spread across dozens of AWS accounts may be paying first-tier rates everywhere when consolidated volume would qualify for deeper tiers. Centralizing egress-heavy workloads into one account (or using AWS Organizations billing consolidation where applicable) is a structural fix worth evaluating annually.

When to Act and How to Prioritize

Act now if egress exceeds 25% of your total cloud spend, if month-over-month growth in egress outpaces revenue growth, or if finance has flagged data-transfer as a budget risk. The prioritization sequence that works for most platform teams: (1) week one — enable access logging and build a per-bucket, per-prefix egress attribution report; (2) weeks two to four — deploy or tune a CDN and fix compression/caching basics, typically yielding 40–70% savings; (3) months two to three — migrate genuinely egress-heavy datasets to zero-egress storage incrementally via Sippy or equivalent; (4) ongoing — review tiering policies quarterly and revisit negotiation once your baseline is documented. Teams that follow this sequence commonly land at 50–80% total egress reduction within a quarter, consistent with the 70% figure AWS itself published for a petabyte-scale video customer.

For platform teams running multi-cloud or OSS data planes, the strategic takeaway is that egress is no longer an unavoidable tax. The 2022–2026 wave of zero-egress offerings, EU data-act pressure on switching costs, and competitive pricing have permanently changed the market. Design new architectures assuming portable data and cheap exits, and treat S3 egress as a legacy cost to be engineered away rather than a fixed input.