Prices dated and sourced
CNCodeNexon

Hosting, WordPress and Software Guides

Hosting & CloudComparison

Amazon S3 vs Cloudflare R2 vs Backblaze B2: Storage Costs Compared

By

Founder and Tech Writer, CodeNexon

Updated • 10 min read

Key Takeaways

  • ▪Cloudflare R2: $0.015 per GB-month with free egress.
  • ▪Backblaze B2: $6.95 per TB-month, with free egress up to 3 times stored data.
  • ▪Amazon S3 Standard: about $0.023 per GB-month, with downloads about $0.09 per GB after 100 GB.
  • ▪For backups B2 is cheapest. For frequently downloaded files R2 usually wins.
In this guide
  1. What object storage is
  2. The four parts of an object storage bill
  3. Prices side by side
  4. The same workloads on all three
  5. Choosing between them
  6. Practical tips for any provider
  7. Moving between providers
  8. Estimating your own bill
  9. Frequently asked questions
  10. Sources

For storing files and serving them to the public, Cloudflare R2 is usually the cheapest of the three because it charges nothing for data downloaded from it, while storage costs $0.015 per GB a month. Backblaze B2 has the lowest storage price at $6.95 per TB a month and includes free downloads up to three times the amount you store, which makes it ideal for backups. Amazon S3 costs the most for storage and downloads but connects directly to the rest of AWS. For a site serving 1 TB of downloads a month from 100 GB of files, that works out to about $1.35 on R2, about $7.87 on B2 and about $85 on S3.

This guide explains how object storage pricing works, compares the three on the same workloads, and helps you pick one.

What object storage is

Object storage holds files, called objects, in containers called buckets. Each object has a key, which works like a file path, and you reach it over the internet with an API or a URL. It is different from the disk on a web server:

Server diskObject storage
SizeFixed. You resize the server to get moreEffectively unlimited
PricingIncluded in the server pricePer GB stored, per request, and sometimes per GB downloaded
AccessOnly from that serverFrom anywhere, over HTTPS
DurabilityOne disk or arrayCopies spread across devices and facilities
Best forThe running applicationBackups, uploads, images, video, downloads, archives

Typical small business uses include website backups, user uploads, product images, video and podcast files, and large downloads such as PDFs or software installers.

All three services here speak the S3 API, the interface Amazon created that most tools now support. A backup plugin, a command-line tool or an app library that works with S3 will usually work with R2 and B2 by changing the endpoint address and keys.

The four parts of an object storage bill

ChargeWhat it isWhy it matters
StorageMonthly cost per GB keptGrows steadily with your data
EgressCost per GB downloaded out of the serviceCan dwarf storage for files people download often
RequestsCost per thousand or million API callsMatters with many small files
Minimum termsMinimum storage duration or file sizeCan make short-lived files more expensive

Egress is the line that surprises people. Storing 100 GB is cheap almost everywhere. Serving those files to visitors, thousands of times a month, is where costs differ by a factor of fifty or more.

Prices side by side

Cloudflare R2 StandardBackblaze B2Amazon S3 Standard, US East
Storage$0.015 per GB-month$6.95 per TB-month, about $0.007 per GBAbout $0.023 per GB-month, first 50 TB
Free storage10 GB-monthFirst 10 GBNot part of the ongoing price
Egress to the internetFreeFree up to 3 times your average stored data, then $0.01 per GBFirst 100 GB a month free across AWS, then about $0.09 per GB
Write-type requests$4.50 per million (Class A)Free (Classes A, B and C)Charged per 1,000 requests
Read-type requests$0.36 per million (Class B)Free (Classes A, B and C)$0.0004 per 1,000 GET requests
Free requests1 million Class A and 10 million Class B a monthFirst 2,500 Class D calls a dayNone ongoing
Minimum storage durationNone on Standard. 30 days on Infrequent AccessNoneNone on Standard

R2 also has an Infrequent Access class at $0.01 per GB-month, with higher request prices, a retrieval charge of $0.01 per GB and a 30-day minimum storage duration. It suits data you rarely read, such as older backups.

