T

Terraform

⭐ Featured
Not yet rated developmentPaid
Visit Terraform →

About Terraform

Terraform is HashiCorp's open-source infrastructure as code (IaC) software tool that enables developers and operations teams to define, provision, and manage cloud infrastructure using declarative configuration files. Instead of manually clicking through cloud provider consoles to create servers, databases, networks, and other resources, you write Terraform configuration files describing desired infrastructure state, and Terraform automatically creates, updates, or destroys resources to match. Terraform supports over 1,000 providers (AWS, Azure, GCP, Kubernetes, Datadog, etc.), making it the industry standard for multi-cloud infrastructure automation.

Best For:
Terraform excels for DevOps teams managing cloud infrastructure across AWS, Azure, or GCP who want version-controlled, reproducible infrastructure deployments. It's ideal for organizations implementing multi-cloud or hybrid cloud strategies needing consistent tooling across providers, teams wanting to codify infrastructure for disaster recovery and environment replication, and companies requiring infrastructure changes to go through code review and approval processes. Terraform works particularly well when combined with CI/CD pipelines for automated infrastructure testing and deployment.

Common Questions

What is infrastructure as code and why use it?
Infrastructure as code means defining your servers, databases, networks, and cloud resources in code files (Terraform's HCL language) instead of manual configuration. Benefits include: version control (track all changes in Git), reproducibility (spin up identical staging/production environments), collaboration (code review infrastructure changes), automation (apply infrastructure via CI/CD), disaster recovery (rebuild everything from code), and documentation (code serves as definitive infrastructure documentation). Manual console clicking is error-prone, slow, and undocumented; IaC makes infrastructure automated and reliable.

How does Terraform compare to CloudFormation, ARM Templates, or Pulumi?
Terraform is cloud-agnostic—one tool works across AWS, Azure, GCP, and 1,000+ providers. CloudFormation (AWS-only), ARM Templates (Azure-only), and Google Deployment Manager (GCP-only) lock you into single clouds. Terraform uses HCL (HashiCorp Configuration Language), a declarative, human-readable format. Pulumi uses real programming languages (TypeScript, Python, Go) which some teams prefer but adds complexity. Terraform's massive ecosystem, maturity, and provider support make it the most popular IaC tool, though cloud-native tools integrate more deeply with their respective platforms.

Is Terraform truly free?
Yes, Terraform CLI (core product) is 100% free and open-source under Mozilla Public License 2.0 with no usage restrictions. However, HashiCorp offers Terraform Cloud (SaaS platform) and Terraform Enterprise (self-hosted) as commercial products providing team collaboration, remote state storage, policy enforcement, and UI. Many organizations use free Terraform CLI with self-managed state storage (S3) and never pay HashiCorp. Terraform Cloud's free tier supports up to 5 users for small teams.

How difficult is Terraform to learn?
Terraform has a moderate learning curve. Basic concepts (resources, providers, state) are straightforward—you can provision your first AWS EC2 instance in under an hour. However, mastering state management, modules, workspaces, remote backends, and complex dependencies takes weeks. The biggest challenges are understanding terraform state (the source of truth for infrastructure) and managing state files safely in teams. Terraform's extensive documentation and large community help significantly. Most DevOps engineers become productive within 1-2 weeks of focused learning.

Pricing & Plans

Terraform Open Source (Free): Complete infrastructure as code tool with unlimited resources, providers, and users. Supports all cloud providers and services. No licensing costs or restrictions. Community support via forums and documentation.

Terraform Cloud (Free Tier): Up to 5 users, 500 resources managed per month, remote state storage, version control integration (GitHub, GitLab, Bitbucket), collaborative runs, and private module registry. Free plan is generous for small teams.

Terraform Cloud (Team & Governance): $20/user/month for team collaboration features: role-based access control, team management, policy as code (Sentinel), cost estimation, and run tasks. No resource limits.

Terraform Cloud (Business): Custom pricing adds SSO/SAML, audit logging, self-service infrastructure via service catalog, advanced compliance, and premium support.

Terraform Enterprise (Self-Hosted): Custom pricing for running Terraform Cloud on your own infrastructure for compliance/security requirements. Includes all Terraform Cloud features plus air-gapped installation support and clustering.

Limitations

Terraform's primary limitation is state file management complexity—state tracks existing infrastructure and can become corrupted or out-of-sync if multiple users apply changes simultaneously, requiring careful configuration of remote state with locking (S3 + DynamoDB on AWS). The state file contains sensitive data (passwords, keys) requiring secure storage. Terraform drift occurs when resources are modified outside Terraform (via console), requiring manual reconciliation. Error messages can be cryptic, especially for plan failures. Some cloud provider features lag behind native tools (e.g., CloudFormation supports new AWS services faster). Refactoring large Terraform configurations is risky and error-prone. Terraform destroys and recreates resources for certain changes, causing downtime. The HCL language is limited compared to real programming languages—complex logic requires workarounds.

Getting Started

Install Terraform from terraform.io (macOS: brew install terraform, Windows: download binary, Linux: package manager). Verify installation: terraform version. Create a directory for your first project and create main.tf:

provider "aws" {
  region = "us-east-1"
}

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
  
  tags = {
    Name = "terraform-example"
  }
}

Run terraform init to download the AWS provider plugin. Configure AWS credentials (aws configure or environment variables). Run terraform plan to preview changes. Run terraform apply to create resources—type "yes" to confirm. View your EC2 instance in AWS console. Run terraform destroy to delete resources when done. Complete HashiCorp's Learn Terraform tutorials covering state, variables, modules, and remote backends. Store state remotely (S3, Terraform Cloud) before collaborating with teams. Use .gitignore to never commit state files or .tfvars files containing secrets.

Quick Info

Pricing
free-open-source
Share:

Stay in the loop

Get weekly picks of the best no-code tools — straight to your inbox.

Frequently Asked Questions about Terraform

What is the pricing for Terraform?

Terraform offers a free-open-source pricing model.

What category does Terraform belong to?

Terraform belongs to the development category.

What are the best alternatives to Terraform?

Check out our development category to discover the best alternatives to Terraform.