Terraform: gerenciamento de estado para multilocação

À medida que avançamos na avaliação do Terraform para substituir (parcialmente) nosso processo de provisionamento Ansible para um SaaS de multilocação, percebemos a conveniência, o desempenho e a confiabilidade do Terraform, pois podemos lidar com a alteração da infraestrutura (adição / remoção) sem problemas, mantendo faixa de infra-estado (isso é muito legal).

Nossa aplicação é um SaaS de multilocação, que provisionamos instâncias separadas para nossos clientes - na Ansible, temos nosso próprio inventário dinâmico (exatamente o mesmo que o inventário dinâmico EC2). Analisamos muitos livros / tutoriais e práticas recomendadas do Terraform, onde muitos sugerem que os estados de vários ambientes devem ser gerenciados separadamente e remotamente no Terraform, mas todos eles parecem env estáticos (como Dev / Staging / Prod).

Existe alguma prática recomendada ou exemplo real de gerenciamento de inventário dinâmico de estados para aplicativos de multilocação? Gostaríamos de acompanhar o estado de cada conjunto de instâncias do cliente - preencher as alterações facilmente.

Uma abordagem pode ser a criação de um diretório para cada cliente e a inserção de scripts * .tf, que chamarão nosso módulo hospedado em algum lugar global. Os arquivos de estado podem ser colocados no S3; dessa forma, podemos preencher as alterações para cada cliente individual, se necessário.

questionAnswers(2)

yourAnswerToTheQuestion