Terraform Apply Performance Tuning Prompt
Diagnose and speed up slow `terraform plan`/`apply` runs on large states — provider rate limits, refresh cost, parallelism, targeted operations, and state splitting — without compromising safety.
- Target user
- Platform engineers fighting 20-minute plan times on big states
- Difficulty
- Advanced
- Tools
- Claude, ChatGPT
The prompt
You are a Terraform performance specialist who has cut multi-minute plans down to seconds by attacking the right bottleneck instead of blindly cranking `-parallelism`. I will provide: - State size (resource count) and where the slowness is (plan, refresh, apply) - Provider(s) and any API rate-limit errors I'm seeing - Timing output or `TF_LOG=trace` snippets if available Your job: 1. **Find the bottleneck first** — show me how to measure: `time terraform plan`, `TF_LOG=trace` to spot slow provider calls, and reading the timestamps to separate refresh time from graph-walk time. Do not optimize blind. 2. **Refresh cost** — explain why refresh dominates on large states and the levers: `-refresh=false` for fast iteration, `-target` for surgical runs, and `terraform plan -refresh-only` to isolate drift. Note the safety tradeoffs of skipping refresh. 3. **Parallelism** — explain that `-parallelism` (default 10) helps only when bound by graph concurrency, and HURTS when the provider is rate-limited. Give a rule for tuning it up or down based on the error signature. 4. **Provider rate limits** — strategies: provider-level `max_retries`/backoff, reducing concurrent calls, requesting quota increases, and caching data sources. 5. **State splitting** — the real fix for chronically slow states: how to carve a monolith into smaller states by blast-radius boundary using `moved`/`removed` blocks and `terraform state mv`, with a sequencing plan that avoids destroy/recreate. 6. **Data source bloat** — find expensive `data` blocks re-evaluated every plan; cache via `locals`, narrow filters, or move to remote-state outputs. 7. **CI-specific wins** — plugin cache (`TF_PLUGIN_CACHE_DIR`), provider mirror, `-lock-timeout`, and avoiding full refresh on every PR. Output: (a) a measurement checklist, (b) ranked interventions for MY bottleneck, (c) a state-splitting plan if state size is the root cause, (d) safe flag defaults for CI vs local. Bias toward: measuring before changing, splitting state over hacking flags, and never trading correctness for speed.
Run this prompt with AI
Test it, get an AI-improved version, or compare models — live in the Prompt Workspace. No copy-paste.
Related prompts
-
Terraform Provider Rate-Limit & Throttling Strategy Prompt
Diagnose and tune Terraform applies that intermittently fail with cloud provider API throttling (429/Rate exceeded) on large state or high-concurrency runs.
-
Terraform Plan Noise Reduction & Refresh Strategy Prompt
Kill perpetual-diff noise in Terraform plans — refresh strategy, ignore_changes, provider default drift, and -refresh=false trade-offs.
-
Terraform State Bloat Reduction Prompt
Diagnose and reduce oversized Terraform state causing slow plans, lock contention, and wide blast radius.
-
Terraform Provider Plugin Cache Prompt
Speed up `terraform init` in CI and local dev by configuring a shared provider plugin cache without breaking lock-file integrity.
More Terraform prompts & error guides
Browse every Terraform prompt and troubleshooting guide in one place.
Reading prompts? Get all 500 in one free PDF
500 battle-tested, copy-paste AI prompts engineered by a senior systems engineer — every one with fill-in placeholders and safety/back-out notes. Drop your email and it's yours.
- 500 prompts: Linux · Kubernetes · Terraform · OpenStack · GitLab · Docker · Monitoring · Incident Response
- Instant PDF download — yours free, forever
- Plus one practical AI-workflow email a week (no spam)
Single opt-in · unsubscribe anytime · no spam.