Scale up to a bigger box and watch cost climb to a hard ceiling; scale out with more instances and keep up — but only if the app is stateless. Two very different curves.
Same traffic, two strategies. Scale up = one machine you keep upgrading. Scale out = many small machines behind a load balancer. Crank the traffic and watch the curves diverge.
1500 req/s
quietcapacity now: 600 req/sviral
Capacity
600/s
Cost
$12/hr
Cost / 600 req/s
$12.0
lower is more efficient
One machine, upgraded in place
🖥️
2 CPU · 4 GB
tier 1 of 5
✗ Upgrade the box — or switch to scaling out.
Upgrade to the top tier, then push traffic past 9,600 — the ceiling is real. Flip to scale-out and add cheap instances instead.
What just happened
▹Scaling up (a bigger box) is the simplest fix and often the right first step — but capacity doubles while cost more than triples, and every machine has a hard maximum size.
▹Scaling out (more instances) costs roughly linearly and has no ceiling — add boxes as long as you need. But it only works if the app is stateless, so any instance can serve any request.
▹Watch the cost-per-unit-of-capacity: a maxed-out single box is far more expensive per request than the same capacity spread across small instances.