Gestión del estado de Terraform y backends remotos
Comprenda el estado de Terraform, configure backends remotos seguros, gestione el bloqueo del estado y evite su corrupción en pipelines colaborativos de IaC.
Gestión del estado de Terraform y backends remotos es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.
Qué es el estado de Terraform
Terraform registra lo que ha creado en un archivo de estado (terraform.tfstate). Este relaciona su configuración con los recursos reales de la nube.
Sin el estado, Terraform no sabría qué recursos ya existen y podría crear duplicados o no actualizar correctamente.
Por qué el estado local falla en los equipos
De forma predeterminada, el estado se almacena en el disco local. Esto deja de funcionar bien con un equipo o en CI:
- Los demás no pueden ver su estado
- Las ejecuciones simultáneas corrompen el archivo
- El archivo contiene secretos en texto sin formato y podría confirmarse por accidente
La solución es un backend remoto.
Backends remotos
Un backend remoto almacena el estado en una ubicación compartida y duradera, como un bucket de S3, Azure Blob, GCS o Terraform Cloud.
Esto proporciona a cada ejecución de la canalización una única fuente de verdad sobre la infraestructura actual.
terraform {
backend "s3" {
bucket = "my-tf-state"
key = "prod/terraform.tfstate"
region = "us-east-1"
}
}Bloqueo del estado
Si dos ejecuciones de la canalización aplican cambios al mismo tiempo, pueden corromper el estado. El bloqueo del estado lo impide al permitir una sola escritura cada vez.
Con el backend de S3, una tabla de DynamoDB proporciona el bloqueo. Terraform Cloud bloquea automáticamente.
backend "s3" {
bucket = "my-tf-state"
key = "prod/terraform.tfstate"
dynamodb_table = "tf-locks"
}Cifrado del estado
Los archivos de estado suelen contener valores confidenciales, como contraseñas y claves. Cifre siempre el estado en reposo.
Para el backend de S3, habilite el cifrado del bucket y establezca encrypt = true en la configuración del backend.
backend "s3" {
bucket = "my-tf-state"
key = "prod/terraform.tfstate"
encrypt = true
}Espacios de trabajo para entornos
Los espacios de trabajo de Terraform permiten que una configuración administre varios archivos de estado, uno por entorno.
Cambie de uno a otro para que staging y producción nunca compartan el mismo estado.
terraform workspace new staging
terraform workspace select productionPlanificación y aplicación en CI
En una canalización, ejecute terraform plan para previsualizar los cambios (a menudo en las solicitudes de incorporación de cambios) y terraform apply para aplicarlos (al fusionar con main).
Guarde el plan en un archivo para que apply utilice exactamente lo que se revisó.
terraform plan -out=tfplan
terraform apply -auto-approve tfplanInspección del estado
Puede consultar el estado para ver qué está supervisando Terraform.
terraform state list— enumera los recursos administradosterraform state show <addr>— muestra los detalles de un recurso
Evite editar el estado manualmente; utilice comandos en su lugar.
terraform state list
terraform state show aws_instance.webImportación de recursos existentes
Si un recurso se creó fuera de Terraform, incorpórelo a la administración con terraform import en lugar de volver a crearlo.
Esto evita duplicaciones destructivas al adoptar IaC en una infraestructura existente.
terraform import aws_s3_bucket.logs my-existing-bucketGestión de desviaciones
La desviación ocurre cuando alguien cambia la infraestructura manualmente y la realidad deja de coincidir con el estado.
Ejecute terraform plan periódicamente para detectar desviaciones y, después, vuelva a aplicar la configuración para restaurarla o actualícela para que coincida.
Nunca confirme el estado
Incluso con un backend remoto, asegúrese de que el estado local y los archivos de planes estén excluidos de Git. Contienen secretos.
Un buen .gitignore le protege frente a filtraciones accidentales.
# .gitignore
*.tfstate
*.tfstate.*
tfplan
.terraform/Comprobación rápida
Compruebe sus conocimientos sobre el estado de Terraform.
Resumen
Aprendió a administrar el estado de Terraform de forma segura.
- El estado relaciona la configuración con los recursos reales; no lo edite manualmente
- Los backends remotos comparten el estado entre el equipo y CI
- El bloqueo y el cifrado protegen frente a la corrupción y las filtraciones
- Los espacios de trabajo aíslan los entornos;
plandetecta las desviaciones
Una gestión sólida del estado es la base de unas canalizaciones de IaC fiables.
Preguntas frecuentes
¿La lección «Gestión del estado de Terraform y backends remotos» es gratis?
Sí — el texto completo de «Gestión del estado de Terraform y backends remotos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.
¿Qué aprenderé en «Gestión del estado de Terraform y backends remotos»?
Comprenda el estado de Terraform, configure backends remotos seguros, gestione el bloqueo del estado y evite su corrupción en pipelines colaborativos de IaC. Practicas DevOps Bootcamp con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar DevOps Bootcamp?
No se requiere experiencia previa. DevOps Bootcamp en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Gestión del estado de Terraform y backends remotos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de DevOps Bootcamp?
Sí. Cada lección de DevOps Bootcamp incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- IaC con Terraform y GitHub Actions
- Gestión de recursos en la nube
- Automatización de actualizaciones de infraestructura
- Gestión del estado de Terraform y backends remotos