DevOps & Cloud

Stop Clicking AWS Console Buttons: Why I Finally Committed to Terraform

A

Admin User

Author

Jun 27, 2026
4 min read
24 views
Stop Clicking AWS Console Buttons: Why I Finally Committed to Terraform

I spent two years telling myself I'd learn Terraform "eventually." I was managing infrastructure through a combination of AWS Console clicks, half-remembered CloudFormation templates, and the occasional panicked late-night SSH session to fix something manually. Then one Friday afternoon, a developer on my team accidentally deleted a production RDS security group. We spent six hours rebuilding it, cross-referencing old documentation, and praying we didn't miss a rule. That's when I realized: I wasn't being productive, I was just being reckless.

The turning point wasn't some revelation about IaC being theoretically better. It was realizing that every manual infrastructure change I made was a debt—a piece of undocumented, unrepeatable knowledge living only in my head. When I eventually read about teams rebuilding entire stacks in minutes instead of days, it hit differently. I wasn't looking at a nice-to-have optimization anymore. I was looking at the difference between chaos and actually being able to sleep at night.

Infrastructure Code Shouldn't Be Intimidating

I think Terraform gets positioned as this scary DevOps-only tool, and that's wrong. It's actually just a way of saying "here's what I want my infrastructure to look like" in plain text. You write a file that describes your AWS resources, you run a command, and Terraform figures out what to create or change. That's it.

The real shift here isn't technical—it's philosophical. Instead of remembering thirty AWS Console steps across multiple tabs, you're declaring your intent in a file that sits in version control. Other engineers can read it. Your future self can understand it. You can review changes before they happen, just like you'd review a pull request.

What surprised me is how the tooling enforces good practices. Terraform's plan command shows you exactly what will change before anything happens. No surprises. No "whoops, I thought that was a different resource." As someone who's shipped broken code to production, I respect any tool that gives you a chance to read the diff before committing.

Where Terraform Actually Shines (And Where It Doesn't)

Here's what I needed to understand: Terraform is not a silver bullet. It doesn't install software on your servers or configure applications. It doesn't manage your database schema or deploy code. It creates infrastructure—compute, storage, networking, IAM roles. Think of it as describing the blank canvas before you paint on it.

The moment I stopped expecting Terraform to do everything was the moment it became useful. I use it for what it's good at: defining environments reproducibly. Spinning up a new VPC, configuring security groups, creating IAM roles. Those repetitive, click-heavy tasks that used to eat time.

But here's where I've learned to be careful: state management. Terraform remembers what it created in a state file. This file is critical. If you lose it, Terraform doesn't know what it's managing anymore. If you accidentally commit it to Git unencrypted, you've leaked your infrastructure details and secrets. I've seen teams get this wrong, and it's painful.

What I'd Do Differently Starting Out

The original article's advice to use remote state with S3 and DynamoDB locking is solid, but I'd actually start simpler. When you're learning Terraform, keep state local first. Get comfortable with the workflow. Understand what state actually does. Then move to remote state once you're not afraid of it.

I'd also emphasize: write variables from day one. Hardcoding region names or instance types looks fine in a demo, but it becomes technical debt immediately. The extra five minutes to parameterize your code saves hours later when you need to deploy to a different environment or change a value across fifty resources.

One more thing the article touches on lightly but I want to emphasize: version your provider. Terraform providers change. If you don't pin the AWS provider version, someone running terraform init six months from now might get breaking changes. I've learned this the hard way.

The Real Win

The promise isn't that Terraform is elegant or fun to write. It's that your infrastructure becomes predictable. You can destroy everything and rebuild it. You can review changes before they hit production. You can actually understand what your team has created without opening fifteen AWS tabs. That's worth the learning curve.

Start small. Create an S3 bucket. Run plan, see what it'll do. Apply it. Delete it and recreate it. Feel how repeatable it is. That moment when you realize you've just made your infrastructure disposable instead of fragile—that's when it clicks.

What infrastructure change would actually be easy if you didn't have to do it manually?

Source: This post was inspired by "Terraform for Beginners: Your First Infrastructure as Code Project" by Dev.to. Read the original article

Share this article

Written by Adil Sher

Full stack developer building high-traffic platforms, AI services, and custom web applications. Explore my portfolio, learn about my background, or get in touch.

Related Articles

Quantum Cryptography Broke My Messaging Pipeline (And Yours Might Be Next)
DevOps & Cloud Aug 3

Quantum Cryptography Broke My Messaging Pipeline (And Yours Might Be Next)

I had an incident last month that I've been turning over in my head ever since. One of our microservices started timing out on message processing—nothing catastrophic, but enough to trigger alerts. After digging through logs, I found the culprit: we'd added an extra validation la...

When Your Docker Image Bloats from 900MB to... Wait, How Did We Get Here?
DevOps & Cloud Aug 2

When Your Docker Image Bloats from 900MB to... Wait, How Did We Get Here?

I was debugging a deployment issue at 2 AM last week when I realized our production Docker image had somehow ballooned to nearly a gigabyte. A gigabyte. For a Node.js API that should've been maybe 150MB lean. That's when I came across this article about image size optimization, a...

Why I'm Finally Committing to Learning in Public (And Why You Should Too)
DevOps & Cloud Aug 1

Why I'm Finally Committing to Learning in Public (And Why You Should Too)

Last month, I spent three hours debugging a CloudFormation template that kept failing in a specific way. The error message was cryptic, the AWS docs were buried under twelve tabs of StackOverflow threads, and I was frustrated. When I finally figured it out—a simple missing proper...