KruskalCode software development agency logo

AWS S3 vs Cloudflare R2: Choosing Cloud Storage for Media

cloud storage

2026-08-12

Deciding between AWS S3 and Cloudflare R2 for media-heavy web products? We break down the costs, performance, and features to help you choose the right cloud.

AWS S3 vs Cloudflare R2: Choosing Cloud Storage for Media

By KruskalCode

7 min read • Expert insights

When building media-heavy web products, a critical decision is where to store your media. The choice between AWS S3 and Cloudflare R2 isn't a one-size-fits-all situation; it really depends on your specific use case, cost structure, and existing infrastructure. Here at KruskalCode, we often see S3 as the clear choice for clients already deep into AWS. But if you're focused on avoiding egress costs, want something simpler, and need solid CDN integration right out of the box, R2 is a very strong contender. Let me explain our thinking.

Understanding AWS S3: The Industry Standard

AWS S3, the industry's long-standing object storage standard, is mature, battle-tested, and feature-rich. We recommend S3 for clients needing:

  • Deep Integration: Seamless integration with existing AWS services like EC2, Lambda, and RDS, simplifying data pipelines and security within a unified environment.
  • Advanced Features: Advanced features including lifecycle policies for automatic tiering (e.g., Glacier), versioning, robust IAM controls, event notifications, and cross-region replication. S3 really gives you unmatched granular control for complex data management and compliance needs.
  • Global Reach and Durability: Exceptional 99.999999999% durability and global regions allow hosting media close to users, reducing latency when paired with CloudFront.

S3's primary drawback is egress cost. While storage is affordable (from $0.023/GB/month for standard), data leaving AWS incurs charges. For media-heavy products, egress can quickly become 30-50% of the total S3 bill, a critical factor to model during planning.

Takeaway: S3: Powerful, feature-rich, ideal for existing AWS users or advanced data management. Just be mindful of high egress costs for high-traffic media.

Introducing Cloudflare R2: The Egress-Free Challenger

Cloudflare R2 Storage is a newer solution, specifically designed to eliminate egress costs. Its core value proposition: zero egress fees, making it highly attractive for media-heavy products serving content directly to users.

We increasingly consider R2 for projects due to:

  • No Egress Fees: This is the headline feature: zero egress fees. You pay only for storage and operations (reads/writes). This offers massive cost savings for high-volume media delivery on websites or mobile apps, like streaming or UGC platforms.
  • Cloudflare Ecosystem: Seamless integration with Cloudflare's CDN, DNS, WAF, and Workers. R2 taps into Cloudflare's global network for efficient, out-of-the-box media delivery from edge locations, often without separate CDN configuration.
  • S3 API Compatibility: S3 API compatibility means existing S3 tools, SDKs, and libraries often work with R2 with minimal changes, reducing migration friction and enhancing flexibility.
  • Simplicity and Predictability: R2's pricing is simpler and more predictable, especially for high-egress scenarios. Storage is around $0.015/GB/month with low operations fees, a significant budgeting advantage.

R2's main point to consider is that it's still relatively new; its feature set isn't quite as extensive as S3's just yet. While robust, it lacks S3's depth in lifecycle policies or complex eventing (though Workers can extend functionality). Deeper integrations with other cloud services are still evolving.

Takeaway: R2: Cost-effective for media delivery with zero egress fees and tight Cloudflare integration, ideal for projects valuing cost predictability and CDN performance.

Key Factors in Our Decision-Making Process

When guiding clients, we focus on key areas:

Pricing Model and Cost Predictability

Egress costs are often the deal-breaker. For high-volume media, S3's egress can dominate the bill. For example, 10TB/month on S3 could cost [NEEDS HUMAN INPUT: typical egress cost range, e.g., $500-$900 depending on region and volume tier] in egress, while R2 charges zero. We provide detailed cost projections. R2's predictable structure offers peace of mind for startups or those with unpredictable traffic.

Performance and CDN Integration

Both perform well. S3 with CloudFront offers a robust global CDN. R2 integrates tightly with Cloudflare's global network. Both provide excellent media delivery with proper caching. The key difference is management: R2's CDN integration is 'out-of-the-box'; S3 requires explicit CloudFront setup.

