Terraform 101: Infrastructure as Code for Small Teams
Terraform has a reputation for being "enterprise infrastructure tooling," which stops a lot of small teams from adopting it even when they'd benefit the most. Here's the version of Terraform that actually fits a small team, without the ceremony.
Why bother, at small scale
The honest answer: because "I clicked around the AWS console to set this up" is undocumented, unreproducible, and a single point of failure the moment that person is unavailable. Terraform turns your infrastructure into a file you can read, diff, review in a PR, and recreate from scratch if a region goes down or an account gets locked.
The minimum viable setup
- One repo, one state file, remote backend. Store state in S3 (or your cloud's equivalent) with locking via DynamoDB, not on a laptop. Local state is how two people apply conflicting changes and corrupt everything.
- Modules only when you repeat yourself twice. Don't pre-build a module library for a five-resource project. Write flat
.tffiles first; extract a module once you're copy-pasting the same block for a second environment. terraform planin CI,terraform applyby hand (at first). Running plan automatically on every PR catches drift and mistakes before merge. Keep apply manual until your team trusts the process — automating apply too early is how a bad plan becomes a bad production change with no human in the loop.
The mistake that costs the most time
Not pinning provider versions. A provider update between "it worked yesterday" and "it's broken today" is one of the most confusing debugging sessions you can have, because nothing in your code changed. Pin versions in a required_providers block and bump them deliberately.
What I'd skip, for now
Terraform Cloud, Sentinel policies, custom providers — all genuinely useful, none of it necessary to get real value. A two-person team with one state file, one remote backend, and CI-run plans already has more reproducibility and review than most infra "the person who set it up remembers how" setups.
Takeaway
Terraform's value isn't the tool's sophistication — it's turning tribal knowledge into a reviewable file. That benefit shows up at team size one, not just team size fifty.