Cloudflare Workers vs AWS Lambda for Indie Developers (2026)

Cloudflare Workers bills for CPU time, not time spent waiting on the network, starts at $5 a month for 10M requests and charges nothing for egress. AWS Lambda gives you 1M requests and 400,000 GB-seconds free each month, then bills Event Functions by wall-clock duration times memory. For an I/O-bound API, Workers is usually cheaper and simpler. Lambda wins when you need big memory, long jobs, Python or Java, or you already live in AWS.

Editorial title card reading "Cloudflare Workers vs AWS Lambda for Indie Developers (2026)" beside the orange ZeroRaised mark.

Key takeaways

  • Workers Paid costs $5/mo and includes 10M requests and 30M CPU ms, then $0.30 per million requests and $0.02 per million CPU ms, with no charge for duration or egress.
  • Lambda Event Functions include 1M requests and 400,000 GB-seconds free each month, then $0.20 per million requests and $0.0000166667 per GB-second (x86, US East).
  • Workers counts CPU time only: waiting on fetch(), KV reads or database queries does not count. Lambda Event Functions bill the whole duration at your configured memory.
  • AWS launched Lambda Web Functions on 12 Oct 2026: Node.js 24 HTTP servers with up to 128 concurrent requests per environment and active-CPU billing, closer to the Workers model.
  • In our worked example of an I/O-bound API, Workers costs $5.00 at 5M requests and $21.40 at 50M; Lambda at 512 MB costs about $0.80 and $65.63 before data transfer.
On this page 21
  1. TL;DR
  2. Isolates vs microVMs
  3. Lambda's new function types
  4. Pricing side by side
  5. Two worked cost examples (ours)
  6. 5M requests a month
  7. 50M requests a month
  8. Limits that decide it for you
  9. Cold starts, as each vendor documents them
  10. Storage next door
  11. Local dev, frameworks and lock-in
  12. Decision table (ours)
  13. Our pick
  14. Launch it
  15. Frequently asked questions
  16. Is Cloudflare Workers cheaper than AWS Lambda?
  17. Does Cloudflare Workers have cold starts?
  18. Do Lambda function URLs cost extra?
  19. Can I run Python or Java on Cloudflare Workers?
  20. What are AWS Lambda Web Functions?
  21. Sources

Verdict: Pick Cloudflare Workers for a JavaScript or TypeScript API that spends most of its time waiting on databases and other APIs: you pay for CPU time, not waiting time, the floor is $5 a month and egress is free. Pick AWS Lambda if you need more than 128 MB of memory, jobs that run for minutes, Python, Java or .NET, or tight links to S3, DynamoDB and SQS. With only a trickle of traffic, Lambda's free tier can beat Workers' $5 minimum.

Prices and limits come from Cloudflare's and AWS's own pages, checked on 15 Nov 2026. The worked examples and recommendations are ours.

TL;DR#

  • Workers: Free plan of 100,000 requests per day at 10 ms CPU each. Paid is $5/mo, includes 10M requests and 30M CPU ms, then $0.30 per million requests and $0.02 per million CPU ms, and "There are no additional charges for data transfer (egress) or throughput (bandwidth)" (Workers pricing).
  • Lambda: Event Functions include 1M requests and 400,000 GB-seconds a month, then $0.20 per million requests and $0.0000166667 per GB-second on x86 in US East (Lambda pricing).
  • The real difference is billing. On Workers, "Waiting on network requests (such as fetch() calls, KV reads, or database queries) does not count toward CPU time" (Workers limits). On Lambda Event Functions you pay for the whole duration at your configured memory.
  • New on AWS: Lambda Web Functions (12 Oct 2026) run ordinary Node.js HTTP servers with active-CPU billing, which narrows the gap.

Disclosure: ZeroRaised publishes this comparison and is a launch site for bootstrapped products. ZeroRaised has no commercial relationship with Cloudflare or AWS and earns nothing if you use either. Facts come from the linked sources as checked on 15 Nov 2026.

This post covers compute only. For the pieces around it, see Vercel vs Cloudflare Pages for frontends, Turso vs Cloudflare D1 for the database, Cloudflare R2 vs AWS S3 for storage and our SaaS tech stack guide for the whole picture.

Isolates vs microVMs#

Workers run in V8 isolates. Cloudflare: "Instead of creating a virtual machine for each function, an isolate is created within an existing environment." It says an isolate "can start around a hundred times faster than a Node process on a container or virtual machine", and Workers run across "thousands of machines distributed across hundreds of locations" (How Workers works).

