Terraform: gestión estatal para la tenencia múltiple

A medida que avanzamos en la evaluación de Terraform para reemplazar (parcialmente) nuestro proceso de aprovisionamiento de Ansible para un SaaS multicliente, nos damos cuenta de la conveniencia, el rendimiento y la confiabilidad de Terraform, ya que podemos manejar el cambio de infraestructura (agregar / eliminar) sin problemas, manteniendo seguimiento del estado infra (eso es muy bueno).

Nuestra aplicación es un SaaS multicliente que proporcionamos instancias separadas para nuestros clientes: en Ansible tenemos nuestro propio inventario dinámico (lo mismo que el inventario dinámico EC2). Revisamos muchos libros / tutoriales de Terraform y las mejores prácticas, donde muchos sugieren que los estados de múltiples entornos deben administrarse por separado y de forma remota en Terraform, pero todos ellos parecen un entorno estático (como Dev / Staging / Prod).

¿Existe alguna práctica recomendada o un ejemplo real de la gestión del inventario dinámico de estados para aplicaciones de múltiples inquilinos? Nos gustaría realizar un seguimiento del estado de cada conjunto de instancias del cliente: completar los cambios fácilmente.

Un enfoque podría ser crear un directorio para cada cliente y colocar scripts * .tf dentro, que llamarán a nuestro módulo alojado en algún lugar global. Los archivos de estado se pueden colocar en S3, de esta manera podemos completar los cambios a cada cliente individual si es necesario.

Respuestas a la pregunta(2)

Su respuesta a la pregunta