Terraform en AWS: primer recurso con control de cambios
- Instala herramientas y elige autenticación
- Crea una carpeta y protege el estado
- Configuración mínima de práctica
- Inicializa, valida y revisa el plan
- Aplicar y retirar con intención
- Errores que no conviene resolver con más permisos
- Preguntas frecuentes
- En pocas palabras
- Conclusión
- Fuentes y documentación
Terraform permite declarar infraestructura y revisar los cambios que propone antes de aplicarlos. En AWS necesitas una cuenta autorizada, un método de autenticación y una idea clara de los costos. Un recurso creado por código sigue siendo un recurso facturable según su uso.
Esta introducción utiliza un grupo de seguridad de laboratorio. Evita comenzar con una infraestructura compleja que incluya instancias, balanceadores o NAT sin comprender qué creará.
Instala herramientas y elige autenticación
Obtén Terraform y AWS CLI desde sus procedimientos oficiales para tu sistema. Comprueba versiones y utiliza, cuando corresponda, acceso temporal con IAM Identity Center o el mecanismo aprobado por tu organización.
terraform version
aws --version
aws sts get-caller-identity
La última consulta permite comprobar a qué cuenta e identidad apuntan tus credenciales. Su salida contiene identificadores que no necesitas publicar. No continúes si no reconoces la cuenta.
Crea una carpeta y protege el estado
Los archivos de estado pueden incluir datos sensibles. No los trates como documentación pública ni los subas a Git. Para trabajo en equipo, diseña un backend con control de acceso y bloqueo compatibles.
En un laboratorio local, excluye archivos de estado y variables privadas del repositorio. El archivo de bloqueo de proveedores, en cambio, suele conservarse para registrar las selecciones utilizadas.
Configuración mínima de práctica
Guarda main.tf con una región que utilices y un CIDR propio para SSH. El valor de ejemplo pertenece a un rango de documentación y debe reemplazarse por tu origen autorizado:
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
}
}
}
provider "aws" {
region = "us-east-1"
}
variable "admin_cidr" {
type = string
}
resource "aws_security_group" "lab" {
name_prefix = "terraform-lab-"
description = "Acceso de laboratorio desde un origen autorizado"
ingress {
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = [var.admin_cidr]
}
}
Este ejemplo presupone una VPC predeterminada en la región. Si no existe, define expresamente la VPC del laboratorio. Un grupo de seguridad no crea por sí solo una instancia ni garantiza que puedas conectarte a ella.
Inicializa, valida y revisa el plan
terraform init
terraform fmt
terraform validate
terraform plan -var='admin_cidr=203.0.113.10/32'
Sustituye el rango de documentación antes de aplicar. Revisa el proveedor seleccionado y añade una restricción de versión apropiada después de comprobar compatibilidad. No interpretes validate como una revisión de costos o seguridad.
El plan identifica altas, cambios y destrucciones. Lee cada recurso, cuenta y región. Si quieres aplicar un plan guardado, protégelo como material sensible y evita compartirlo.
Aplicar y retirar con intención
terraform apply realiza cambios reales después de su confirmación. Antes de usarlo, comprueba que el plan corresponde al laboratorio y a la configuración revisada.
terraform destroy también modifica infraestructura real. No lo ejecutes desde una carpeta de otro proyecto ni suponiendo que “solo limpia archivos”. Revisa su plan y verifica después el inventario de AWS.
Errores que no conviene resolver con más permisos
Si falta autorización, identifica la acción y recurso solicitados. No otorgues permisos administrativos generales como solución automática. Si un recurso existe pero no está en el estado, investiga importación y propiedad antes de recrearlo o borrarlo.
Preguntas frecuentes
¿El archivo tfstate puede contener secretos?
Sí, dependiendo de los recursos y atributos. Protégele acceso, almacenamiento y copias, y no lo publiques por considerarlo solo un archivo técnico.
¿terraform validate garantiza un despliegue correcto?
No. Valida aspectos de la configuración; permisos, cuotas, costos y comportamiento del proveedor todavía pueden impedir o alterar una operación.
¿Destruir elimina todo lo creado en la cuenta?
No. Opera sobre los recursos gestionados por ese estado y configuración. Recursos externos, datos retenidos o elementos creados por otros procesos pueden permanecer.
En pocas palabras
Terraform compara una configuración con su estado para proponer cambios. Un plan revisado, credenciales adecuadas y protección del estado son partes del procedimiento, no tareas opcionales.
Conclusión
Practica primero la validación y lectura de un plan. Aplica solo en una cuenta de laboratorio autorizada y conserva un inventario de recursos para verificar qué permanece después de la limpieza.
Para continuar, revisa Crear servidor gratis en AWS Free Tier paso a paso y Instalar Kubernetes en Ubuntu desde cero: guía completa.
