Terraform es una herramienta de infraestructura como código. En lugar de crear servidores haciendo clic en un panel, describes lo que necesitas en archivos de texto, y Terraform lo crea todo por ti.

Cómo funciona

Escribes la configuración en un lenguaje declarativo. En él, indicas lo que quieres tener al final, y no los pasos para llegar ahí. Terraform compara lo que describiste con lo que existe de hecho y calcula lo que necesita cambiar.

El uso común tiene tres comandos:

Terminal
terraform init
terraform plan
terraform apply

El init prepara el proyecto y descarga los proveedores. El plan muestra lo que se creará, modificará o eliminará, sin ejecutar nada. El apply ejecuta el cambio.

Terraform guarda un registro de lo que creó, llamado estado. Es por él que sabe lo que ya existe en la próxima ejecución.

Ejemplo práctico

Imagina que necesitas un servidor para tu aplicación. En lugar de crearlo a mano, escribes un archivo.

hcl · main.tf
resource "aws_instance" "app" {
  ami           = "ID_DA_IMAGEM"
  instance_type = "t3.micro"
}

Si mañana necesitas un entorno igual para pruebas, basta con ejecutar la misma configuración de nuevo. Si algo se rompe, recreas todo a partir del archivo.

Como el archivo es texto, puede quedar en Git, pasar por revisión en pull request y tener historial de cambios.

Para qué sirve

Terraform sirve para:

  • Crear entornos iguales de desarrollo, pruebas y producción.
  • Evitar errores de configuración manual.
  • Trabajar con varios proveedores de nube, como AWS, Google Cloud y Azure, con el mismo enfoque.
  • Documentar la infraestructura en el propio código.

Para quienes usan agentes de IA para programar, Terraform es útil porque el agente puede proponer cambios en archivos, y tú revisas el plan antes de aplicar.

Cuidados

El comando apply modifica recursos reales y puede generar costo. Lee siempre el resultado del plan antes de aplicar. Guarda el archivo de estado en un lugar seguro, pues puede contener información sensible, y nunca coloques claves de acceso directamente en el código.

Diferencia entre Terraform y Kubernetes

Terraform crea la infraestructura, como máquinas, redes y bases de datos. Kubernetes orquesta contenedores que se ejecutan sobre esa infraestructura. Es común usar ambos juntos: Terraform monta el terreno, y Kubernetes organiza las aplicaciones.