Quick Answer: Using Terraform with AWS lets you define and provision your entire AWS infrastructure as code — VPCs, EC2, S3, RDS, EKS, and more — in a repeatable, version-controlled way. This 2026 guide covers the AWS provider, the core workflow, remote state on S3, and a practical example.

Why Use Terraform with AWS?
- Repeatable — spin up identical dev/staging/prod environments on demand.
- Version-controlled — infrastructure changes go through Git and code review.
- Multi-service — manage hundreds of AWS services through one consistent workflow.
- Portable knowledge — the same HCL skills apply to Azure, GCP, and more.
Setting Up the AWS Provider
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
region = "us-east-1"
}Authentication: use environment variables, a named AWS CLI profile, or an IAM role — never hardcode access keys in your code.
The Core Workflow
terraform init # download the AWS provider & set up backend
terraform plan # preview changes
terraform apply # create/update AWS resources
terraform destroy # tear everything downExample: EC2 Instance in a VPC
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
tags = { Name = "main-vpc" }
}
resource "aws_subnet" "public" {
vpc_id = aws_vpc.main.id
cidr_block = "10.0.1.0/24"
availability_zone = "us-east-1a"
}
resource "aws_instance" "web" {
ami = "ami-0c7217cdde317cfec"
instance_type = "t3.micro"
subnet_id = aws_subnet.public.id
tags = { Name = "web-server" }
}Remote State on S3 (Best Practice)
terraform {
backend "s3" {
bucket = "my-tf-state-2026"
key = "prod/terraform.tfstate"
region = "us-east-1"
encrypt = true
use_lockfile = true # native S3 state locking
}
}Remote, encrypted, locked state is essential for team collaboration — it prevents conflicts and keeps secrets out of local files.
Common AWS Resources You’ll Manage
- Networking: VPC, subnets, security groups, NAT/Internet gateways.
- Compute: EC2, Auto Scaling, Lambda, ECS/EKS.
- Storage & DB: S3, EBS, RDS, DynamoDB.
- IAM: roles, policies, and least-privilege access.
Best Practices
- Use modules (e.g., the official VPC and EKS modules) for reusable, tested infrastructure.
- Pin provider and module versions.
- Run
fmt,validate, and a security scan (Checkov/tfsec) in CI. - Use workspaces or separate state per environment.
- Apply changes through CI/CD with PR-based approvals.
Conclusion
Terraform is the most popular way to automate AWS infrastructure in 2026. Master the provider, the core workflow, remote state, and modules, and you can manage AWS environments of any size safely and repeatably. Go deeper with our Terraform tutorial and prep with Terraform interview questions.
Frequently Asked Questions
Should I use Terraform or CloudFormation for AWS?
Terraform if you want multi-cloud portability and a large module ecosystem; CloudFormation if you want a fully AWS-native, no-extra-tooling option.
How do I store Terraform state securely on AWS?
Use an encrypted S3 backend with state locking and restricted IAM access; never commit state to Git.
Is Terraform free to use with AWS?
Terraform (and OpenTofu) are free and open-source; you only pay for the AWS resources you create.

