Cloudflare R2: Object Storage Without the Data-Transfer Tax

Cloudflare has announced R2, its new object storage service built to eliminate the egress bandwidth fees that typically make up the largest part of a cloud storage bill. R2 is designed around full S3 API compatibility, which means existing tools and applications can be pointed at it without modification.

Breaking Down the Cost Structure

Traditional object storage vendors charge for three separate things: bandwidth, storage capacity, and storage operations. Cloudflare is taking aim at all three with R2.

R2 continues the company's Bandwidth Alliance commitment by charging zero for egress, regardless of request rate. Data can be pulled out of R2 at no cost, removing the fee that is both the largest and hardest to predict in typical cloud environments.

The pricing model does not shift those bandwidth costs elsewhere. R2 lands at $0.015 per GB per month for stored data, undercutting major incumbents on capacity alone.

The company is also rethinking per-operation billing. Infrequent access requests are trivial for providers to serve, yet they usually incur the same charges as high-volume traffic. R2 will zero-rate operations below a threshold planned for the single-digit requests-per-second range. Beyond that, per-operation charges will be significantly lower than what the large providers list, while still allowing R2 to handle heavy request loads without degrading.

Data Migration at Request Time

R2 also addresses the other side of the egress problem: getting data into the platform. Cloudflare is building a migration service for S3-compatible object storage that copies objects over incrementally, as they are requested. This lets teams start serving content from R2 while the data is still moving, effectively running a multi-cloud architecture during the transition period and avoiding a costly, error-prone manual upload process.

Durability and Region Controls

Object storage lives or dies by its durability guarantees. R2 is engineered for 99.999999999% (eleven nines) annual durability, meaning that storing one million objects would statistically result in a single loss once per 100,000 years. Redundancy is spread across multiple copies and numerous regions to withstand regional failures and serve requests with high availability.

R2 gives up some manual control over where data lands to achieve this. The initial design relies on automatic global distribution, though Cloudflare plans to later add jurisdictional restrictions so developers can meet data sovereignty requirements with a single API call, as already exists with Durable Objects.

Workers Integration and the Roadmap

R2's tightest coupling is with the Cloudflare Workers runtime. Developers can bind a Worker to a bucket and run transformation code on objects at read and write time. This opens up straightforward construction of data pipelines without orchestration layers.

Two integrations with other Cloudflare products are on the roadmap: Durable Objects will be configurable to use R2 as a backup target, and Cloudflare Cache will gain automatic integration to extend cache lifetimes for objects that rarely change.

Practical Use Cases

The zero-egress model shifts economics. The classic tradeoff of costly retrieval for cheap storage disappears, so R2 is positioned for content that is accessed frequently. Media files and CDN assets are listed as strong fits, especially when combined with Workers and the Cache API for dynamic caching around the globe.

R2 also fits pipeline scenarios, such as ingesting large volumes of IoT sensor data. A Worker can run on incoming data before storage, and because there is no retrieval fee, moving that stored data onward to other databases or analytics systems becomes dramatically cheaper.

R2 is in closed development with a waitlist open for early access. An open beta is expected to be announced shortly, after which any user will be able to sign up directly.