Q: You need to provision identical infrastructure across 10 AWS regions. How do you structure this in Terraform without duplicating code 10 times?
Use the for_each meta-argument with a module:
#Terraform #Use VPC ID from another module #L3 #IaC #Cloud Infrastructure #Terraform State
🎙️ Candidate Opening & Architectural Context
""In our enterprise Terraform repository, we designed reusable modules and remote backends to prevent this exact issue. 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️⃣
Production Solution & Architecture
Use the for_each meta-argument with a module: Define a provider per region using aliases: Or use Terragrunt with a generate block that creates provider config per region dynamically. Separate state files per region (separate backend key per region) for independent management.
variable "regions" {
default = ["us-east-1", "us-west-2", "eu-west-1", ...]
}
module "regional_infra" {
for_each = toset(var.regions)
source = "./modules/regional"
providers = {
aws = aws.by_region[each.key]
}
region = each.key
}
💡 The Senior SRE Gold Nugget (Key Architectural Takeaway)
"Pro-Tip: Use the for_each meta-argument with a module:."
⚡ 60-Second Elevator Pitch Talking Points
- Immediate Triage: Use the for_each meta-argument with a module:
- Run targeted verification commands before modifying configuration.
- Automate permanent guardrails (CI check, alerts, IaC policy) to prevent recurrence.
Advertisement