On B2, the more expensive Class D calls cost $0.004 per 10,000, with 2,500 free a day. Most backup and file-serving tools use the free classes.

The same workloads on all three

These totals use the prices above. They assume Standard storage, a 30-day month and requests within the free allowances unless stated.

Workload 1: Website backups

You store 200 GB of nightly backups and rarely download them.

ServiceStorageEgressMonthly total
Cloudflare R2190 GB billable at $0.015 = $2.85$0About $2.85
Backblaze B2190 GB at about $0.00695 = $1.32$0About $1.32
Amazon S3200 GB at $0.023 = $4.60$0About $4.60

For backups, B2's low storage price wins. A restore of the full 200 GB would also be free on B2, since it is within three times your stored data. On S3, the first 100 GB of a restore would be free and the next 100 GB would cost about $9.

Where backups are concerned, keep at least one copy in storage your web host cannot touch. How to Back Up a WordPress Site covers the full approach.

Workload 2: Serving downloads

You store 100 GB of files and visitors download 1 TB a month.

ServiceStorageEgressMonthly total
Cloudflare R290 GB at $0.015 = $1.35$0About $1.35
Backblaze B290 GB at about $0.00695 = $0.63Free allowance is 3 x 100 GB = 300 GB. The other 724 GB at $0.01 = $7.24About $7.87
Amazon S3100 GB at $0.023 = $2.30924 GB beyond the free 100 GB at about $0.09 = $83.16About $85.46

Request charges would add a little on each service with many small files. Here R2's free egress makes a large difference. S3's bill is almost entirely downloads.

Note the B2 line. Once downloads exceed three times your stored data, B2 charges $0.01 per GB, which is still far below S3. Backblaze also notes that many CDN and compute partners waive the overage, so serving B2 files through a partner CDN can keep egress free.

Workload 3: Many small image files

You store 20 GB across 2 million product images, upload 50,000 a month and serve 30 million image requests a month, totalling 300 GB of downloads.

ServiceStorageEgressRequestsMonthly total
Cloudflare R210 GB billable = $0.15$030 million reads: 20 million beyond the free 10 million at $0.36 per million = $7.20. Writes within the free millionAbout $7.35
Backblaze B210 GB billable = $0.07Free allowance 60 GB. 240 GB at $0.01 = $2.40Free for these classesAbout $2.47
Amazon S320 GB = $0.46200 GB beyond free 100 GB at $0.09 = $1830 million GETs at $0.0004 per 1,000 = $12, plus upload requestsAbout $30 or more

In practice, you would put a CDN in front of images, so most requests never reach the storage service at all. What Is a CDN? explains how caching cuts request and egress charges.

Choosing between them

Choose Cloudflare R2 if

  • People download your files often, and egress would be your largest cost.
  • You already use Cloudflare for DNS or as a CDN.
  • You want predictable bills where download spikes do not change the price.

The trade-off is a higher storage price than B2, and charges per million operations once you pass the free allowance.

Choose Backblaze B2 if

  • You store a lot and download little, such as backups and archives.
  • You want the lowest storage price and no request charges for common operations.
  • You serve files through a CDN partner that waives B2 egress.

The trade-off is that downloads beyond three times your stored data are charged, and B2 is a single-purpose service without the wider platform of AWS or Cloudflare.

Choose Amazon S3 if

  • Your application already runs on AWS and uses other AWS services.
  • You need specific S3 features, storage classes or compliance tools.
  • Your files are mostly read by other AWS services in the same region rather than downloaded to the public internet.

The trade-off is cost, especially egress to the internet.

Practical tips for any provider

  • Set lifecycle rules to delete old backups automatically. Keeping 30 days of nightly backups is a common target, and older copies only cost money.
  • Do not make buckets public by default. Share files through a CDN, a custom domain or signed URLs, and keep private data private.
  • Use a custom domain for public files, such as files.example.com. If you ever switch providers, your links keep working.
  • Turn on versioning for backup buckets, so an overwrite or deletion can be undone.
  • Set a budget alert on any usage-billed account. A misconfigured public bucket or a hotlinked file can generate a surprising bill.
  • Encrypt sensitive backups before upload, especially database exports containing customer data.

