aws_redshift_cluster cost estimation
A managed data warehouse. Two compute models: classic node-based pricing (per-hour) or Redshift Serverless (per-RPU-hour), plus managed storage.
An aws_redshift_cluster is a managed data warehouse. Pricing has changed substantially in the past few years; current options include provisioned clusters with classic nodes and Redshift Serverless. Both share managed storage.
Provisioned clusters (node-based): each node is billed per hour by type. RA3 nodes are the modern default, decoupling compute from storage. ra3.xlplus is ~$1.087/hour; ra3.4xlarge is ~$3.26/hour. Classic DC2 nodes ship with local SSD and are billed without separate storage cost; they're being phased out.
Redshift Serverless: pay per RPU-hour (Redshift Processing Unit). Each RPU represents compute capacity that scales with demand. Right for sporadic analytics workloads. Capacity ranges from 8 to 512 RPUs, billed per second when active.
Managed storage (RA3 and Serverless): $0.024/GB-month, separate from compute. Storage tier is independent of node count. Spectrum queries (against S3) are billed per TB scanned.
Reserved Instance discounts apply to provisioned clusters (1-year or 3-year commitments). Savings of 30-65% depending on term and payment.
Practical cost drivers: node count and type (linear scaling), concurrency scaling (additional clusters spun up for high concurrency, billed separately), and Redshift Spectrum (per-TB-scanned for external S3 queries).
c3x reads cluster_type, node_type, number_of_nodes, and storage. For Serverless, base_capacity and max_capacity drive estimates.
Terraform example
A minimal but realistic configuration that C3X can estimate.
resource "aws_redshift_cluster" "warehouse" {
cluster_identifier = "production-warehouse"
database_name = "analytics"
master_username = "admin"
master_password = var.redshift_password
node_type = "ra3.xlplus"
cluster_type = "multi-node"
number_of_nodes = 3
publicly_accessible = false
skip_final_snapshot = false
encrypted = true
enhanced_vpc_routing = true
}Pricing dimensions
What you actually pay for when you provision aws_redshift_cluster.
| Dimension | Unit | What's being charged |
|---|---|---|
| Node hours (RA3) | per node per hour | Modern Redshift nodes with separated storage. Multiplied by number_of_nodes. $1.087/hour for ra3.xlplus in us-east-1 |
| Redshift Serverless | per RPU-hour | Compute units that scale with demand. Billed per second when active. $0.375/RPU-hour |
| Managed storage (RA3 and Serverless) | per GB-month | Storage scaled independently from compute. Right for large data warehouses. $0.024/GB-month |
| Spectrum queries | per TB scanned | Queries against external S3 data via Redshift Spectrum. $5.00/TB |
| Concurrency scaling | per second of additional capacity | When enabled, Redshift adds transient compute for high-concurrency periods. Free credits earned per cluster-hour, then billed at on-demand rates. |
Optimization tips
Common ways to reduce aws_redshift_cluster cost without changing the workload.
Use RA3 instead of DC2
Storage-dependentRA3 nodes decouple compute from storage. For workloads with growing data, RA3 is cheaper because you can scale compute and storage independently. DC2 is deprecated for new deployments.
Use Redshift Serverless for sporadic analytics
50-80% on sporadic workloadsProvisioned clusters bill 24/7. If your analytics workload runs a few hours per day or sporadically, Serverless can be 50-80% cheaper. Set min/max RPU appropriately.
Buy Reserved Instances for steady-state
30-65%1-year RIs cut node prices by 30-45%; 3-year by 60-65%. Right for production warehouses that won't shrink.
Use S3 + Spectrum for cold data
Storage-cost-dependentData accessed less than weekly can live in S3 (much cheaper than Redshift managed storage) and be queried via Spectrum. Per-TB-scanned fee but avoids the per-GB-month storage cost.
Pause non-production clusters
Up to 80% on non-prodRedshift supports pause/resume. Paused clusters don't bill for compute (storage still bills). For dev/staging warehouses, automated pause/resume saves 60%+ of compute cost.
FAQ
Provisioned or Serverless?
Provisioned: predictable analytics workloads with sustained compute usage above ~30% of the day. Serverless: sporadic, unpredictable, or low-baseline analytics. Crossover varies by workload but Serverless often wins for analytics that don't run continuously.
Does c3x estimate Spectrum query costs?
Only with usage data. Specify expected monthly_data_scanned_tb on the cluster in c3x-usage.yml. Spectrum is right for cold data but per-query costs add up; budget for it explicitly.
What about concurrency scaling?
Concurrency scaling is opt-in (set concurrency_scaling = 'auto' on the cluster). It earns 1 hour of free credits per 24 hours of running cluster, then bills per-second at on-demand rates. For most workloads, the free credits cover spike load.
Redshift vs BigQuery vs Snowflake?
Different pricing models entirely. Redshift bills compute (whether used or not for provisioned) and storage. BigQuery bills per-TB-scanned (on-demand) or per-slot-hour (capacity). Snowflake bills per-warehouse-second of compute. Choose based on query patterns and pricing predictability needs.
Related resources
Estimate this resource in your own Terraform
Free, open source, no API key. C3X parses your Terraform and shows line-item cost for every resource, including aws_redshift_cluster.