azurerm_ synapse_ spark_ pool cost estimation
An Apache Spark pool in Synapse billed per vCore-hour of active nodes. Three Small nodes running full-time are ~$1,253/month, but auto-pause makes the real cost usage-driven.
An azurerm_
Three Small nodes active around the clock works out to 3 × 4 × 730 × $0.143 ≈ $1,253/month, but that 24/7 figure is the worst case, not the typical one. Spark pools support auto-pause: the pool spins down after an idle timeout and bills nothing while paused, spinning back up when a job arrives. For the bursty, job-based workloads Spark pools usually run, the real bill is a fraction of the always-on number.
So the cost levers are node size and count (capacity per job) and active hours (driven by auto-pause and how much work you run). Over-sizing nodes or disabling auto-pause are the two ways this gets expensive.
c3x prices the pool from node_
Terraform example
A minimal but realistic configuration that C3X can estimate.
resource "azurerm_synapse_spark_pool" "analytics" {
name = "sparkpool"
synapse_workspace_id = azurerm_synapse_workspace.main.id
node_size_family = "MemoryOptimized"
node_size = "Small"
node_count = 3
auto_pause {
delay_in_minutes = 15
}
}Pricing dimensions
What you actually pay for when you provision azurerm_.
| Dimension | Unit | What's being charged |
|---|---|---|
| Spark vCore-hours | per vCore-hour | node_ ~$0.143/vCore-hour → 3 Small nodes × 730h ≈ $1,252.68/month at full utilization |
Sample C3X output
Three Small nodes (4 vCore each) active 24/7, the full-utilization ceiling:
azurerm_synapse_spark_pool.analytics
└─ Spark vCore-hours (3 × 4 vCore × 730h) 8760 vCore-hours $1,252.68
Monthly $1,252.68Optimization tips
Common ways to reduce azurerm_ cost without changing the workload.
Enable auto-pause with a short idle timeout
Up to ~90% for intermittent workloadsAuto-pause spins the pool down after idle and bills nothing while paused. For bursty, job-based Spark workloads this is the difference between paying for 730 hours and paying for the hours you actually run jobs, often a fraction of the always-on cost.
Right-size node size and count
Proportional to over-sizing avoidedCost scales linearly with node_
Use autoscale within the pool
Workload-dependentAutoscale lets the pool grow and shrink node count between a min and max based on load, so small jobs don't run on a pool sized for the biggest one.
Consolidate small jobs
Per avoided activationEach pool activation has spin-up overhead. Batching small jobs into fewer pool sessions reduces total active hours versus many short, separate activations.
FAQ
How is an Azure Synapse Spark pool billed?
Per vCore-hour of active nodes: node_
Does a Spark pool cost money when idle?
Not if auto-pause is enabled, the pool spins down after the idle timeout and bills nothing while paused, resuming when a job arrives. Without auto-pause, the pool bills its full vCore allocation continuously.
Why is the estimate so high?
The sample shows full 24/7 utilization (~$1,253/month for 3 Small nodes), which is the ceiling, not the typical cost. With auto-pause and job-based usage, the real bill is the active hours only, usually far lower. Model your actual active hours to see the realistic figure.
How does c3x estimate the cost?
From node_
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 azurerm_.