I am going to save you hours of research and potentially thousands of dollars a month with this single post.
Every "cheapest cloud storage" article you have read compares per-gigabyte pricing, puts Wasabi and Backblaze at the top, slaps AWS at the bottom, and calls it a day. And every single one of those articles is giving you an incomplete picture that could cost you more money than picking a more "expensive" provider in the first place.
The real cost of cloud storage is not what you pay to put data in. It is what you pay when you need to get data out, move it between regions, transition it between tiers, delete it before a minimum retention period, or make API calls against it at scale. These costs are where cloud storage providers make their real margins, and they are buried in pricing pages that require a spreadsheet and genuine patience to decode.
I decoded all of it. Every provider, every tier, every hidden fee. Here is what I found.
The Per-GB Pricing Lie
Let me show you why per-GB comparisons are misleading with one simple example.
Provider A charges $0.005 per GB per month for storage with zero egress fees. Provider B charges $0.023 per GB per month for storage but you get 100 GB of free egress with a CDN integration that eliminates most transfer costs for web-serving workloads.
At 10 TB of storage with 2 TB of monthly egress:
- Provider A: $50 storage + $0 egress = $50/month
- Provider B: $230 storage + ~$20 egress (after CDN offset) = $250/month
Provider A wins by a landslide, right? Now let's add what those comparison articles leave out.
Provider A has a minimum storage duration of 90 days. You uploaded 3 TB of temporary processing data last month and deleted it after 15 days. You still pay for the full 90 days on that data. That is an extra $30 you did not expect. Provider A also charges $0.04 per 10,000 GET requests. Your application makes 50 million GET requests per month against stored objects. That is $200 in API request fees.
Your actual Provider A bill: $50 + $30 + $200 = $280/month. Provider B suddenly does not look so expensive.
This is why total cost of ownership matters infinitely more than per-GB pricing. And I am going to walk you through the real TCO for every major provider at real-world scale.
The Real Cost of Every Major Cloud Storage Provider in 2026
I am going to break down each provider across six cost dimensions that actually matter: storage per GB, egress per GB, API request pricing, minimum storage duration, retrieval fees (for cold/archive tiers), and operational considerations. These are the numbers you need to make a real decision.
Wasabi Hot Cloud Storage
Storage: $0.0059 per GB/month (approximately $5.99 per TB/month)
Egress: Free under their fair use policy, which allows egress up to the amount of storage you have. Store 10 TB, transfer out up to 10 TB per month for free. Exceed that ratio and Wasabi may throttle or charge you.
API requests: Free for standard S3-compatible API calls.
Minimum storage: 90 days. Delete anything before 90 days and you pay for the full period. This is the cost that catches teams using Wasabi for temporary or intermediate data.
Retrieval fees: None. All data is hot storage with instant access.
The real story: Wasabi is genuinely the cheapest option for stable, long-lived data that you access regularly with moderate egress patterns. If you store backups, media archives, or training datasets that persist for months, Wasabi is hard to beat on pure cost. But if your workload involves frequent data churn (uploading and deleting within 90 days), the minimum storage penalty adds up fast. And the "free egress" policy has teeth. Teams running bandwidth-heavy workloads like video streaming or large-scale data processing have reported throttling once they consistently exceed the egress-to-storage ratio.
Best for: Backups, media archives, ML training data, compliance archives. Workloads where data is written once and read occasionally.
Backblaze B2
Storage: $0.006 per GB/month ($6 per TB/month)
Egress: $0.01 per GB. However, Backblaze has a partnership with Cloudflare through the Bandwidth Alliance that eliminates egress fees when serving through Cloudflare. This is a huge deal if your architecture supports it.
API requests: Free for downloads (Class C). Uploads and other operations (Class B) are $0.004 per 10,000 transactions. Class A transactions (like ListBuckets) are also free.
Minimum storage: None. You pay only for what you store, for as long as you store it. This is a significant advantage over Wasabi for workloads with high data turnover.
Retrieval fees: None. All data is immediately accessible.
The real story: Backblaze B2 paired with Cloudflare for egress is one of the most cost-effective storage architectures available in 2026. The Bandwidth Alliance partnership means you can store data cheaply on B2 and serve it globally through Cloudflare with zero egress charges. For web applications, content delivery, and SaaS platforms, this combination often beats every other option on TCO. The catch is that Backblaze has fewer regions than hyperscalers (primarily US and EU), so latency-sensitive global workloads may need to combine B2 with edge caching. And if you cannot route through Cloudflare, the $0.01/GB egress is reasonable but not free.
Best for: SaaS application data, web content serving, developer tools, any workload that can route through Cloudflare.
Cloudflare R2
Storage: $0.015 per GB/month ($15 per TB/month)
Egress: Zero. Always. No conditions, no fair use caps, no bandwidth ratio tricks. This is R2's defining feature and the reason it has disrupted cloud storage pricing since launch.
API requests: Class A (writes) cost $4.50 per million. Class B (reads) cost $0.36 per million. This is competitive with S3 Standard pricing.
Minimum storage: None.
Retrieval fees: None. R2 has a single storage class with instant access.
The real story: Cloudflare R2 changed the game by eliminating egress entirely. At $0.015/GB, the storage price is 2.5x higher than Wasabi, but for workloads with high egress ratios, R2 wins decisively on total cost. Let me show you the math at scale.
At 50 TB of storage with 20 TB of monthly egress:
- Wasabi: $300 storage + $0 egress (within ratio) = $300/month
- Cloudflare R2: $750 storage + $0 egress = $750/month
- AWS S3 Standard: $1,150 storage + $1,740 egress = $2,890/month
But at 50 TB of storage with 100 TB of monthly egress (a common ratio for content delivery):
- Wasabi: $300 storage + throttled/uncertain above 50 TB egress
- Cloudflare R2: $750 storage + $0 egress = $750/month
- AWS S3 Standard: $1,150 storage + $8,700 egress = $9,850/month
R2 becomes the clear winner when egress is your dominant cost driver. For AI inference serving, content delivery platforms, and any workload that reads data significantly more than it writes, R2 often delivers the lowest total cost despite the higher per-GB storage price.
Best for: High-egress workloads, content delivery, AI inference output serving, any architecture where data is read many times more than it is written.
AWS S3
Storage: Ranges from $0.023/GB (Standard) to $0.004/GB (Glacier Instant Retrieval) to $0.00099/GB (Glacier Deep Archive).
Egress: $0.09/GB for the first 10 TB/month, dropping to $0.085/GB up to 50 TB, then $0.07/GB up to 150 TB. These rates are for internet egress. Transfer to CloudFront is cheaper ($0.02 to $0.06/GB depending on region).
API requests: $0.005 per 1,000 PUT/COPY/POST/LIST requests. $0.0004 per 1,000 GET/SELECT requests for Standard. Glacier requests cost more.
Minimum storage: 30 days for Standard-IA, 90 days for Glacier Instant Retrieval, 90 days for Glacier Flexible, 180 days for Deep Archive.
Retrieval fees: $0.01/GB for Standard-IA, $0.03/GB for Glacier Flexible (standard retrieval), $0.02/GB for Glacier Deep Archive (standard, 12-hour).
The real story: AWS S3 is the most expensive option on a per-GB basis, and the egress fees are genuinely painful at scale. But S3 wins on something that no pricing comparison captures: ecosystem integration. If your application runs on AWS, data transfer between S3 and EC2/EKS/Lambda within the same region is free. S3 integrates natively with 200+ AWS services. The lifecycle policies, access analytics (Storage Lens), replication controls, and event-driven architectures built on S3 are unmatched.
For teams already on AWS, the real comparison is not "S3 vs Wasabi." It is "S3 Standard vs S3 Intelligent-Tiering vs S3 Standard-IA vs Glacier" within your existing ecosystem. Most AWS customers can cut their S3 bill by 30 to 50 percent just by implementing proper lifecycle policies and using Intelligent-Tiering, without moving to a different provider.
Best for: Teams already on AWS with workloads that benefit from ecosystem integration. Hybrid tiering strategies across hot, warm, and cold data.
Google Cloud Storage
Storage: $0.020/GB (Standard), $0.010/GB (Nearline, 30-day min), $0.004/GB (Coldline, 90-day min), $0.0012/GB (Archive, 365-day min).
Egress: $0.12/GB for the first TB, dropping to $0.08/GB at higher volumes. Among the most expensive egress rates of any provider.
API requests: $0.05 per 10,000 Class A operations (inserts), $0.004 per 10,000 Class B operations (reads) for Standard.
The real story: GCP storage pricing is competitive at the tier level, but egress fees are the highest of the three hyperscalers. Google has been reducing these over time, but they remain a significant cost factor for egress-heavy workloads. GCP's strength is in analytics-native storage. If your workload involves BigQuery, Vertex AI, or Dataflow pipelines, the integration savings can offset the egress premium. The 365-day minimum on Archive storage is the longest of any major provider, so be very certain data is truly archival before putting it there.
Best for: Teams running analytics and ML workloads on GCP. BigQuery-adjacent data. Situations where GCP compute already dominates your stack.
Microsoft Azure Blob Storage
Storage: $0.018/GB (Hot), $0.010/GB (Cool, 30-day min), $0.002/GB (Cold, 90-day min), $0.00099/GB (Archive, 180-day min).
Egress: $0.087/GB for the first 5 TB, dropping progressively. Comparable to AWS but slightly cheaper at lower volumes.
API requests: $0.065 per 10,000 write operations, $0.005 per 10,000 read operations for Hot tier.
The real story: Azure Blob Storage is priced competitively with AWS S3 and has recently introduced a Cold tier that sits between Cool and Archive, which gives more granular tiering than the competition. Azure's strength is in hybrid cloud scenarios. If you run Azure Arc, Azure Stack, or have on-premises workloads integrated with Azure, the hybrid storage story is more mature than AWS or GCP. Write API request costs are notably higher than S3, which impacts write-heavy workloads.
Best for: Microsoft ecosystem shops. Hybrid cloud with on-premises integration. Enterprises with Azure AD and compliance requirements.
The Comparison Matrix That Actually Matters
Here is what 50 TB of storage with 10 TB of monthly egress costs across every provider. This is the comparison you will not find on any provider's marketing page.
| Provider | Monthly Storage | Monthly Egress | Monthly API (est.) | Min Duration Risk | Monthly TCO |
|---|---|---|---|---|---|
| Wasabi | $300 | $0 | $0 | Medium (90-day) | $300 |
| Backblaze B2 + Cloudflare | $300 | $0 | ~$10 | None | $310 |
| Cloudflare R2 | $750 | $0 | ~$25 | None | $775 |
| AWS S3 Standard | $1,150 | $870 | ~$30 | None | $2,050 |
| AWS S3 Intelligent-Tiering | ~$800 | $870 | ~$30 | None | $1,700 |
| GCP Standard | $1,000 | $960 | ~$25 | None | $1,985 |
| Azure Hot | $900 | $870 | ~$40 | None | $1,810 |
Now the same comparison at 50 TB storage with 50 TB egress (a content delivery or AI inference workload):
| Provider | Monthly Storage | Monthly Egress | Monthly TCO |
|---|---|---|---|
| Wasabi | $300 | $0 (at ratio limit) | $300 |
| Backblaze B2 + Cloudflare | $300 | $0 | $310 |
| Cloudflare R2 | $750 | $0 | $775 |
| AWS S3 Standard | $1,150 | $4,250 | $5,430 |
| GCP Standard | $1,000 | $4,400 | $5,425 |
| Azure Hot | $900 | $4,050 | $4,980 |
The difference between the cheapest and most expensive option at high egress is over $5,000 per month at just 50 TB. At petabyte scale, this gap becomes hundreds of thousands of dollars per year.
The Hidden Costs Nobody Talks About
Beyond the headline numbers, there are cost traps that only show up after you have committed to a provider.
Early Deletion Penalties
Every provider with minimum storage duration charges you for the full period even if you delete data early. Here is what that looks like in practice:
You upload 5 TB of temporary processing data to Wasabi. Three weeks later, the processing job finishes and you delete the data. Wasabi charges you for the remaining 69 days of the 90-day minimum. That is roughly $20 in storage fees for data that no longer exists. Do this regularly (which is common in AI and data processing pipelines) and early deletion penalties can add 15 to 30 percent to your effective storage costs.
AWS Glacier Deep Archive has a 180-day minimum. Delete a 1 TB dataset after 30 days and you pay approximately $5.94 for data you no longer have. That is over 5 months of storage charges on deleted data.
API Request Costs at Scale
This is the one that shocks people the most when they see it itemized for the first time.
If your application makes 100 million GET requests per month against S3 (which is not unusual for a busy AI or SaaS product), your S3 request bill is $40 per month. That sounds small. But add 20 million PUT requests for logging and data processing at $0.005 per 1,000, and that is another $100. LIST operations for batch jobs, COPY operations for replication, and multipart uploads for large files push it higher.
For context, Wasabi charges nothing for API requests. Cloudflare R2 charges $4.50 per million writes and $0.36 per million reads. At 100 million reads and 20 million writes, R2 costs $36 + $90 = $126 per month in API fees, actually more than S3 for this specific request pattern.
The point is not that one provider is always cheaper. The point is that your request pattern determines which provider is cheapest for you, and no generic comparison can tell you that.
Cross-Region Transfer Fees
If you operate in multiple regions (which most production SaaS and AI systems do), moving data between regions within the same cloud provider is not free.
AWS charges $0.02/GB for cross-region S3 transfers. At 5 TB of cross-region replication per month, that is $100. GCP charges $0.01 to $0.08/GB depending on the regions. For multi-cloud architectures, transferring data between providers costs even more because it counts as standard internet egress.
Cloudflare R2 and Backblaze B2 (via Cloudflare) eliminate this concern for egress, but you still pay for ingress bandwidth from your origin cloud.
How to Choose: A Decision Framework That Actually Works
After analyzing hundreds of cloud storage bills across startups and scaleups, here is the framework we use at LeanOps to recommend the right provider for each workload.
Step 1: Calculate Your Egress-to-Storage Ratio
Divide your monthly egress (in GB) by your total storage (in GB). This single number tells you more about which provider to choose than any other metric.
- Ratio below 0.2 (low egress, mostly write and archive): Wasabi or Backblaze B2 wins on pure cost. Egress is not your main expense, so optimize for the lowest per-GB storage price.
- Ratio 0.2 to 1.0 (moderate egress, typical SaaS or API workload): Backblaze B2 + Cloudflare or Cloudflare R2 deliver the best TCO. You need predictable egress costs more than the absolute lowest storage price.
- Ratio above 1.0 (heavy egress, content delivery or inference serving): Cloudflare R2 is almost always the winner. Zero egress at any volume makes cost completely predictable regardless of traffic spikes.
Step 2: Assess Your Data Churn Rate
How much data do you upload and then delete within 90 days? If the answer is "a lot" (common in data processing, ML training pipelines, and temporary build artifacts), avoid providers with minimum storage durations. Backblaze B2 and Cloudflare R2 have no minimums. S3 Standard has none. Wasabi's 90-day minimum and Glacier's various minimums make them poor choices for high-churn workloads.
Step 3: Check Your Ecosystem Lock-In
If 80 percent of your compute runs on AWS, switching your storage to Wasabi or R2 to save on per-GB costs might increase your data transfer costs between storage and compute. The cheapest storage is not the cheapest storage if you are paying $0.09/GB to pull it back into your compute environment every time your application needs it.
For teams heavily invested in one cloud provider, optimizing within that provider's storage tiers (using lifecycle policies, Intelligent-Tiering, and access analytics) often delivers better net savings than switching providers entirely.
Step 4: Project Forward 12 Months
Your storage and egress volumes will grow. Many teams choose a provider based on current scale only to find it becomes expensive at 3 to 5x volume. Run the TCO comparison at your projected 12-month data volume, not just today's numbers. Providers with usage-based pricing tiers (like AWS's volume discounts on egress) may become more competitive at scale, while flat-rate providers maintain their advantage linearly.
The Architecture Patterns That Save the Most Money
Choosing the right provider is step one. Architecting your storage layer correctly is where the real savings compound.
Pattern 1: Hot/Warm/Cold Tiering Within a Single Provider
The fastest path to savings for teams already on a hyperscaler. Use S3 Storage Lens (AWS), Storage Insights (GCP), or Blob Analytics (Azure) to identify which data is actually hot versus assumed hot. Most teams find that 60 to 80 percent of their stored data has not been accessed in the past 30 days and can move to a cheaper tier immediately.
Estimated savings: 25 to 45 percent reduction in storage costs without changing providers or architectures.
Pattern 2: Primary Cloud + Zero-Egress Edge Storage
Keep your primary application data on your cloud provider (S3, GCS, Azure Blob) where it integrates with your compute layer. Move frequently served content, CDN origins, backups, and large media files to Cloudflare R2 or Backblaze B2 + Cloudflare for zero-egress delivery.
This hybrid approach gives you the best of both worlds: ecosystem integration for compute-adjacent data and zero egress for delivery-heavy data. We see this pattern across many of our cloud cost optimization engagements.
Pattern 3: Tiered Backup Architecture
Your production database backups do not need the same storage class as your daily incremental snapshots. Keep the last 7 days of backups on hot storage for fast recovery. Move 8 to 30 day backups to Standard-IA or Nearline. Archive anything older than 30 days to Glacier or equivalent cold storage.
Most teams keep all backups in the same storage class as production data. Implementing a tiered backup architecture typically saves 40 to 60 percent on backup storage costs alone.
What the Providers Do Not Want You to Know
Let me share a few things I have learned from auditing cloud storage bills that the providers will never put in their marketing materials.
S3 Intelligent-Tiering has a monitoring fee. AWS charges $0.0025 per 1,000 objects per month for the monitoring and automation that powers Intelligent-Tiering. For buckets with millions of small objects (log files, sensor data, small JSON documents), this monitoring fee can exceed the savings from automatic tiering. Below 128 KB per object, Intelligent-Tiering often costs more than just keeping everything in S3 Standard.
Wasabi's fair use egress is not unlimited. The policy states that "storage must be in line with the amount of data being downloaded." In practice, if your egress consistently exceeds your stored volume, Wasabi may contact you, throttle your bandwidth, or suggest you move to a different plan. This is fine for backup and archive workloads but can be a nasty surprise for content delivery use cases.
GCP Archive's 365-day minimum is the longest in the industry. If you miscategorize data as archival and need it back within a year, you pay both the retrieval fee and the remaining storage charges on the minimum duration. One wrong classification on a 10 TB dataset costs you roughly $48 to $120 in wasted minimum-duration charges.
Cloudflare R2 does not have SLA guarantees matching S3. R2's service level agreement offers credits for downtime but does not match the 11 nines durability guarantee that S3, GCS, and Azure provide. For most workloads this is fine. For compliance-critical or regulated data where durability SLAs are contractually required, verify R2's guarantees meet your requirements before migrating.
What To Do This Week
Step 1: Pull your last three months of cloud storage invoices. Break down spend into storage capacity, egress, API requests, and any other line items. Calculate your egress-to-storage ratio.
Step 2: Run the TCO comparison at your specific volumes using the provider pricing in this post. Do not use per-GB comparisons. Use your actual egress, request counts, and data churn patterns.
Step 3: Identify your quick wins. Can you implement lifecycle policies on existing storage? Can you move CDN origin data to zero-egress storage? Can you eliminate backups sitting in hot storage tiers?
If you want help with the full analysis, LeanOps runs cloud cost optimization engagements that routinely cut storage costs by 30 to 50 percent in 90 days. We do the audit, the architecture planning, and the implementation. And if we do not hit 30 percent savings, you do not pay.
Further reading:
- AWS S3 pricing page for current per-region storage, request, and egress rates
- Cloudflare R2 pricing documentation for the zero-egress model and API cost breakdown
- Backblaze B2 + Cloudflare Bandwidth Alliance details for the free egress partnership setup
- FinOps Foundation cloud storage cost benchmarks for industry-wide storage cost analysis