Ecosystem and Existing Infrastructure

Heavy AWS investment makes migrating media to R2 complex, introducing multiple providers and management overhead. Conversely, for serverless applications (Cloudflare Workers, Vercel/Netlify) or minimal backend, R2 is a clean fit. For greenfield projects or minimizing vendor lock-in, R2 offers flexibility.

Feature Set and Advanced Needs

For complex data lifecycle management, granular logging, or specific compliance (e.g., HIPAA), S3 generally has the edge. R2 suffices for simpler media serving (images, videos, documents). For example, [NEEDS HUMAN INPUT: mention a specific KruskalCode project that needed S3's advanced features, e.g., specific object tagging for an AI pipeline, or deep audit trails for a financial app].

When to Choose Which (KruskalCode's Perspective)

Choose AWS S3 if:

  • Deeply embedded in AWS: Unmatched integration simplifies architecture if using many AWS services.
  • Advanced features needed: Lifecycle policies, extensive IAM, encryption, event notifications, or specific compliance (HIPAA, PCI DSS) favor S3.
  • Egress isn't a primary concern: For internal users or small, infrequently accessed media, egress costs are negligible.

Choose Cloudflare R2 if:

  • Egress costs are a major concern: This is the primary reason; R2 offers significant savings for high-traffic media.
  • Already using Cloudflare: R2 integrates naturally with Cloudflare CDN, DNS, or Workers for excellent performance.
  • Prioritize simplicity and cost predictability: R2's straightforward pricing and ease of use are ideal for startups or simpler storage needs.
  • Avoid vendor lock-in: S3 API compatibility simplifies future provider switches.

Our cloud storage expertise guides clients in optimizing their infrastructure. For example, we recently helped a client [NEEDS HUMAN INPUT: describe a real (but anonymized) client example where KruskalCode helped them choose between S3 and R2, mentioning the specific factors that led to the decision and the outcome. E.g., a high-volume image gallery where R2 saved significant costs, or a complex data analytics platform where S3's features were essential]. We assess your architecture, traffic, and budget to recommend the best long-term solution.

Both AWS S3 and Cloudflare R2 are excellent. The 'better' choice depends on your project's unique requirements, budget, and existing tech landscape. Focus on objective needs, not just marketing, and how each fits your architecture.

FAQ

What are the main differences between AWS S3 and Cloudflare R2?

AWS S3 is a mature, feature-rich object storage service deeply integrated with the AWS ecosystem, but it charges for data transfer out (egress). Cloudflare R2 is a newer service designed for zero egress fees, offering S3 API compatibility and tight integration with Cloudflare's global network, making it cost-effective for high-traffic media.

Which is cheaper for media-heavy websites, S3 or R2?

For media-heavy websites with high data transfer out, Cloudflare R2 is typically cheaper due to its zero egress fee policy. AWS S3's egress charges can quickly accumulate and become a significant portion of the total bill as traffic scales, even if base storage costs are similar.

Can I use Cloudflare R2 with other cloud providers like AWS or GCP?

Yes, you can use Cloudflare R2 even if your compute resources (e.g., servers, serverless functions) are hosted on AWS, GCP, or any other provider. R2's S3 API compatibility means your application can interact with it using standard S3 SDKs, regardless of where your backend runs.

Does Cloudflare R2 include a CDN?

While R2 itself is storage, it is tightly integrated with Cloudflare's global CDN network. When you serve content from R2, it automatically benefits from Cloudflare's caching and edge delivery, effectively providing CDN capabilities without separate configuration.

Is it difficult to migrate from AWS S3 to Cloudflare R2?

Due to R2's S3 API compatibility, migration can often be relatively straightforward for basic storage and retrieval. Many tools and SDKs that work with S3 can be reconfigured to point to R2 with minimal changes. However, if you rely on S3's more advanced features (like complex lifecycle policies or event notifications), you might need to re-architect parts of your data management logic.

What are the typical use cases for Cloudflare R2?

Cloudflare R2 is ideal for serving static assets (images, videos, audio files, documents) for websites and mobile applications, storing user-generated content, hosting backups where egress costs are a concern, and as a backend for serverless applications that need object storage without unpredictable bandwidth charges.

Back to blog