Egress (data transfer out to internet) is the hidden cost that can make cheap storage expensive. AWS charges $0.09/GB — on 10TB/month that's $921 in egress alone. Cloudflare R2 and Wasabi charge nothing.
Egress fees only matter at volume. Here's what each provider charges for 10TB of downloads per month:
At 10TB/mo egress: AWS costs $921, Azure $891, GCS $1,229. Cloudflare R2 and Wasabi cost $0. The difference is 3–4 orders of magnitude.
A 1GB video file served to 1,000 users = 1TB egress. On AWS that's $92 per video per thousand views. On Cloudflare R2, it's $0. For any media-heavy app, egress is often the dominant cost.
If your API returns images, audio, documents, or large JSON payloads to end users, those bytes flow through egress. Even moderate-traffic APIs (100k req/day at 50KB avg) generate 150GB/day — $13.50/day on AWS egress alone.
Copying data between AWS regions or to another cloud provider triggers egress fees at both the source and sometimes the destination. For DR setups, this can add thousands per month invisibly.
If you store backups on S3 and rarely download them, egress is negligible. The cheap storage cost ($0.023/GB/mo) is what matters, not egress. AWS is fine for write-heavy, read-rarely workloads.
Data transferred between AWS services in the same region (S3 to EC2, S3 to Lambda) is free. Egress fees only apply to downloads to the internet or cross-region transfers.
Zero egress fees. R2 is S3-compatible and integrates with Cloudflare Workers for edge delivery. Wasabi has a 1TB/month free egress policy.
B2 is cheapest at $0.006/GB/mo storage, and egress is rarely needed for backups. S3 is the mature choice for AWS-native stacks where egress stays internal.
Pay the egress premium for mature tooling, SLAs, compliance certifications (SOC2, HIPAA, PCI), and seamless integration with compute services.