ElastiCache for Redis/Valkey
Choosing Node-Based or Serverless Before Traffic Patterns Decide for You
- Traffic predictability and variability over a typical week
- Average payload size per request (drives ECPU cost directly)
- Whether Reserved Node discounting or Global Datastore cross-region replication is a real requirement
- Tolerance for the Serverless minimum-metering floor on a low-traffic cache
Production premise
Node-based ElastiCache bills per node-hour, 24/7, regardless of traffic. The meter runs on capacity you hold rather than work you do, so you can predict the monthly bill from the node list alone. In exchange you get Reserved Node discounts and Global Datastore, ElastiCache's cross-region replication.
Serverless removes the sizing — there's no node to pick at all. It bills on two independent meters instead: GB-hours of data stored, and ECPUs for the work the cluster does. An ECPU meter tracks data movement: roughly 1 ECPU per KB transferred, more for complex commands like sorted-set operations. What you give up is Reserved Node pricing and Global Datastore. Neither exists on Serverless.
Failure mode & inflection point
Serverless has a real floor. The storage meter never stops: an empty or near-empty cache is billed continuously against a 100 MB minimum on Valkey. Redis OSS and Memcached carry a 1 GB minimum, so Valkey's floor is meaningfully lower — but it's still a floor, metered every hour the cache exists.
The ECPU meter carries the opposite risk. ECPU billing scales with the data each request transfers, never with a flat capacity reservation. A workload with large payloads per GET/SET — serialized objects in the tens of KB, say — burns ECPUs fast even at modest request rates. At sustained high request volume, the ECPU bill can exceed what an equivalently sized node-based cluster would have cost.
Node-based has the mirror-image problem. The per-node-hour price is fixed whether the cache is busy or idle, and a cache idle 90% of the day is billed as if it were busy all day.
Production guardrail
Default to node-based for anything past initial ramp-up that runs with roughly steady, predictable traffic. That describes most production caching layers once they've settled. A fixed 24/7 node cost beats ECPU metering once request volume is consistent. And when you need Reserved Node discounts or Global Datastore, node-based is the only place to get them.
Reach for Serverless when traffic is genuinely bursty or unpredictable: a pre-launch product, spiky batch or event-driven workloads, a fleet of low-traffic dev and staging caches where the 100 MB Valkey floor keeps cost trivial. In those cases, dropping the capacity-planning overhead outweighs the per-request premium.
One requirement overrides traffic shape entirely. If Reserved Nodes or Global Datastore are real requirements, that alone settles it: node-based.