Lambda runs on Firecracker microVMs. Amazon Science says "Firecracker powers the AWS Lambda service" and gives AWS "a single microVM for the code that each customer program executes" (Amazon Science). Each execution environment goes through Init, Invoke and Shutdown, and is frozen and reused between calls (Lambda execution environment). It runs in the Region you pick.

Our read: isolates are why Workers can bill in CPU milliseconds and run everywhere for $5. MicroVMs are why Lambda can offer 10 GB of memory, a writable disk and almost any language.

Lambda's new function types#

The Lambda pricing page now lists Event Functions (the classic model) alongside Managed Instances, Durable Functions, MicroVMs and Web Functions (Lambda pricing). Web Functions are the one to watch here. AWS says they run a server "built with Express, Hono, Fastify, Next.js, or any Node.js framework", deploy with aws lambda-web deploy, handle up to 128 concurrent requests per environment, and run "Node.js 24 (nodejs24.x) on Arm64" in five Regions at launch (AWS News Blog). Pricing is $0.30 per million requests, $0.0000276944 per vCPU-second of active CPU and $0.0000036667 per GB-second of memory (Arm, US East), and "Memory is metered for as long as the execution environment exists", including time between requests.

Our read: Web Functions are a month old and the pages we checked do not say whether the free tier applies. Promising, but re-check the docs before you depend on them.

Pricing side by side#

Cloudflare WorkersLambda Event Functions
Free100,000 requests per day, 10 ms CPU per invocation1M requests and 400,000 GB-s per month
Paid entry$5/mo minimum, includes 10M requests and 30M CPU msNo minimum
Requests$0.30 per extra million$0.20 per million
Compute$0.02 per extra million CPU ms$0.0000166667 per GB-s (x86, US East)
What is billedCPU time only; no charge for durationDuration times memory, waiting included, plus Init on cold starts
EgressNo charge100 GB a month free across AWS, then EC2 data transfer rates
HTTP endpointIncludedFunction URLs free; API Gateway HTTP API $1.00 per million

Sources: Workers pricing, Lambda pricing, Lambda execution environment, EC2 on-demand pricing, API Gateway pricing.

Three details that matter:

  • The Workers Free plan is a hard stop. Past 100,000 requests in a day (reset at midnight UTC), "Cloudflare returns Error 1027" unless the route fails open (Workers limits).
  • Lambda bills cold starts. AWS says of the cold start setup time: "You are charged for this time" (Lambda execution environment).
  • Lambda memory sets CPU. "At 1,769 MB, a function has the equivalent of one vCPU" (Lambda quotas). Less memory is cheaper but slower.

Function URLs vs API Gateway. AWS says function URLs "follow the standard Lambda pricing model" and "There are no additional charges for the URL endpoint itself." It recommends API Gateway when you need custom domains, Cognito or OAuth authorizers, validation, caching or throttling (choosing an HTTP invoke method). HTTP APIs cost $1.00 per million requests and REST APIs $3.50 per million in US East, with 1M free calls each for up to 12 months (API Gateway pricing). Our read: start with function URLs. At 50M requests, API Gateway can cost more than the functions behind it.

Two worked cost examples (ours)#

These are our illustrations, not vendor quotes. Our assumptions: a JSON API that checks auth, queries a database and calls one outside API. Each request uses 5 ms of CPU and takes 150 ms wall-clock. Responses average 5 KB. Lambda is an x86 Event Function at 512 MB behind a free function URL. Database costs are ignored, and prices are US East list prices.

5M requests a month#

