Terraform Basics

Infrastructure as Code with Terraform basics.

Basic Commands

terraform init # initialize working directory
terraform plan # preview changes
terraform apply # apply changes
terraform destroy # destroy infrastructure
terraform validate # validate configuration

Basic Configuration

terraform {
    required_providers {
        aws = {
            source = "hashicorp/aws"
            version = "~> 4.0"
        }
    }
}

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

Resource Definition

resource "aws_instance" "web" {
    ami = "ami-0c55b159cbfafe1f0"
    instance_type = "t2.micro"

    tags = {
        Name = "WebServer"
    }
}

Variables

variable "region" {
    type = string
    default = "us-east-1"
}

# Use variable
region = var.region

Outputs

output "instance_ip" {
    value = aws_instance.web.public_ip
}