Building AWS resources manually helped me understand what each service does. Terraform changed the next part of the process: how I think about rebuilding the same environment reliably.
From clicking to describing
Instead of remembering which subnet, route table, security group, or endpoint I created in the console, I define the intended infrastructure in configuration. That makes the relationships easier to review and repeat.
Structure matters
I separated provider settings, variables, outputs, versions, backend configuration, networking, and compute concerns so I could read the project without treating it as one large file. That also made mistakes easier to isolate.
Terraform does not remove troubleshooting
Automation can create exactly what I asked for even when what I asked for is wrong. I still had to understand routing, NAT, security groups, IAM, and Systems Manager connectivity when something did not work.
The biggest lesson
Infrastructure as Code is not just about deploying faster. For me, its biggest value is having a repeatable description of the environment that I can review, improve, and troubleshoot over time.
