AWS S3 has a fee most engineers ignore until their first real bill arrives. It's called egress — and it charges you every time a user retrieves a file you already paid to store. Here's the decision, the numbers, and how to fix it.
AWS S3 has a fee most engineers ignore until their first real bill arrives. It's called egress — and it charges you every time a user retrieves a file you already paid to store. Here's the decision, the numbers, and how to fix it.
What's inside
Get instant access
Free. No spam. Unsubscribe anytime.
Every video-processing SaaS has two retrieval paths. The first is analysis — your server pulls the file from the bucket to run the pipeline. The second is library display — your app generates pre-signed URLs and the browser fetches videos directly. On S3, both events trigger egress at $0.09/GB. On R2, neither does.
This guide models the real cost at scale using actual processed video data — average 5.7 MB per file, 30 videos per customer per month, 10 logins per month. At 10,000 customers, S3 costs $711/month. R2 costs $300. The entire gap is egress.
Includes the exact AWS SDK v3 config change to migrate your client to R2, the three environment variables you need, Cloudflare's no-code Data Migration tool for existing buckets, and a post-migration checklist to verify everything works end-to-end.
Who this is for
About the author
Jonathan is a software engineer at Amazon, building Hookem — an AI tool that analyses what makes content go viral — alongside his day job.
Every product decision is documented in public. These guides are the written version of that process.