DEV Community

Cover image for Adiós DynamoDB: S3-Native State Locking en Terraform 1.10
francotel
francotel

Posted on

Adiós DynamoDB: S3-Native State Locking en Terraform 1.10

¡Terraform sigue evolucionando! Con la versión 1.10, ahora podemos decirle adiós a DynamoDB para el state locking cuando usamos Amazon S3 como backend. Esto simplifica la configuración, reduce costos y elimina una dependencia extra. ✅

🤖 ¿Qué es el state locking y por qué es importante?

Cuando trabajamos con Terraform en equipo, es crucial evitar que múltiples personas modifiquen el estado al mismo tiempo. Esto previene corrupción de datos y conflictos. Tradicionalmente, en AWS se usaba DynamoDB para gestionar estos bloqueos, lo que añadía configuraciones adicionales y costos extra.

terraform-backend

🚀 ¿Qué cambia con Terraform 1.10?

Ahora, Terraform puede bloquear el estado directamente en S3, usando escrituras condicionales. Esto significa que:

✅ No necesitas DynamoDB para el locking.
✅ Menos configuraciones y menos costos.
✅ Terraform maneja el bloqueo de manera transparente usando S3.

Para habilitarlo, solo agrega esta configuración en tu backend:

terraform {
  backend "s3" {
    bucket       = "mybucket"
    key          = "path/to/my/key"
    region       = "us-east-1"
    use_lockfile = true
  }
}
Enter fullscreen mode Exit fullscreen mode

Con la opción use_lockfile = true, Terraform crea un archivo de bloqueo en S3 y utiliza headers condicionales para evitar que dos procesos lo modifiquen al mismo tiempo. ✨

tflock

🛠️ Consideraciones importantes

⚡ Compatibilidad: Puedes seguir usando DynamoDB si lo deseas, pero es recomendable migrar a este nuevo método.

⚡ Buckets con restricciones: Si tu bucket tiene configuraciones avanzadas, revisa que soporte escrituras condicionales.

⚡ Object Lock en S3: Si tienes habilitada esta función, actualiza a Terraform 1.10.1, donde se solucionaron algunos errores relacionados.

🔄 ¿Qué sigue?

💡 Terraform 1.11: Se marcarán como deprecated las opciones de DynamoDB (dynamodb_table, etc.).

💡 Terraform 1.12: Posiblemente se eliminen por completo las dependencias de DynamoDB en futuros lanzamientos.

Si quieres una configuración más sencilla y ahorrar costos, es el momento perfecto para actualizar. ⏳✨


¡No te lo pierdas! Sígueme en LinkedIn para estar al tanto de todas las actualizaciones y futuros artículos:

LinkedIn

☕ Apóyame con un café

Si este contenido te ha sido útil y quieres apoyarme para seguir creando más, considera invitarme un café. ¡Tu apoyo hace la diferencia! 🥰

BuyMeACoffee


¡Gracias por leer y hasta la próxima! 👋

Top comments (0)