¿Ya dominas lo básico? Un curso estructurado de Terraform es la vía rápida para dar el salto.
Ver cursos de Terraform en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02¿Qué es Terraform?
- 03Comprobar la versión con terraform version
- 04¿Qué es la infraestructura como código?
- 05¿Qué es un proveedor?
- 06Preparar los proveedores con terraform init
- 07¿Qué es un bloque resource?
- 08Comprobar la sintaxis con terraform validate
- 09Dar formato al código con terraform fmt
- 10Previsualizar los cambios con terraform plan
- 11Construir la infraestructura con terraform apply
- 12¿Qué es el tfstate?
- 13Ver el estado con terraform show
- 14Listar recursos con terraform state list
- 15Inspeccionar un recurso con terraform state show
- 16¿Qué son las variables?
- 17¿Qué son las salidas?
- 18Leer las salidas con terraform output
- 19Desmontar con terraform destroy
- 20¿Qué es un módulo?
- 21¿Qué es un workspace?
- 22Listar workspaces con terraform workspace list
- 23Crear un workspace con terraform workspace new
- 24Cambiar de workspace con terraform workspace select
- 25Guardar un plan con terraform plan -out
- 26Aplicar un plan guardado con terraform apply
- 27¿Qué es el bloqueo del estado?
- 28Listar proveedores con terraform providers
- 29¿Qué es terraform refresh?
- 30¿Qué es un backend remoto?
- 31Adoptar recursos existentes con terraform import
- 32¿Qué es depends_on?
- 33¿Qué son for_each y count?
- 34Ver las dependencias con terraform graph
- 35¿Qué es el drift del estado?
- 36Cómo pensar la división en módulos
- 37Práctica final: montar una arquitectura web de tres capas con Terraform
¿Qué es un bloque resource?
En esta lección verás cómo se declara algo que quieres que exista.
Un bloque resource describe un elemento de infraestructura. Se escribe con el tipo y un nombre local — resource "aws_instance" "web" { ... } — y dentro van sus atributos. terraform validate comprueba que está bien escrito.
El tipo lo define el proveedor y empieza siempre por su nombre, así que aws_instance se lee como «una instancia de AWS». El segundo nombre lo eliges tú y solo existe dentro de la configuración: es la etiqueta con la que otros bloques se refieren a este.
Esa referencia es lo que hace funcionar todo lo demás. Escribir aws_instance.web.id en otro bloque crea automáticamente una dependencia, y Terraform deduce por sí solo el orden de creación. Rara vez hay que indicarlo a mano.
Conviene tener claro qué significa el nombre local, porque de ahí sale un error caro: cambiarlo hace que Terraform crea que el recurso antiguo debe destruirse y crearse otro nuevo. En una base de datos, eso es una pérdida de datos por un renombrado. Para eso existe terraform state mv, que renombra en el estado sin tocar nada real.
El lenguaje se llama HCL y está pensado para leerse, no solo para ejecutarse.
🧑💻 Puedes escribir este comando en la terminal simulada de Terraform para probarlo tú mismo (esta página no incluye terminal interactiva).
