This project is a hands-on demonstration of managing Infrastructure as Code (IaC) with Terraform, specifically focusing on Drift Detection, Manual Changes, and Terraform Import strategies.
The goal of this project is to simulate real-world DevOps scenarios where:
- Infrastructure is deployed via Terraform.
- Manual changes (Drift) occur in the AWS Console.
- Drift is detected and resolved using recovery strategies.
- Existing unmanaged resources are imported into Terraform control.
- Hands-on Tutorial: A step-by-step guide to running this demo, simulating drift, and fixing it.
- Interview Prep Notes: A summary of key concepts, interview questions, and cheat sheets regarding Terraform state management.
- Terraform: v1.5.0+ (Recommended for config-driven import)
- AWS CLI: Configured with valid credentials (
aws configure) - Git: For version control
.
├── main.tf # Main resource definitions (S3 Bucket)
├── provider.tf # AWS Provider configuration
├── variables.tf # Project variables (Region, Bucket Name)
├── outputs.tf # Output values (Bucket ARN/ID)
├── import.tf # Bulk import configuration (Config-Driven Import demo)
├── generated.tf # Automatically generated code (from import demo)
├── terraform_drift_tutorial.md # Comprehensive Guide
└── interview_notes.md # Quick reference & Interview Q&A
-
Initialize Terraform:
terraform init
-
Apply Infrastructure:
terraform apply
-
Simulate Drift: Go to AWS Console -> S3 -> Add a tag manually.
-
Detect Drift:
terraform plan
-
Fix Drift: Follow the Tutorial for detailed recovery steps.
MIT