Gestión del estado en Terraform: Remote State, Locking y Workspaces
El Terraform State es el archivo más crítico de su infraestructura. Mejores prácticas para una gestión de estado segura y escalable.
Por qué el State Management es decisivo
El Terraform State mapea su configuración HCL a recursos cloud reales. Si el State se pierde o se vuelve inconsistente, Terraform ya no podrá gestionar su infraestructura.
Remote State: S3 + DynamoDB
El State local funciona para personas individuales, pero en equipos necesita Remote State.
- S3 Backend: Almacenar el State en un bucket S3 versionado y cifrado.
- DynamoDB Locking: Evita que dos miembros del equipo ejecuten apply simultáneamente.
- Cifrado: Server-Side Encryption (SSE-S3 o SSE-KMS) para el State at Rest.
Estructura del State
- Un State por entorno: State files separados para dev, staging y production; un apply fallido en dev no debe afectar a production.
- Workspaces vs. Directorios: Los Workspaces comparten código con State files diferentes. Los directorios ofrecen un aislamiento más fuerte. Nosotros preferimos directorios para Production.
- Granularidad del State: Networking, Compute y Application en States separados, lo que reduce el blast radius y los tiempos de Plan.
Procedimientos de emergencia
- State Backup: Activar S3 Versioning: cada apply crea automáticamente un backup.
- Import:
terraform importpara incorporar recursos existentes al State. - State Surgery:
terraform state rmyterraform state mvpara refactoring, siempre con backup previo.
¿Preguntas sobre este tema?
Le asesoramos con gusto sobre las tecnologías y soluciones descritas en este artículo.
Contactar