TL;DR: Graph databases exist for relationship queries (friend-of-friend, fraud rings, dependency maps); if your data isn't relationship-shaped, a relational or document store is cheaper. Original Neptune billed provisioned instances 24/7 idle or not. Neptune Serverless (2022) scales capacity per Neptune Capacity Unit (~2 GiB memory + compute) between a min and max you set, at ~$0.12/NCU-hour. Its edge is charging little during quiet stretches — so it wins on bursty/off-hours/dev workloads and loses on flat 24/7 load.
The numbers
- Provisioned baseline: a db.r5.large is ~$0.348/hr → ~$254/mo regardless of usage.
- Serverless floor: parked at the 2.5 NCU minimum 24/7 ≈ 2.5 × $0.12 × 730 = ~$219/mo — the minimum is real money.
- Where it wins: 10 NCUs for 8 business hours + 2.5 NCUs otherwise = 3,600 NCU-hours ≈ $432/mo vs ~$508/mo provisioned (10 NCU ≈ db.r5.xlarge) — ~15% plus automatic scaling and zero capacity planning.
- Field examples: real-time fraud detection (5–8 NCU normal, spiking to 40–50) saved 40–60% vs a peak-sized cluster; a nightly-analytics cluster went
$1,015 → ~$621/mo (39%). A steady 24/7 recommender was more expensive on serverless ($562 vs ~$508 provisioned).
Do this
- Set conservative min/max NCUs (e.g. 2.5 → 40) and adjust after watching real
ServerlessDatabaseCapacityin CloudWatch. - Move variable workloads first — fraud detection, periodic batch, dev/test, spiky query mixes. Leave flat 24/7 production for last, after you know its NCU footprint.
- Bound your queries — multi-hop traversals ("all nodes within 5 hops") burn NCUs faster than expected; optimize before raising the cap.
- Set a hard maximum + billing alarm — a runaway traversal can otherwise scale you to the cap and produce a surprise month-end bill.
- Decide empirically — point a representative workload at a serverless cluster for a week and compare the NCU bill to your provisioned bill.
Gotchas
- The minimum baseline (~$219/mo) is a floor, not free — tiny idle clusters still cost real money.
- Less tuning control — no instance-type choice or manual memory tuning; if a specialist loves tuning, serverless hides that lever.
- Brief warm-up after a deep scale-down — first queries after a long quiet period can see slightly higher latency.
- Feature parity can lag — check current docs before assuming provisioned features exist on serverless.
Skip this if
- The workload runs flat-out at high capacity 24/7 — a right-sized provisioned instance, especially with a Reserved Instance, undercuts serverless by 30–40%.
- You want absolute lowest steady-state cost and can commit — see Reserved Instances on a provisioned cluster.
- You're comparing the whole serverless-database family — OpenSearch Serverless, Aurora Serverless Sizing, and Redshift Serverless use the same "min baseline + scale to max, pay per unit-hour" model.