Q: Your Terraform plan wants to destroy and recreate a production RDS instance because you changed the instance identifier. How do you prevent the destroy?
Changing identifier for RDS forces replacement — Terraform deletes the old and creates a new one. That means downtime and potential data ...
#Terraform #Modules & Structure #L3 #IaC #Cloud Infrastructure #Terraform State
🎙️ Candidate Opening & Architectural Context
""When terraform plan shows unexpected changes, my golden rule is: never apply blindly. Investigate the diff first. When addressing this question, I walk the interviewer through our production incident runbook: isolating the blast radius, checking diagnostic logs and metrics, and applying a safe fix.""
Advertisement
🛠️ Production Runbook & Step-by-Step Resolution
1️⃣
Initial Diagnostics & Root Cause Analysis
Changing identifier for RDS forces replacement — Terraform deletes the old and creates a new one. That means downtime and potential data loss.
- Lifecycle ignore_changes:
- lifecycle prevent_destroy:
terraform state mv— rename the resource in state without destroying:
2️⃣
Remediation & Permanent Safeguards
Prevent destruction: This tells Terraform to ignore changes to the identifier field. Terraform will throw an error if anything tries to destroy this resource. Hard safety net. Update the config, then plan — Terraform sees the state and config match, no destroy needed. --- ## 🟢 Import & Migrations
lifecycle {
ignore_changes = [identifier]
}
💡 The Senior SRE Gold Nugget (Key Architectural Takeaway)
"Pro-Tip: Lifecycle ignore_changes:."
⚡ 60-Second Elevator Pitch Talking Points
- Lifecycle ignore_changes:
- lifecycle prevent_destroy:
- terraform state mv — rename the resource in state without destroying:
Advertisement