¿Qué es Terraform?
Terraform es una herramienta de infraestructura como código (IaC) desarrollada por HashiCorp. Permite definir, versionar y desplegar infraestructura en múltiples proveedores cloud (AWS, Azure, GCP, etc.) mediante archivos de configuración en HCL (HashiCorp Configuration Language).
Su mayor fortaleza es la reproducibilidad: puedes describir tu infraestructura una vez y recrearla idéntica en diferentes entornos o regiones.
Paso 1: Instalar Terraform
Descárgalo desde terraform.io y añade el binario a tu PATH:
brew install terraform # en macOS
terraform -v # para verificar la instalaciónPaso 2: Crear tu primer archivo .tf
Vamos a lanzar una instancia EC2 en AWS. Crea un archivo main.tf con el siguiente contenido mínimo:
provider "aws" {
region = "us-east-1"
}
resource "aws_instance" "example" {
ami = "ami-0c55b159cbfafe1f0" # Amazon Linux
instance_type = "t2.micro"
tags = {
Name = "EjemploTerraform"
}
}Paso 3: Inicializar y aplicar
Ahora inicializamos Terraform, validamos la configuración y aplicamos los cambios:
terraform init # inicializa el proyecto
terraform plan # muestra qué va a crear
terraform apply # aplica los cambios (te pedirá confirmación)Paso 4: Variables y módulos
En lugar de hardcodear valores, puedes usar variables:
# variables.tf
variable "instance_type" {
default = "t2.micro"
}# main.tf
resource "aws_instance" "example" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = var.instance_type
}Y si tu proyecto crece, puedes dividirlo en módulos reutilizables que encapsulan lógica de despliegue.
Paso 5: Gestión del estado
Terraform mantiene el estado de tu infraestructura en un archivo terraform.tfstate. Para entornos colaborativos, es recomendable almacenarlo en un backend remoto como S3 + DynamoDB:
terraform {
backend "s3" {
bucket = "mi-bucket-terraform"
key = "global/s3/terraform.tfstate"
region = "us-east-1"
dynamodb_table = "terraform-locks"
}
}Mejores prácticas
- ✅ Usa módulos para dividir infraestructura en componentes reutilizables
- 🔒 Usa
secrets(como variables de entorno o archivos.tfvarsprivados) - 📦 Versiona todo el código de Terraform en Git
- 🔁 Automatiza con GitHub Actions para validar y aplicar en PRs
- 🧪 Usa
terraform validateyterraform fmten tu pipeline
Conclusión
Con Terraform puedes definir tu infraestructura con el mismo enfoque que tu código fuente: limpio, versionado y auditable. Desde levantar una simple instancia hasta desplegar una arquitectura completa con VPCs, balanceadores y bases de datos, todo puede estar codificado.
Una vez te familiarices con sus conceptos clave (estado, módulos, variables), tu velocidad y confianza para desplegar se multiplica. Infraestructura como código no es una moda, es el estándar moderno.





