Estimate Terraform plan and apply execution time based on resource count, provider API latency, and state size.
Terraform plan and apply times grow with the number of managed resources, provider API call latency, and state file size. For large infrastructure codebases managing hundreds or thousands of resources, plan times can reach 10–30 minutes, creating significant CI/CD bottlenecks.
This calculator estimates plan and apply times based on your resource count and typical provider API latency. It helps identify when you need to split your Terraform state into smaller workspaces, use targeted plans, or optimize provider configuration.
Understanding plan time drivers helps prioritize optimization: state splitting has the largest impact for large codebases, while provider parallelism settings help for resource-heavy modules. Knowing your expected plan time also helps set realistic CI/CD timeout values.
Understanding this metric in precise terms allows technology leaders to make evidence-based decisions about scaling, architecture, and infrastructure investment priorities for their organizations. Tracking this metric consistently enables technology teams to identify system performance trends and address potential issues before they impact end users or business operations.
Long Terraform plan times slow CI/CD pipelines and frustrate developers. This estimator helps predict plan times and identify when optimization (state splitting, parallelism) is needed. Consistent measurement creates a reliable baseline for tracking system health over time and identifying degradation before it impacts users or triggers costly production outages. Regular monitoring of this value helps DevOps teams detect anomalies early and maintain the system reliability and performance that users and business stakeholders expect.
Plan Time ≈ (resources × api_latency_sec) / parallelism + state_overhead State Overhead ≈ state_size_MB × 0.5 seconds Apply Time ≈ Plan Time × 1.5 (for actual provisioning)
Result: Plan: ~28 sec, Apply: ~42 sec
Resource checks: 500 × 0.3s / 10 parallel = 15 seconds. State overhead: 25 MB × 0.5 = 12.5 seconds. Plan total: ~28 seconds. Apply estimate: 28 × 1.5 = ~42 seconds.
Terraform plan performs two main operations: (1) reading the current state from the backend, and (2) refreshing every resource by calling the provider API. Both scale with resource count. The refresh is parallelized (configurable), but API latency is the bottleneck.
The most effective optimization is splitting state into smaller workspaces by infrastructure domain: networking, compute, databases, security. Each workspace plans independently, and changes to networking don't trigger compute plans. This can reduce plan times by 70–90%.
Terraform Cloud and similar platforms (Spacelift, env0) run plans on dedicated infrastructure close to cloud APIs, reducing network latency. They also offer enhanced caching, parallel workspaces, and plan scheduling that significantly improve overall pipeline throughput.
Plan time grows linearly with resource count because Terraform must refresh the state of every resource. State file size also grows, increasing parse time. Regular state cleanup (removing destroyed resources, splitting workspaces) keeps plan times manageable.
Use separate Terraform workspaces or directories for different infrastructure domains (networking, compute, databases). Use terraform_remote_state data sources to reference outputs across workspaces. This reduces per-plan resource count significantly.
Default is 10. Increasing to 20–30 can speed up plans when your provider APIs allow it. However, some APIs (especially older AWS services) may rate-limit at higher parallelism. Test incrementally and watch for throttling errors.
Yes. Local state is fastest. Remote state (S3, GCS, Terraform Cloud) adds network latency for state read/write. For large state files, this overhead can be 5–15 seconds. Use state caching where possible.
Key optimizations: (1) cache the .terraform directory, (2) use saved plan files (plan then apply), (3) run targeted plans for changed modules only, (4) split large states, (5) use Terraform Cloud or Spacelift for managed execution.
Under 2 minutes is comfortable for CI/CD. 2–5 minutes is acceptable. Over 5 minutes significantly impacts developer experience and CI queue times. If plans exceed 5 minutes, prioritize state splitting.