Why I started this
The Terraform repository needed more than a toy example. I wanted a deployable infrastructure shape that could explain an AWS Lambda proxy from state backend to final verification.
The workflow was:
prepare state backend
-> build artifact
-> terraform plan
-> terraform apply
-> verify endpoint
-> terraform destroy
Concepts clarified first
Before writing too much code, I focused on the operational boundaries:
- S3 backend for Terraform state.
- DynamoDB locking for concurrent state safety.
- Artifact bucket for Lambda build outputs.
- ALB to Lambda target group behavior.
- Health check constraints when Lambda sits behind an ALB.
- HTTP-only scope for the lab, leaving HTTPS and custom domains out of this iteration.
That made the deployment easier to explain because every resource had a job.
What mattered most
The work was less about “Terraform created resources” and more about understanding where design constraints appear.
Lambda behind ALB is different from a normal EC2 target. The target group behavior, permissions, event shape, and health checks all need attention.
Takeaway
The useful result was a complete lifecycle: build, apply, verify, and destroy. Terraform practice becomes much more valuable when teardown is part of the exercise, because it proves the state and resource boundaries are understood.