Terraform Best Practices
Terraform consultingTwitter @antonbabenkoTerraform Weekly
Português (Brazilian Portuguese)
Português (Brazilian Portuguese)
  • Seja Bem-Vindo(a)
  • Conceitos chave
  • Estrutura do código
  • Exemplos de estrutura de códigos
    • Terragrunt
    • Terraform
      • Infraestrutura pequena com o Terraform
      • Infraestrutura média com o Terraform
      • Infraestrutura grande com o Terraform
  • Convenções de nomenclatura
  • Estilo de código
  • FAQ
  • Referências
  • Escrevendo configurações do Terraform
  • Workshop
Powered by GitBook
On this page
Export as PDF
  1. Exemplos de estrutura de códigos
  2. Terraform

Infraestrutura grande com o Terraform

PreviousInfraestrutura média com o TerraformNextConvenções de nomenclatura

Last updated 3 years ago

Fonte:

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

  • 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

  • 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.

https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/large-terraform
Terraform Registry
Estruturas de código de exemplos com o Terragrunt.