Object storage explained: when you need it vs alternatives

Object storage is designed for handling massive amounts of unstructured data: backups, media libraries, logs, or SaaS user uploads. Unlike block storage (used by databases) or file storage (used by operating systems), object storage focuses on scalability, durability, and accessibility over the internet.
You’ll need it when:
- You store files that scale from gigabytes to petabytes.
- Data is accessed from multiple locations, apps, or users.
- You require durability guarantees (often “11 nines” or 99.999999999% durability).
Alternatives include:
- Block storage for low-latency, high-IOPS workloads like transactional databases.
- File storage/NFS for shared file systems across multiple VMs.
For most SaaS applications, object storage is the backbone for user uploads, backups, and static asset delivery.
Amazon S3: the standard (but not always cheapest)
Amazon S3 has become the industry reference point. It offers unmatched ecosystem integration, global presence, and storage tiers (Standard, IA, Glacier). However, it’s not the cheapest option once you factor in all hidden costs.
Real pricing structure with examples
- Storage: $0.023/GB per month (Standard tier, US-East-1).
- Requests: $0.005 per 1,000 PUT/GET operations.
- Egress (data transfer out): $0.09/GB to the internet.
Example (100GB stored, 100GB downloaded monthly):
- Storage: $2.30/month
- Egress: $9.00/month
- Requests: negligible for small workloads (~$0.10)
- Total: ~$11.40/month
Hidden costs: requests, transfers, storage classes
The hidden trap lies in:
- Frequent requests: API-heavy apps rack up costs.
- Cross-region transfers: Data copied between regions adds fees.
- Storage classes: IA (Infrequent Access) and Glacier reduce storage costs but spike retrieval and egress costs.
S3 is reliable and flexible, but costs balloon when your workload involves frequent downloads or global delivery.
Cloudflare R2: the disruptor with zero egress fees
Cloudflare R2 shook the market with no egress fees, a radical change for developers frustrated with S3’s expensive data transfer.
When «no egress fees» actually matters
If your application serves large amounts of data directly to end users (video, static files, APIs), R2 saves significant money. Example: streaming 1TB/month costs $90 in S3 egress but $0 in R2.
However, if your use case is storage-heavy with minimal downloads (e.g., backups), the benefit is smaller.
Limitations and S3 API compatibility
- API compatibility: Mostly S3-compatible, but certain advanced features are missing.
- Durability: Similar to S3’s “11 nines,” but Cloudflare has less battle-tested history.
- Performance: Excellent edge delivery if combined with Cloudflare CDN, but limited availability regions compared to AWS.
Backblaze B2: the budget-friendly challenger
Backblaze B2 positions itself as the low-cost, no-frills alternative. It’s especially appealing for startups and SMBs seeking straightforward pricing.
Ideal use cases for B2
- Backups and archives: Cheap long-term storage.
- Small SaaS teams: Hosting user-uploaded assets without AWS complexity.
- Media distribution: Works well with CDN integration.
CDN integration and bandwidth considerations
B2 charges $0.01/GB for egress—cheaper than S3 but not free. However, Backblaze has partnerships with Cloudflare and Fastly, allowing free egress if paired with these CDNs.
Real cost calculator: 100GB, 1TB, 10TB scenarios
Scenario 1: 100GB stored, 100GB downloaded/month
- S3: ~$11.40
- R2: ~$2.00 (storage only)
- B2: ~$3.00 (storage + egress)
Scenario 2: 1TB stored, 1TB downloaded/month
- S3: ~$114
- R2: ~$20
- B2: ~$30
Scenario 3: 10TB stored, 10TB downloaded/month
- S3: ~$1,140
- R2: ~$200
- B2: ~$300
R2 dominates cost-sensitive scenarios with heavy egress.

Technical considerations: APIs, durability, latency
- APIs: All three offer S3-compatible APIs, but R2 may lack advanced lifecycle policies found in S3.
- Durability: All claim 11 nines, though AWS has longer proof in production.
- Latency: AWS offers more regional zones, while R2 leverages Cloudflare’s global edge network. B2’s performance depends on integration with CDNs.
Hybrid strategies: combining multiple providers
Many teams mix providers to balance cost and resilience:
- S3 for mission-critical workloads, R2 or B2 for static assets.
- Backups on B2, active delivery on R2.
- S3 primary, B2 replication for cost savings and redundancy.
Migration between providers: tools and costs
Migrating data is non-trivial. Options include:
- Rclone: Supports sync between all three providers.
- Cloudflare + B2 integration: Seamless migration pipelines.
- Data transfer costs: Beware of egress fees when moving large datasets out of S3—it’s often the biggest barrier.
Conclusion
- S3 is the standard: reliable but expensive when egress is heavy.
- R2 is disruptive: unbeatable when you deliver lots of data to users.
- B2 is budget-friendly: simple pricing and great for backups, especially when paired with CDN deals.
For architects and technical teams, the optimal choice depends on workload patterns: storage-heavy, egress-heavy, or hybrid. Cost calculators should guide decisions, but hidden fees and migration costs must be factored into long-term strategy.
FAQs
Is R2 always cheaper than S3?
No. If your workload is storage-heavy but rarely downloaded, S3’s deep archive classes may be cheaper.
Can I migrate 10TB from S3 to R2 for free?
Not directly—S3 will charge egress fees. A hybrid approach with CDN partnerships can reduce costs.
Which is best for a SaaS MVP?
If you expect heavy user downloads, R2 saves money. For light usage, B2 is cheaper. S3 is safer for compliance-heavy MVPs.