S3 looks cheap. Until you check the bill.
A colleague told me: someone proposed backing up their data to Yandex Cloud. 600TB. They ran the egress numbers. The conversation ended.
I had a similar story, just smaller.
~60TB in S3, three accounts, around 50 buckets. App running in GKE. Data flows from S3 to the app - every request pulls egress. Asked to look into it: maybe GCP Buckets are cheaper, since the rest of the infra is already there?
Calculated storage only: S3 $1,422/mo, GCS $1,237/mo. Difference: $185. Migration egress: $5,530 one-time. Payback: ~30 months.
Added traffic: $101/mo egress S3→GKE - free inside GCP.
Total: $286/mo savings. Payback: ~19 months.
Here’s what’s interesting though.
Traffic data shows: out of 60TB, maybe a third gets accessed in a year. The rest is dead weight.
What to actually do:
Enable Storage Lens - at least the free tier. Understand what’s in those buckets, what’s being read, what’s just sitting there. Then audit: old churned clients, old versions, just junk. Tedious, yes. But you can probably delete half of it.
Rewrite the app: when a file is fetched from S3, save a copy to GCS. The most-used files will migrate on their own, gradually, without a one-time $5,500 egress hit. Yes, that’s developer time - which is always scarce and could go toward features or closing vulnerabilities.
Nobody does this. Because it’s painful, slow, and not on fire.
And Amazon isn’t rushing you. It just sends the bill. Every month.