Workers Paid: 5M requests is inside the 10M included. CPU is 5M × 5 ms = 25M ms, inside the 30M included. Total: $5.00. (5M a month averages about 167,000 a day, over the Free plan's limit.)

Lambda: requests (5M - 1M free) × $0.20 = $0.80. Compute 5M × 0.15 s × 0.5 GB = 375,000 GB-s, inside the 400,000 free. About 25 GB of egress, inside the 100 GB free. Total: about $0.80.

50M requests a month#

Workers Paid: requests (50M - 10M) × $0.30 = $12.00. CPU 250M ms - 30M included = 220M × $0.02 = $4.40. Total: $5 + $12.00 + $4.40 = $21.40.

Lambda: requests (50M - 1M) × $0.20 = $9.80. Compute 50M × 0.15 s × 0.5 GB = 3,750,000 GB-s; minus 400,000 free = 3,350,000 × $0.0000166667 = $55.83. Total: about $65.63, plus roughly 150 GB of egress beyond the free 100 GB at EC2 rates, plus $50.00 if you add an API Gateway HTTP API.

Same Lambda case at 128 MB: 937,500 GB-s, minus 400,000 free = 537,500 × $0.0000166667 = $8.96, so about $18.76 total before egress. Memory tuning is the biggest lever on Lambda, but 128 MB also gets you the smallest CPU share.

Our read: Lambda's free tier wins at small scale, and Workers pulls ahead as an I/O-bound API grows because waiting on your database is free. For CPU-heavy work (images, PDFs, big transforms) the gap narrows, and Workers' 128 MB memory cap may decide it first.

Limits that decide it for you#

LimitCloudflare WorkersLambda Event Functions
Memory128 MB per isolate128 MB to 10,240 MB
TimeFree: 10 ms CPU. Paid: 30 s CPU default, max 5 minutes; no duration limit for HTTP15 minute timeout
Code size64 MiB uncompressed50 MB zipped, 250 MB unzipped; 10 GB container image
PayloadRequest body 100 MB on Cloudflare Free and Pro6 MB request and response (synchronous); 200 MB streamed
DiskNone/tmp 512 MB to 10,240 MB
Account scale100 Workers (Free), 500 (Paid) per account1,000 concurrent executions by default, increasable

Sources: Workers limits, Lambda quotas.

The two that bite: Lambda's 6 MB synchronous payload rules out uploads through the function (use presigned S3 URLs), and Workers' 128 MB rules out loading big files or heavy libraries into memory.

Languages. Workers has "first-class support" for JavaScript, TypeScript, Python and Rust, plus WebAssembly for C, C++, Kotlin and Go (Workers languages). Lambda Event Functions have managed runtimes for Node.js, Python, Java, .NET and Ruby, with Go and Rust on the OS-only provided.al2023 runtime (Lambda runtimes).

Cold starts, as each vendor documents them#

We are not quoting third-party benchmarks. Cloudflare says isolates eliminate "the cold starts of the virtual machine model" (How Workers works) and requires a Worker to start within 1 second. AWS says "Cold starts typically occur in under 1% of invocations. The duration of a cold start varies from under 100 ms to over 1 second", that they are more common in rarely invoked dev and test functions, and recommends provisioned concurrency for predictable start times, with SnapStart restoring environments from a snapshot (Lambda execution environment).

Our read: a low-traffic indie app looks a lot like the "rarely invoked" case, so keep Lambda packages small and imports lazy.

Storage next door#

NeedCloudflare (Workers Paid)AWS
Key-valueKV: 10M reads included, then $0.50 per millionDynamoDB on demand: $0.125 per million reads, $0.625 per million writes
SQLD1: 25 billion rows read, 50M written, 5 GB includedRDS or Aurora (not covered)
ObjectsR2: $0.015 per GB-month, free egressS3
State and workflowsDurable Objects: 1M requests included, then $0.15 per millionLambda durable functions, billed per durable operation
Queues1M operations included, then $0.40 per millionSQS

Sources: Workers pricing, DynamoDB on-demand pricing, Lambda pricing.

AWS says "Data transfer with AWS Lambda Event Functions is free in the same AWS Region" with S3, DynamoDB, SQS and SNS; attaching a VPC adds charges. Our read: Cloudflare's menu is shorter but sits on one $5 bill. For background jobs on either platform, see Trigger.dev vs Inngest.

Local dev, frameworks and lock-in#

Local dev. wrangler dev runs your Worker in a local workerd process, the same runtime as production, and "All resources your Worker is bound to in your Wrangler configuration are simulated locally", with optional remote bindings to real resources (Workers development and testing). On AWS, sam local invoke and sam local start-api run functions in "a local container using Docker", and AWS notes local testing "doesn't validate everything, such as permissions" (SAM local invoke).

Frameworks. Hono runs on both: Cloudflare has Hono guides (framework guides), and Hono "works on AWS Lambda with the Node.js 18+ environment" via @hono/aws-lambda (Hono docs). For Next.js, "Cloudflare recommends vinext as the default way to run Next.js applications on Cloudflare Workers" (vinext is in beta), keeping the OpenNext adapter for existing apps (Next.js on Workers).

Lock-in. Our read: the function code moves easily, especially in Hono. Bindings and data do not: KV, D1 and Durable Objects on one side, IAM, DynamoDB and event triggers on the other. Choose the platform whose storage you would keep for three years. If you would rather avoid serverless altogether, see Heroku alternatives.

Decision table (ours)#

Your situationOur pick
TypeScript API that mostly waits on a database or APIsWorkers Paid
Under 1M requests a month, pre-revenueLambda free tier, or Workers Free
Global users, latency mattersWorkers
Lots of bandwidth (downloads, media)Workers plus R2
Python data jobs, Java or .NETLambda
Over 128 MB memory or a writable diskLambda
Jobs of 5 to 15 minutesLambda
Reacting to S3, DynamoDB or SQS eventsLambda Event Functions
Existing Express or Next.js server, already on AWSTry Lambda Web Functions
One small bill, few dashboardsWorkers

Our pick#

For most bootstrapped founders building a TypeScript API or SaaS backend, start on Cloudflare Workers: 10M requests for $5, free waiting time, free egress and a fast local loop. Write it in Hono so a later move is cheap. Choose Lambda when the work demands it: big memory, long runs, non-JavaScript runtimes or AWS event pipelines. Start with function URLs and keep memory low. Use both if one heavy job needs Lambda while Workers handles everything in front of it.

Launch it#

Once your backend is live, run through our product launch checklist for bootstrapped makers, then launch on ZeroRaised, the launch directory for products built without institutional VC. For more stack comparisons, join the ZeroRaised newsletter.

Frequently asked questions#

Is Cloudflare Workers cheaper than AWS Lambda?#

For I/O-bound APIs it usually is once traffic grows, because Workers bills CPU time (waiting on network calls does not count) and charges no egress, while Lambda Event Functions bill wall-clock duration times memory. At very low traffic Lambda can be cheaper, because its free tier covers 1M requests and 400,000 GB-seconds each month while Workers Paid has a $5/mo minimum.

Does Cloudflare Workers have cold starts?#

Cloudflare says its isolate model "eliminates the cold starts of the virtual machine model" and that an isolate can start around a hundred times faster than a Node process in a container or VM. Its limits page sets a 1 second Worker startup limit. AWS documents that Lambda cold starts typically occur in under 1% of invocations and range from under 100 ms to over 1 second, and offers provisioned concurrency to reduce them.

Do Lambda function URLs cost extra?#

No. AWS's documentation says function URLs follow the standard Lambda pricing model and "There are no additional charges for the URL endpoint itself." API Gateway is billed separately: HTTP APIs are $1.00 per million requests and REST APIs $3.50 per million in US East, after a 1M-call free tier for the first 12 months.

Can I run Python or Java on Cloudflare Workers?#

Workers has first-class support for JavaScript, TypeScript, Python and Rust, plus WebAssembly for languages such as C, C++, Kotlin and Go. There is no Java runtime listed. Lambda Event Functions have managed runtimes for Node.js, Python, Java, .NET and Ruby, plus an OS-only runtime for Go and Rust.

What are AWS Lambda Web Functions?#

Announced on 12 Oct 2026, Web Functions let you run a standard Node.js HTTP server (Express, Hono, Fastify, Next.js) on Lambda. They run Node.js 24 on Arm64 in five Regions at launch, handle up to 128 concurrent requests per environment, bill active CPU time plus memory for as long as the environment exists, and charge $0.30 per million requests.

Sources#

Frequently asked questions

Is Cloudflare Workers cheaper than AWS Lambda?

For I/O-bound APIs it usually is once traffic grows, because Workers bills CPU time (waiting on network calls does not count) and charges no egress, while Lambda Event Functions bill wall-clock duration times memory. At very low traffic Lambda can be cheaper, because its free tier covers 1M requests and 400,000 GB-seconds each month while Workers Paid has a $5/mo minimum.

Does Cloudflare Workers have cold starts?

Cloudflare says its isolate model 'eliminates the cold starts of the virtual machine model' and that an isolate can start around a hundred times faster than a Node process in a container or VM. Its limits page sets a 1 second Worker startup limit. AWS documents that Lambda cold starts typically occur in under 1% of invocations and range from under 100 ms to over 1 second, and offers provisioned concurrency to reduce them.

Do Lambda function URLs cost extra?

No. AWS's documentation says function URLs follow the standard Lambda pricing model and 'There are no additional charges for the URL endpoint itself.' API Gateway is billed separately: HTTP APIs are $1.00 per million requests and REST APIs $3.50 per million in US East, after a 1M-call free tier for the first 12 months.

Can I run Python or Java on Cloudflare Workers?

Workers has first-class support for JavaScript, TypeScript, Python and Rust, plus WebAssembly for languages such as C, C++, Kotlin and Go. There is no Java runtime listed. Lambda Event Functions have managed runtimes for Node.js, Python, Java, .NET and Ruby, plus an OS-only runtime for Go and Rust.

What are AWS Lambda Web Functions?

Announced on 12 Oct 2026, Web Functions let you run a standard Node.js HTTP server (Express, Hono, Fastify, Next.js) on Lambda. They run Node.js 24 on Arm64 in five Regions at launch, handle up to 128 concurrent requests per environment, bill active CPU time plus memory for as long as the environment exists, and charge $0.30 per million requests.