Size a Spanner instance in nodes and processing units from read QPS, write QPS and storage, then price it.
Spanner capacity is expressed either as nodes or as processing units, with 1,000 PU to a node, and each node carries a throughput budget and a storage limit at the same time. Because a write is replicated to every voting replica it consumes roughly five times a read, so write-heavy workloads hit the node count long before read QPS would. Spanner has no small end — the first node is a real monthly commitment — so knowing whether reads, writes or storage sets your node count tells you which one to optimise before adding capacity. Multi-region instances cost several times the regional rate, so confirm the node-hour price for your exact configuration in the Google Cloud pricing calculator.
Cloud Spanner Cost
nodes = max(read QPS ÷ (reads per node × target CPU), write QPS ÷ (writes per node × target CPU), storage GB ÷ storage per node), rounded up; cost = nodes × node price × hours + storage + backup.
nodes = max(read QPS ÷ (reads per node × target CPU), write QPS ÷ (writes per node × target CPU), storage GB ÷ storage per node), rounded up; cost = nodes × node price × hours + storage + backup. Spanner capacity is expressed either as nodes or as processing units, with 1,000 PU to a node, and each node carries a throughput budget and a storage limit at the same time. Because a write is replicated to every voting replica it consumes roughly five times a read, so write-heavy workloads hit the node count long before read QPS would.
Spanner has no small end — the first node is a real monthly commitment — so knowing whether reads, writes or storage sets your node count tells you which one to optimise before adding capacity. Multi-region instances cost several times the regional rate, so confirm the node-hour price for your exact configuration in the Google Cloud pricing calculator.
This calculator takes 12 inputs: Peak read QPS, Peak write QPS, Database storage, Read QPS per node, Write QPS per node, Target CPU utilisation, Storage limit per node, Price per node-hour, Hours in the billing month, Storage price per GB, Backup storage retained, Backup price per GB. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
Below one node. Granular instances start at 100 PU and step in hundreds, which suits development and low-traffic services; above 1,000 PU capacity is allocated in whole nodes anyway.