What S3 egress actually costs, with the arithmetic
September 2026 · 8 min read · Mayur

There is a line on your AWS bill called "Data Transfer Out." Most people scroll past it.
I want to spend fifteen hundred words on that line, because it is the single most misunderstood number in cloud storage, and because once you have actually done the arithmetic you cannot un-see it.
The thing nobody tells you when you pick S3
Storing data on S3 is cheap. Around $0.023 per gigabyte per month for Standard storage in US East. A terabyte sits there for about $23 a month. That number is easy to find, easy to budget, and it is the number everyone compares providers on.
Taking data back out is a different number, and it is not on the same page.
AWS charges you for data transferred out to the internet. The first 100 GB each month is free, and after that the rate starts at roughly $0.09 per gigabyte and tapers slightly at very high volume. That is the toll for carrying your own boxes out of the warehouse you are already renting.
Here is why it surprises people. Storage cost is predictable, because it is a function of how much you have. Egress cost is a function of how much people download, which is a function of your traffic, which is a function of your success. The bill that surprises you is always the month something went well.
The arithmetic
Let me do this plainly, because the numbers are more persuasive than any argument.
Storing 1 TB on S3 Standard: about $23 a month.
Pulling that same 1 TB back out once: roughly 1,024 GB minus the 100 GB free tier, at about $0.09 per GB. Call it $83.
Read those two numbers next to each other. Downloading your data once costs three and a half times what storing it for the month cost.
Scale it up:
| Volume | Store one month on S3 | Transfer out once |
|---|---|---|
| 1 TB | ~$23 | ~$83 |
| 10 TB | ~$235 | ~$911 |
| 50 TB | ~$1,175 | ~$4,600 |
That last row is the one that ends conversations. Moving 50 TB out of S3 costs about $4,600 in transfer fees before you have paid a single tool a single cent to help you do it.
And this is the mechanism people mean when they say "lock-in." Nobody is technically preventing you from leaving. You are simply presented with a four-thousand-dollar invoice for the privilege, and the bigger you get the larger that number becomes. The exit fee scales with your success.
The providers that do not charge it
The reason egress is discussed at all in 2026 is that several providers decided not to charge for it, and made that their entire pitch.
Cloudflare R2 charges nothing for egress. Storage is around $0.015 per GB per month. You pay for operations, not for leaving.
Backblaze B2 charges around $0.006 per GB per month for storage, and gives you free egress up to three times your average monthly stored data, which for most workloads means free in practice.
Wasabi charges around $0.0069 per GB per month with no egress fee, but with a minimum storage duration policy that catches people out. More on that below, because it is the gotcha nobody mentions.
Now the comparison that matters. 8 TB of cold archive data, the kind that sits there as insurance and gets touched twice a year:
| Provider | Roughly per month |
|---|---|
| AWS S3 Standard | ~$184 |
| Backblaze B2 | ~$40 |
That is $144 a month. $1,728 a year. On data nobody is looking at.
Both of those numbers come from the providers' own published price lists. You can check them in about four minutes, and I would rather you did.
The honest bit
This is where most articles about egress stop, having successfully made you feel bad about AWS. That is not a complete picture, so here is the rest of it.
Egress is not always the number that matters. If your data is hot, if it is served constantly to end users, then a cheap-storage provider is not automatically the winner. What matters is your specific ratio of stored bytes to transferred bytes. Cold archive data is where the arithmetic is lopsided, and that is exactly where people never think to look. For genuinely hot data, put a CDN in front of it and the egress question changes shape entirely.
Moving is not free either. You will pay the exit fee once to leave. If it costs you $911 to move 10 TB off S3, and you save $150 a month afterwards, you are ahead in month seven. If you might move back within six months, do not bother. Run that arithmetic before the migration, not after.
Cheap storage has its own gotchas. Wasabi has a minimum storage duration policy: delete an object early and you are billed as if you had kept it for the minimum period anyway. For an archive that never changes, this is irrelevant. For a workload with churn, it can quietly erase the saving. Backblaze's free egress allowance is generous but it is an allowance, not an absence. Read the terms for your actual pattern, not the headline.
S3 is genuinely excellent. The durability, the ecosystem, the tooling depth, the integration with everything else in AWS. If your workload lives inside AWS and moves data between S3 and EC2 in the same region, you are not paying internet egress rates anyway, and much of this article does not apply to you. Egress is expensive; that does not make S3 the wrong choice. It makes it a choice with a cost you should be able to see.
What to actually do about it
- Find your egress line. In Cost Explorer, group by usage type and look for
DataTransfer-Out-Bytes. If it is under ten percent of your storage cost, stop reading and go do something more useful. - Split your data into hot and cold. Almost everyone has a large cold pile they have never separated out. That pile is where the money is.
- Do the arithmetic on the cold pile only. Size times the price difference times twelve. That is your annual saving. Compare it against the one-time exit fee.
- Check the minimums on wherever you are moving to.
- Decide, and then actually do it. The most expensive outcome is knowing the number and not acting on it, which is where most people land, because moving data sounds like a project.
Where Storafleet fits
We built a console that connects to the storage you already own, across S3, R2, B2, Wasabi, MinIO, DigitalOcean and any other S3-compatible endpoint, and shows you all of it in one place.
For this specific problem it does two things. It runs the cost comparison across providers on your actual buckets, so the arithmetic above becomes your numbers rather than an example. And it moves the data when you decide to, without charging you per gigabyte to do it, which several migration tools do. Movebot charges $0.75 per gigabyte. On 10 TB that is $7,500 on top of the exit fee you are already paying AWS.
Your data stays in your own accounts throughout. We hold a credential you can revoke at any moment, not your files.
Questions people actually ask
Does AWS charge for uploading data into S3? No. Data transfer in is free. They charge to take it out. That asymmetry is the whole design.
Does the 100 GB free tier reset every month? Yes, 100 GB of internet egress per month across most AWS services.
Is transferring between S3 buckets free? Within the same region, yes. Across regions, you pay inter-region transfer rates, which are lower than internet egress but not zero.
Does CloudFront make egress cheaper? It changes the shape. Transfer from S3 to CloudFront is free, and you then pay CloudFront's rates, which are lower at volume and much lower with committed pricing. For genuinely hot content, this is usually the right answer before you consider moving providers.
Is Cloudflare R2 really zero egress? For standard usage, yes. You pay for storage and for operations (Class A and Class B), not for bandwidth out. Read their terms for very unusual patterns.
How long does it take to move 10 TB? Depends entirely on your connection and the tool. The honest answer is hours to days, and the part that actually causes trouble is not the transfer, it is verifying it completed correctly.
Should I just use rclone? Genuinely, maybe. rclone is free, excellent, and will move your data tonight if you are comfortable with the flags and willing to watch it. What it does not give you is a schedule that runs without a server, a record that the job finished, or a colleague who can see the same thing you can. If those do not matter to you, use rclone.
One number to take away: pull the cold pile out of your storage bill and price it on Backblaze B2. For most teams that one calculation is worth somewhere between a few hundred and a few thousand dollars a year, and it takes about ten minutes.
If you want the comparison run against your actual buckets rather than an example, that is what we built. Connect a bucket, free, no card.
Internal links
/blog/moving-off-s3-to-r2 · /blog/what-nobody-tells-you-about-migrations · /pricing · /docs/connect/backblaze-b2 · /tools/egress-calculator (to build)
External references
AWS S3 pricing page · Cloudflare R2 pricing · Backblaze B2 pricing · Wasabi pricing and minimum storage duration policy
Suggested featured image
The two-number comparison as a still: $184/mo above $40/mo, same 8 TB, Signal Ops treatment. The northwind render set already contains this composition.
Supporting visuals
The volume table as a carousel slide. The 1 TB store-versus-transfer comparison as a single animated number for the reel cutdown.
⚠️ Pre-publish verification
Every AWS, R2, B2 and Wasabi price in this post must be re-checked against the provider's live pricing page on the day of publishing. These change. The 8 TB comparison traces to manual-pdf/04-features/05-cost/02-cost-comparison.md. The Movebot figure was verified 2026-09-02.