Market assessment · Advise

The cheapest cloud for serving traffic is the one nobody benchmarks

Three of the four companies running general-purpose compute at global scale charge between 8.7 and 12 cents to move a gigabyte to a customer's browser. The fourth charges nothing at all, and it is largely absent from public comparisons because it arrived from the content-delivery side rather than the compute side. This report prices it, including the workloads where the answer is to stay put.

38 PAGES EVIDENCE-LABELED FREE TO READ
Commission an assessment

The line that decides the bill is not the one every comparison prices.

Public cloud comparisons price compute. They put Lambda next to Workers, argue about cold starts and GB-seconds, and stop there. On anything that serves traffic to end users, compute is a rounding error and outbound data transfer is the invoice. AWS charges 0.09 dollars per gigabyte beyond the first 100 GB. Azure charges 0.087. Google Cloud Premium Tier charges 0.12 per gibibyte to North America. Cloudflare's own documentation states that egressing from R2, including through the Workers API, the S3 API and r2.dev domains, does not incur data transfer charges at all. Ten terabytes a month is 913 dollars on AWS, 882 on Azure, 1,137 on Google Cloud, and nothing on Cloudflare. Same bytes, every month.

The waivers announced in 2024 are frequently cited as having closed that gap. They did not. Google, AWS and Microsoft each dropped transfer charges for customers leaving their platform, and the EU Data Act bans switching fees outright from January 2027. Every one of those measures concerns data leaving on exit. None of them touches what it costs to serve your own users. Egress-on-exit was lock-in and regulators removed it; egress-on-operation is revenue and nobody has. The qualification belongs here rather than buried: every hyperscaler figure in this report is list price, an enterprise holding a committed-spend agreement may pay 40 to 70 percent below it, and the gaps shown should be read as an upper bound rather than a quote.

Twelve findings on what the four clouds actually charge

All pricing captured on 22 August 2026 from each vendor's own current pricing page. A vendor pricing page is a primary source for what that vendor charges, and those figures are labeled fact. Vendor language about what the pricing means is labeled vendor claim. The places where Cloudflare loses carry the same weight as the places where it wins.

01

Three providers charge for egress. One does not, and says so in writing

AWS charges 0.09 dollars per gigabyte for S3 data transfer out beyond the first 100 GB. Azure charges 0.087 beyond 100 GB. Google Cloud Premium Tier charges 0.12 dollars per gibibyte to North America beyond the first gibibyte. Cloudflare's R2 documentation states that egressing directly from R2, including via the Workers API, S3 API and r2.dev domains, does not incur data transfer charges and is free.

02

At ten terabytes a month the gap is roughly a thousand dollars, for the same bytes

Ten terabytes of outbound traffic costs 913 dollars on AWS, 882 on Azure and 1,137 on Google Cloud at published rates. On Cloudflare it costs nothing. This is arithmetic on four vendor pricing pages captured on 22 August 2026, not a modeled estimate, and it repeats every month.

03

Cloudflare is not cheaper on compute, and the honest comparison says so

Lambda's free tier is one million requests and 400,000 GB-seconds a month, perpetual rather than introductory. Ten million monthly requests through a small function costs under two dollars there and five on Cloudflare, because five dollars is the Workers Paid floor. Attach the terabyte of traffic that execution exists to serve and the position reverses by a factor of seventeen.

04

The stateful and scheduled workloads worth avoiding two years ago are now serviceable

Durable Objects provide per-object state with an embedded SQLite database at 0.15 dollars per million requests, with jurisdiction-restricted namespaces for the European Union, the United States and FedRAMP-Moderate data centers. Cron Triggers are supported on Workers. Containers exist for work that exceeds an isolate. The constraint that remains real is memory: 128 MB per isolate, and no plan raises it.

05

The residency story is partial, and the distinction matters

Cloudflare documents jurisdictions as enforcing where a Durable Object runs and stores data, while location hints are explicitly described as best effort and not a guarantee. Object state can be pinned; general Workers execution is distributed by design. A workload with a hard residency obligation can be built here, but only deliberately, and never by accident.

06

Low-code platforms charge rent per person, and generated code makes that rent optional

Retool's Business tier is 50 dollars per builder per month on annual billing plus 15 per internal user. Power Apps Premium is 20 dollars per user per month. Cloudflare charges for usage, not for seats. One internal application team of five builders and twenty users is a 6,540 dollar annual difference before a line of the application is written.

