Terraform Associate

Deep Dive

Practicar ahora
D1 · Fundamentos de IaC y Terraform

El propósito y ventajas de Terraform

Por qué existe Terraform, qué problemas resuelve con el enfoque multi-cloud y provider-agnostic, y el rol fundamental del state en la gestión de infraestructura.

El propósito de Terraform

Terraform permite definir, planificar y aplicar cambios de infraestructura de forma segura y eficiente, usando un lenguaje de configuración de alto nivel (HCL) que describe el estado deseado de la infraestructura.

✍️

Escribir

Defines recursos en HCL: qué quieres que exista

🔍

Planificar

Terraform compara el estado actual vs deseado y muestra cambios

Aplicar

Terraform llama a las APIs del proveedor para hacer los cambios

Ventaja multi-cloud y provider-agnostic

Terraform usa el mismo lenguaje (HCL) y el mismo flujo de trabajo para gestionar recursos en cualquier proveedor de nube o tecnología.

EscenarioSin TerraformCon Terraform
Multi-cloud (AWS + Azure)2 herramientas, 2 lenguajes, 2 flujos distintos1 lenguaje HCL, 1 flujo init→plan→apply
Reproducir entorno dev en stagingProceso manual, propenso a diferenciasMisma configuración, distintas variables
Equipo distribuidoCada persona aplica cambios a su maneraGit + PR + apply revisado por todos
Migrar de AWS a GCPReescribir todo con herramientas GCP nativasCambiar el provider, adaptar recursos
On-prem + cloud híbridoScripts distintos por entornoProvider de VMware + provider de AWS, misma config

💡 Provider-agnostic en la práctica

Terraform tiene providers para más de 3,000 servicios: AWS, Azure, GCP, Kubernetes, GitHub, Datadog, PagerDuty, Cloudflare, MongoDB Atlas y muchos más. Todo se gestiona con el mismo lenguaje y el mismo flujo.

El rol del estado (state)

Terraform necesita conocer el estado actual de la infraestructura para calcular qué cambios realizar. Este mapeo entre configuración y recursos reales se almacena en el archivo de estado (terraform.tfstate).

Mapeo

Registra qué recurso Terraform corresponde a qué recurso real (con su ID en el proveedor).

Diff

Al hacer plan, Terraform compara el state con la configuración para saber qué crear, modificar o destruir.

Metadatos

Guarda dependencias entre recursos para destruirlos en el orden correcto.

Rendimiento

En grandes infraestructuras, usar el state evita hacer refresh de todos los recursos en cada plan.

Colaboración

El state remoto (S3, HCP Terraform) permite que múltiples personas compartan el mismo estado.

Secretos (⚠️)

El state puede contener valores sensibles en texto claro. Trátalo como dato confidencial.

Grafo de dependencias (DAG)

Terraform construye un grafo acíclico dirigido (DAG) de todos los recursos. Esto le permite aplicar cambios en paralelo cuando es seguro, y serializar cuando hay dependencias.

Ejemplo: VPC → Subnet → EC2

1

aws_vpc.main

Se crea primero — sin dependencias

2

aws_subnet.pub

Depende de aws_vpc.main (referencia vpc_id)

3

aws_instance.web

Depende de aws_subnet.pub (referencia subnet_id)

Al destruir, el orden se invierte: EC2 → Subnet → VPC.

🎯 Para el examen

  • • Terraform detecta dependencias implícitas cuando referencias un atributo de otro recurso: vpc_id = aws_vpc.main.id
  • • Para dependencias sin referencia directa, usa depends_on = [aws_vpc.main] (dependencia explícita)
  • • Recursos sin dependencias entre sí se crean/destruyen en paralelo para mayor velocidad

¿Entendiste este tema?

Pon a prueba lo que acabas de aprender

¿Cuál es el propósito principal del archivo terraform.tfstate?