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.