07

Forty dollars per gigabyte-month is the number that should end the conversation

Microsoft's published Dataverse capacity add-on rate is 40 dollars per gigabyte per month. Cloudflare D1 is 0.75, Durable Objects SQLite storage is 0.20, and R2 is 0.015. The same hundred gigabytes of application data costs 48,000 dollars a year in the first case and 18 dollars in the last.

08

Three configuration surfaces is a barrier to a person and an advantage to an assistant

Only the command-line tool can deploy, because functions must be compiled first and no dashboard action performs that compilation. The published AI agent integrations read account state and manage containers but not contents: there is no tool for writing a single KV value and none for deploying a Worker. The HTTP API fills the rest. A developer learning this cold loses a day. An assistant that has read all three sets of documentation does not.

09

Every important failure mode on this platform is silent

Dashboard drag-and-drop ships static files and no compiled functions, reporting success. A deploy without the right branch argument lands as a preview and reports success. Referrer-restricted API keys fail server-side with an error pointing at the front end. Function responses at extensionless paths are not edge-cached even when the headers ask for it. None of these produces a useful error anywhere, which is exactly the condition under which unsupervised AI configuration goes wrong.

10

The egress waivers announced in 2024 do not change any number in this report

Google, AWS and Microsoft each waived data transfer charges for departing customers during the first quarter of 2024, and from January 2027 the EU Data Act prohibits switching fees outright for EU customers. All of that concerns exit traffic. Ordinary outbound traffic to your own end users is billed exactly as before.

11

Cloudflare clears the procurement bar and has terminated customers over content

SOC 2 Type II, ISO 27001, ISO 27701 and PCI DSS Level 1 Service Provider assessment are all published. Cloudflare also terminated the Daily Stormer in 2017, 8chan in 2019 and Kiwi Farms in 2022. The threshold applied has been extremely high and no ordinary business is near it, but the decision is Cloudflare's, made under public pressure, on a timescale of days, by the company that is also resolving your DNS and terminating your TLS.

12

The product you would have picked two years ago is the one Cloudflare tells you not to start on

The Pages documentation states that Workers supports most Pages use cases, offers a broader feature set, is Cloudflare's primary platform for building applications, and that new projects should start with Workers. The compatibility matrix confirms the direction: Cron Triggers, Queue Consumers, Rate Limiting, Tail Workers and Logpush are all Workers-only. Read it as maintenance mode rather than end of life.

What it costs to serve ten terabytes in one month

Each provider's published free allowance and first-tier rate applied to 10,240 GB of outbound traffic to North America. List prices only. Committed-spend agreements are not public and would reduce the three paid figures, which is the largest single qualification on this comparison and the reason a reader holding an enterprise agreement should treat these gaps as an upper bound.

0 USD

Cloudflare

R2's documentation states that egressing directly from R2, including via the Workers API, S3 API and r2.dev domains, is free. The Workers pricing page carries the matching statement for compute: requests to static assets are free and unlimited, with no separate charge for bandwidth.

No volume dimension to bill

882 USD

Microsoft Azure

First 100 GB per month free, then 0.087 dollars per gigabyte for the next 10 TB from North America and Europe, stepping down to 0.083, 0.07 and 0.05 at higher volumes.

Cheapest of the three that charge

913 USD

Amazon Web Services

First 100 GB per month free, aggregated across services and regions, then 0.09 dollars per gigabyte from US East regions. S3 Standard storage is 0.023 per gigabyte-month against R2's 0.015, which is real and not decisive.

Storage is a rounding error; transfer is the bill

1,137 USD

Google Cloud

Premium Tier gives the first gibibyte free, then charges 0.12 dollars per gibibyte to North America up to one tebibyte, 0.11 to ten tebibytes and 0.08 above that. The highest published operational egress rate of the four.

Most expensive on the line that matters

What moves, what stays, and what stops it

Most things move, and the things that do not, do not move for technical reasons rather than cost reasons. The classification is mine and another reader would shift one or two. The binding constraint attached to each is documented rather than argued.

Move

Marketing site, brochure site, docs

The platform's strongest case and the one with no qualifications attached. A representative site of 25,000 monthly page views, 10,000 function calls and 8 GB of egress fits inside the free allowance with room to spare, because static requests are not metered at all.

No binding constraint

Move

Media or file distribution at volume