Moving between providers

Because all three support the S3 API, moving data is mostly a matter of copying. Tools such as rclone copy between any S3-compatible services:

rclone sync s3remote:my-bucket r2remote:my-bucket --progress

Plan the copy carefully on S3, since downloading everything counts as egress. Moving 1 TB out of S3 would cost roughly $83 at about $0.09 per GB beyond the first free 100 GB. That one-off cost is worth knowing before you choose where to start.

Estimating your own bill

You can estimate any of the three in five minutes with three numbers from your own site.

  1. How much do you store? Check the size of your uploads folder, backup archives or media library. A small business site with a few years of images is often 5 to 30 GB. Nightly backups kept for 30 days multiply your site size by 30 unless the backups are incremental.
  2. How much is downloaded each month? Your hosting control panel or CDN dashboard shows bandwidth. Count only the files you would move to object storage, not your HTML pages.
  3. How many files are requested? Roughly the number of image and file views a month. Your analytics page views multiplied by images per page is a reasonable estimate.

Then apply each provider's prices:

StepCloudflare R2Backblaze B2Amazon S3
Storage(GB minus 10) x $0.015(GB minus 10) x about $0.00695GB x about $0.023
Egress$0(downloads minus 3 x stored) x $0.01, if positive(downloads minus 100 GB) x about $0.09, if positive
RequestsReads above 10 million x $0.36 per millionUsually $0GET requests x $0.0004 per 1,000

If one line dominates, that tells you which provider suits you. When egress is the big number, R2 is usually the answer. When storage is the big number and downloads are small, B2 usually is.

Recheck your estimate after the first full month of real usage. Every provider's dashboard shows actual storage, egress and request counts.

Frequently asked questions

Is Cloudflare R2 cheaper than Amazon S3?

For files that are downloaded often, yes. R2 charges $0.015 per GB a month for storage and nothing for egress, according to Cloudflare's pricing page. S3 Standard storage costs about $0.023 per GB a month, and downloads beyond the first free 100 GB cost about $0.09 per GB.

What does Backblaze B2 cost?

Backblaze lists B2 storage at $6.95 per TB per month, with the first 10 GB free. Egress is free up to three times your average monthly stored data, then $0.01 per GB. Class A, B and C API calls are free, and there are no minimum storage duration fees.

Which is best for website backups?

Backblaze B2 is usually cheapest for backups because it has the lowest storage price and restores within three times your stored data are free. Cloudflare R2 is also inexpensive. Keep backups in storage separate from your web host, and use lifecycle rules to delete old copies.

What is egress in cloud storage?

Egress is data transferred out of the storage service, such as visitors downloading files. Many providers charge per GB for it, and for frequently downloaded files it can cost far more than storage. Cloudflare R2 charges no egress fees, and Backblaze B2 includes three times your stored data free.

Do R2 and B2 work with tools built for S3?

Generally, yes. Both support the S3 API, so backup plugins, command-line tools and code libraries designed for S3 usually work by changing the endpoint address, access key and secret key. Check the tool's documentation for S3-compatible storage settings.

Should I put a CDN in front of object storage?

Usually, for public files. A CDN caches files near visitors, which speeds up delivery and reduces the number of requests and downloads billed by the storage service. Cloudflare R2 integrates with Cloudflare's CDN, and Backblaze notes that many CDN partners waive B2 egress.

What is the free tier for Cloudflare R2?

Cloudflare lists 10 GB-month of Standard storage, 1 million Class A operations and 10 million Class B operations free each month. Egress is free at all levels. Infrequent Access storage has no free tier and a 30-day minimum storage duration.

Sources

Prices were read on October 10, 2026.

Update history

  • First published.

About the author

Shubham Handore founded CodeNexon in 2024 and writes its guides on hosting, WordPress and the software small teams use to run a business online.

View author profile
Object storageCloudflare R2Backblaze B2Amazon S3