Terraform for Builders
Terraform is the standard tool for Infrastructure as Code on AWS, GCP, and Azure. This course teaches you to provision VPCs, EC2 instances, RDS databases, S3 buckets, and IAM policies with reusable, version-controlled Terraform code — and automate deployments through CI/CD pipelines.
What you'll learn
Course outline
Free — start now
Full course — $59 one-time
EC2 and Auto Scaling Groups
Launch templates, target groups, and scaling policies
RDS — Managed PostgreSQL
Provisioning an RDS instance with backups and subnet groups
S3 and IAM Policies
Buckets, bucket policies, IAM roles, and least-privilege access
Terraform Modules
Reusable infrastructure patterns across projects and environments
Remote State and Locking
S3 backend, DynamoDB locking, and team state management
CI/CD for Infrastructure
Automating terraform plan and apply in GitHub Actions
Migrating Existing Infrastructure
Importing existing AWS resources into Terraform state
Get the full course
All 10 lessons. Define your cloud in code — never click the AWS console again.
Written by the RadarTrek editorial team · Reviewed June 2026
About this course
Infrastructure as Code means defining your cloud resources — servers, databases, networks, storage — in version-controlled configuration files rather than clicking through cloud provider consoles. Every time you click the AWS console to provision something, you create infrastructure whose exact configuration exists only in that console. It cannot be reproduced consistently, reviewed in a pull request, rolled back with git revert, or recreated in a disaster recovery scenario. Terraform solves this by letting you write declarative HCL (HashiCorp Configuration Language) files that describe what infrastructure should exist, and applying them through a plan-then-apply workflow that shows you exactly what will change before making any changes.
Terraform works with every major cloud provider — AWS, GCP, Azure, DigitalOcean, Cloudflare — through a plugin system called providers. It manages state in a file (or remotely in S3) that tracks which real-world resources correspond to which configuration blocks. The plan-apply workflow is what makes Terraform safe: `terraform plan` shows you a diff of what will be created, modified, or destroyed before `terraform apply` makes a single API call. For builders who have been managing infrastructure manually, learning Terraform is one of the highest-leverage investments in engineering reliability.
Frequently asked questions
What is Terraform and how does it differ from AWS CloudFormation?
Terraform is a cloud-agnostic Infrastructure as Code tool that works with AWS, GCP, Azure, and hundreds of other providers using the same HCL syntax. CloudFormation is AWS-only and uses YAML or JSON. Terraform has a better developer experience (cleaner syntax, faster iteration, the plan command), a larger provider ecosystem, and works across multi-cloud environments. CloudFormation is tightly integrated with AWS and sometimes gets new service support before Terraform, but for most teams Terraform is the preferred choice.
What is Terraform state and why does it matter?
Terraform maintains a state file that maps your HCL configuration to real cloud resources. When you run terraform apply, Terraform reads the state to know what currently exists, compares it to your configuration, and calculates what changes to make. Without state, Terraform cannot know if a resource already exists or needs to be created. By default, state is stored locally in terraform.tfstate — for team environments, this must be stored remotely in S3 (with DynamoDB for locking) so multiple engineers can share the same state without conflicts.
Is Terraform hard to learn for someone who knows Docker?
If you understand Docker and basic cloud networking (what a VPC, subnet, and security group are), Terraform's learning curve is moderate. The HCL syntax is simple — resources have a type and a block of properties. The harder concepts are the state model, understanding the plan output, and module structure for reusability. This course assumes Docker knowledge and builds from there. Most builders are writing useful Terraform within a few hours and managing production infrastructure within a week.
What is the Terraform plan-apply workflow?
`terraform init` downloads providers. `terraform plan` reads your configuration and state, calls cloud APIs to check current resource status, and outputs a diff showing exactly what will be created, modified, or destroyed — no changes are made. `terraform apply` shows the same plan and asks for confirmation before executing. This workflow is what makes Terraform safe to use in teams: every change is reviewed as a diff before it affects production. In CI/CD pipelines, `terraform plan` output is posted as a pull request comment and `terraform apply` runs on merge.
Should I use Terraform or just use the cloud console for small projects?
For a one-person project with two or three cloud resources, the console is fine to start. Terraform becomes valuable when you need to reproduce environments (staging mirrors production), collaborate (another engineer needs to understand what infrastructure exists), recover from incidents (recreate infrastructure from scratch), or change things safely (a plan shows you exactly what will change). The inflection point is usually when you have more than five resources or more than one environment. Starting with Terraform early is much easier than migrating to it later.