The egress arithmetic is overwhelming here, but the service-specific terms name the products a customer must use to serve video and large files through the CDN, and reserve the right to limit accounts that do not. Workers and R2 sit inside the named Developer Platform; a raw file library behind the CDN does not.

Read the CDN clause first

Move

API serving external consumers

This is where the asymmetry is widest, because the entire purpose of the workload is bytes leaving the network toward somebody else's client.

Egress asymmetry at its largest

Move to Workers

Scheduled jobs and background refresh

Cron Triggers are supported on Workers and marked unsupported for Pages in Cloudflare's own compatibility matrix. Scheduled invocations may run up to 15 minutes. That is a product limitation rather than a platform one, and it decides which product you start on.

Workers only, 15 minute ceiling

Move, deliberately

Stateful sessions and collaborative state

Durable Objects are addressed by name so every request for an identity reaches the same instance, each with its own SQLite database and 25 billion rows read a month included on the paid plan. Design work rather than a cost question, and also the heaviest lock-in on the platform.

A rewrite to leave, not a port

Possible, deliberately

Regulated workload with residency rules

Jurisdiction-restricted namespaces for eu, us and fedramp pin where an object runs and stores data. Location hints do not. Pinning object storage is not the same as pinning every execution path that touches it.

Read the jurisdiction docs yourself

Containers or stay

Long-running batch processing

The free plan allows 10 milliseconds of CPU per request, the paid plan defaults to 30 seconds and permits five minutes, and scheduled and queue work is capped at 15 minutes. Containers exist but change the pricing model, so the comparison has to be run again.

Bounded CPU, 128 MB isolate

Stay

Data warehouse or BI workload

Nothing here corresponds to BigQuery, Redshift or Synapse. No amount of egress saving changes that, and a team that tries to move it will conclude the platform is a toy.

No equivalent product exists

Stay

Model training or GPU compute

There is no managed model-training service and no general-purpose accelerator fleet. Workers AI is inference against hosted models, which is a different product from renting GPUs by the hour.

No accelerator fleet

Stay

Large in-memory application

Each isolate can consume up to 128 MB including the JavaScript heap and WebAssembly allocations. No plan raises it. A workload that needs a large dataset resident cannot be made to fit by paying more.

128 MB, no paid upgrade

Run the numbers again

Internal pipeline with no egress

The entire cost argument rests on egress asymmetry. A pipeline whose data never leaves the provider's network has little of it, and for that workload the comparison should be run on compute and storage alone, where Cloudflare frequently loses.

The advantage does not apply

The report takes five objections seriously rather than reassuring you past them. Lock-in is low for static and edge work, moderate for D1 and R2, and high for anything built on Durable Objects, because nothing else has that primitive with those semantics. Concentration is real: W3Techs puts Cloudflare in use by 24.8 percent of all websites and 84.4 percent of those whose reverse proxy it can identify, as at August 2026. So are the outages, and two multi-hour incidents in seven months are stated without spin, including the 18 November 2025 failure Cloudflare's own postmortem calls its worst since 2019. The smallest case gets separate treatment because it is the cleanest: a five-page business site is being billed an application price for a document, between 200 and 500 dollars a year for capability it does not use, and the box in a closet that was supposed to be free costs about 1,575 dollars a year once somebody's time is counted. Four scenarios run to 2028 with subjective probabilities and, more usefully, the earliest observable sign of each. The one that matters most is also the cheapest to watch: any change to the sentence saying requests to static assets are free and unlimited, or to R2's statement that egress is free. Those two lines are worth re-reading before acting on any of this.

Every claim carries its evidence

This isn't a vendor summary. Every sentence is labeled by what stands behind it: verified fact, vendor claim, third-party estimate, my assessment, hypothesis, or scenario. Sources are numbered and clickable. Forward-looking sections use scenarios with observable tripwires, not forecasts. It's the same method behind every market assessment I write.

The Cheapest Cloud Nobody Benchmarks

Thirty-eight pages, built from public sources with no client brief and no interviews. Read it in the browser or take the PDF.

This is real, published work. Commission one for your decision.

Each report here answers a real question, directed and researched against public sources and evaluated against a stated assumption, then delivered as Word and PDF. If you're weighing a platform, sizing a category, or defending a number to a board, tell me the decision behind it and I'll tell you honestly whether a report is the right tool.

Commission an assessment

See more reports →