Multi-cloud · Serverless

Lambda vs Cloud Run vs Azure Functions — simulated at 50k RPS

PinPole Engineering 7 min read April 2026

Choosing between AWS Lambda, Google Cloud Run, and Azure Functions usually comes down to reading documentation, comparing pricing pages, and making educated guesses. You pick one, deploy, and find out how it actually behaves under your traffic.

We built the same event-processing function on all three clouds using PinPole's multi-cloud canvas, then ran identical spike simulations at 50,000 RPS. Here's what we found.

The test setup

Same function logic: receive an HTTP request, validate the payload, write to a database, publish to a message queue. Same memory allocation (512MB). Same region-equivalent deployments. The only variable is the compute platform.

AWS Lambda
Concurrency limit
1,000
Cold start (p99)
680ms
Cost at 50k RPS
$2,840/mo
Cloud Run
Max instances
1,000
Cold start (p99)
420ms
Cost at 50k RPS
$2,190/mo
Azure Functions
Concurrency
200/instance
Cold start (p99)
940ms
Cost at 50k RPS
$2,460/mo

What the simulation revealed

Cloud Run handled the spike most gracefully. Its container-based model means each instance handles multiple concurrent requests, and autoscaling responded to the ramp faster than Lambda's function-level scaling. Cold start at p99 was 420ms — 260ms faster than Lambda and 520ms faster than Azure Functions on the Consumption plan.

Lambda hit its default concurrency limit. At 50,000 RPS with 200ms average execution time, Lambda needs 10,000 concurrent executions. The default account limit is 1,000. PinPole flagged this immediately. The fix: request a concurrency increase or enable provisioned concurrency, but that changes the cost equation significantly.

Azure Functions on Consumption plan showed the highest cold start latency. At 940ms p99 under spike load, latency-sensitive applications will struggle. The simulation recommended switching to the Premium plan or enabling pre-warming, which reduces cold start but increases baseline cost.

The cost breakdown nobody shows you

MetricLambdaCloud RunAzure Functions
Compute cost$2,180$1,640$1,890
Request cost$660$550$570
Total monthly$2,840$2,190$2,460
Cold start p99680ms420ms940ms
Throttle riskHigh (default limit)MediumMedium

Cloud Run wins on cost and cold start for this particular workload. But that's not the universal answer — it depends on your traffic pattern, execution time, memory needs, and the rest of your architecture. The point is that you can now answer this question with data instead of opinion.

Key insight: No pricing page or documentation will tell you how these services actually perform under your specific traffic pattern. Static comparison articles give you averages. PinPole gives you your numbers, with your architecture, at your traffic scale.

The multi-cloud canvas advantage

PinPole is the only platform where you can place AWS, GCP, and Azure services on the same canvas and run identical simulations against each. This isn't a feature comparison table — it's a simulation of how your specific architecture behaves on each cloud.

For teams evaluating a cloud migration or choosing between providers for a new service, this eliminates months of proof-of-concept work. Build the architecture once. Simulate on all three clouds. Make the decision with data.

Compare clouds with simulation, not guesswork

AWS, GCP, and Azure on one canvas. 500+ services. No cloud account required.

Start for free →