Cloud Storage Providers: Pick the Right Tier or Burn Money
A working engineer's comparison of seven cloud storage providers — with the tier and access pattern tradeoffs that determine whether storage costs $20/TB or $200/TB.

Cloud storage looks like a commodity. It is not. The same 100 TB of data can cost anywhere from $50 to $5,000 a month depending on which provider, which tier, and how you access it. Most teams pick a provider based on what their cloud account already has and never revisit the decision. That's fine for workloads where storage cost is rounding error. For anyone storing real data, it's worth thinking harder.
Here's an honest look at the seven providers we deploy most often, and the access patterns that make each one the right or wrong choice.
The Seven
- AWS S3
- Azure Blob Storage
- Google Cloud Storage
- Backblaze B2
- Wasabi
- Cloudflare R2
- MinIO (self-hosted)
1. AWS S3
List price: $23/TB/month for Standard, down to $1/TB/month for Glacier Deep Archive.
Strengths: The most mature, best-integrated, most featureful object store. Lifecycle policies, versioning, object lock, replication, event notifications, and access analytics are all first-class. Integration with the rest of AWS is unmatched.
Weaknesses: Egress costs are real — $0.09/GB out to the internet. A 10 TB restore to on-prem costs $900. Request pricing adds up at high object counts. The tier story is complex enough that many teams pay Standard pricing for data that should be in Intelligent-Tiering.
Use it when: You're already on AWS and want best-in-class features. Or you're storing genuinely cold data in Glacier / Deep Archive, where S3 is genuinely the cheapest option.
2. Azure Blob Storage
List price: $18-21/TB/month for Hot tier, dropping significantly for Cool and Archive.
Strengths: Tight integration with Azure AD, excellent for Microsoft-shop workflows. Immutable blob policies and legal hold features are strong for compliance. Archive tier pricing is aggressive.
Weaknesses: The tiering model has more rough edges than S3 — rehydrating from Archive is slower and more expensive than Glacier restores. SDK and tooling quality lags AWS in most language ecosystems, though it has improved.
Use it when: You're already on Azure, or you need immutable storage for compliance workloads (ransomware protection, regulatory retention).
3. Google Cloud Storage
List price: $20/TB/month for Standard, $10/TB for Nearline, $4/TB for Coldline, $1.20/TB for Archive.
Strengths: The simplest pricing of the three hyperscalers. Multi-region and dual-region classes are genuinely useful and don't require configuration of replication policies. Strong integration with BigQuery for analytics.
Weaknesses: Smaller ecosystem of integrations outside Google's own services. Egress pricing is similar to AWS — not a reason to pick it.
Use it when: You're on GCP, or you're running analytics workloads against data in storage and want the cleanest integration with BigQuery.
4. Backblaze B2
List price: $6/TB/month, flat. Egress is $10/TB (free to Cloudflare via bandwidth alliance).
Strengths: Dramatically cheaper than the hyperscalers for hot storage — about 3-4x cheaper than S3 Standard. S3-compatible API works with most tools. Free egress to Cloudflare makes it essentially free to serve content from a CDN.
Weaknesses: Fewer advanced features — no lifecycle tiering within B2, simpler IAM, no regional redundancy within a bucket. Performance is fine but not hyperscaler-grade. No data center in every region.
Use it when: You want S3-compatible hot storage at the lowest reasonable cost, especially if you're serving content through Cloudflare. Backup targets, media libraries, and content archives are ideal.
5. Wasabi
List price: $6.99/TB/month with no egress fees and no API request fees.
Strengths: The cost predictability story is the strongest in the industry. No egress bills, no request charges. For workloads with unpredictable egress, the total cost is often half of B2 and a fifth of S3.
Weaknesses: Performance is more variable than the hyperscalers. Some regions have had capacity issues during growth periods. The "90-day minimum storage duration" catches teams off guard — you pay for 90 days even if you delete an object after 1 day.
Use it when: You have unpredictable or high egress, you need S3-compatible storage, and your access pattern tolerates the 90-day minimum. Backup targets and long-lived archives are a good fit.
6. Cloudflare R2
List price: $15/TB/month. Zero egress fees.
Strengths: Zero egress is genuinely transformative for content distribution workloads. Tight integration with Cloudflare Workers, CDN, and the rest of Cloudflare's platform. S3-compatible API. Performance is excellent for content served through Cloudflare.
Weaknesses: Smaller feature set than S3. No storage tiers — everything is hot. Object versioning and lifecycle policies are less mature. No private network connectivity to other clouds.
Use it when: You're serving content over the web and egress costs are painful. Media libraries, software download mirrors, video platforms, and public datasets are the sweet spots.
7. MinIO (Self-Hosted)
List price: The cost of your hardware plus operations. Typically $2-5/TB/month amortized over 5 years on commodity hardware.
Strengths: Complete control, no egress costs ever, S3-compatible, and the cheapest option per TB if you're willing to run it. Performance can exceed any cloud provider on the same hardware budget. Ideal for private cloud deployments.
Weaknesses: You run it. That means capacity planning, hardware refresh cycles, monitoring, patching, disaster recovery, and 3 am pages when a disk fails. The "cheap" number assumes you have the operational maturity to make it cheap. If you don't, the TCO is higher than a managed service.
Use it when: You already run on-prem or colo infrastructure, you have operations maturity, and you're storing more than 50 TB where the math starts to favor self-hosting. We deploy MinIO for customers with private cloud environments all the time. We do not deploy it for customers who want "set and forget" storage.
The Access Pattern Matters More Than the Provider
Before you pick a provider, answer these questions:
- How hot is the data? Accessed multiple times per day, or once a year? Don't pay Standard pricing for data you access twice.
- How much do you egress? If you're serving content to the public internet, egress is likely your biggest bill, not storage. Pick providers with cheap or zero egress.
- How many API requests per month? High-object-count, high-request workloads (image hosting, analytics events) hit request pricing walls that cheap providers avoid.
- What's the data lifecycle? Does it need to live forever, for 7 years, for 90 days? Lifecycle policies matter enormously for cost.
- What's the disaster recovery posture? Cross-region replication is free on some providers and expensive on others.
A customer storing 100 TB of compliance archives that they access twice a year should not pay S3 Standard pricing. They also should not pay Glacier Deep Archive pricing if they occasionally need fast restores for legal discovery. The right answer is often a mix of tiers, and the wrong answer is paying one-size-fits-all for everything.
What We Actually Recommend
- You're already on a hyperscaler and storage is a small part of your bill: stay with the native object store. The operational simplicity is worth it.
- You're storing backups and DR data: Wasabi or Backblaze B2. Cheap, S3-compatible, predictable.
- You're serving public content at scale: Cloudflare R2. Zero egress changes the economics completely.
- You're running private cloud at scale and have ops maturity: MinIO. Nothing beats it on cost per TB.
- Compliance / immutable / regulated workloads: Azure Blob with immutability policies, or S3 with Object Lock. The certifications matter.
- Mixed hot / cold with analytics access: GCS or S3, with lifecycle policies and tiering properly configured.
Most teams end up using two or three providers for different workloads. That's fine. Storage is one of the few places where multi-provider is simpler than it sounds, because the S3 API is nearly universal.
Three Takeaways
- Storage is not a commodity — pick the tier and provider based on your access pattern, not convenience. The wrong tier can 5x your bill.
- Egress costs usually dominate for public-facing workloads. Cloudflare R2, Wasabi, and Backblaze B2 exist because hyperscaler egress pricing left an obvious gap.
- Self-hosting is cheaper than any cloud storage if (and only if) you have the operations muscle to run it. Without that, managed storage is cheaper even at list price.
Talk with us about your infrastructure
Schedule a consultation with a solutions architect.
Schedule a Consultation