Links
Comment on page

Infraestrutura grande com o Terraform

Este exemplo contém código como um exemplo de estruturação de configurações do Terraform para uma infraestrutura de médio porte, que utiliza:
  • 2 contas na AWS
  • 2 regiões (ap-southeast-2 e us-west-1, por exemplo)
  • 2 ambientes separados (prod e stage que não compartilham nada entre eles). Cada ambiente está em uma conta separada na AWS.
  • Cada ambiente utiliza uma versão diferente do módulo de infraestrutura pronto para uso (alb) originado do Terraform Registry
  • Cada ambiente utiliza a mesma versão de módulos/rede de um módulo interno, pois é originado de um diretório local.
Em um grande projeto como o descrito aqui, os benefócios do uso do Terragrunt se tornam muito visíveis. Veja Estruturas de código de exemplos com o Terragrunt.
  • Perfeito para projetos em que a infraestrutura é separada logicamente (contas AWS separadas)
  • Bom para quando não há necessidade de modificar recursos compartilhados entre contas da AWS (um ambiente = uma conta da AWS = um arquivo de estado)
  • Bom para quando não há necessidade na orquestração de mudanças entre os ambientes
  • Bom para quando os recursos de infraestrutura são diferentes por ambiente de propósito e não podem ser generalizados (por exemplo, alguns recursos estão ausentes em um ambiente ou em algumas regiões)
À medida que o projeto cresce, será mais difícil manter esses ambientes atualizados entre sí. Considere o uso de módulos de infraestrutura (já prontos ou internos) para tarefas repetíveis.