Terraform Best Practices
Terraform consultingTwitter @antonbabenkoTerraform Weekly
Français (French)
Français (French)
  • Bienvenue
  • Concepts clés
  • Structure du code
  • Exemples de structure de code
    • Terragrunt
    • Terraform
      • Infrastructure de petite taille avec Terraform
      • Infrastructure de taille moyenne avec Terraform
      • Infrastructure de grande taille avec Terraform
  • Convention des noms
  • Style de code
  • FAQ
  • Références
  • Ecrire des configurations Terraform
  • Atélier
Powered by GitBook
On this page
Export as PDF
  1. Exemples de structure de code
  2. Terraform

Infrastructure de grande taille avec Terraform

PreviousInfrastructure de taille moyenne avec TerraformNextConvention des noms

Last updated 1 year ago

Source:

Cet exemple contient du code comme exemple de structuration des configurations Terraform pour une infrastructure de grande taille qui utilise :

  • 2 comptes AWS

  • 2 régions

  • 2 environnements séparés (prod et stage qui ne partagent rien). Chaque environnement réside dans un compte AWS distinct et répartit les ressources entre 2 régions

  • Chaque environnement utilise une version différente du module d'infrastructure standard (alb) provenant de

  • Chaque environnement utilise la même version d'un module interne modules/network puisqu'il provient d'un répertoire local.

Dans un grand projet comme décrit ici, les avantages de l'utilisation de Terragrunt deviennent très visibles. Voir .

  • Parfait pour les projets où l'infrastructure est logiquement séparée (comptes AWS séparés)

  • Bon lorsqu'il n'est pas nécessaire de modifier les ressources partagées entre les comptes AWS (un environnement = un compte AWS = un fichier d'état)

  • Bon quand il n'y a pas besoin d'orchestration des changements entre les environnements

  • Bon lorsque les ressources d'infrastructure sont différentes par environnement à dessein et ne peuvent pas être généralisées (par exemple, certaines ressources sont absentes dans un environnement ou dans certaines régions)

Au fur et à mesure que le projet grandit, il sera plus difficile de maintenir ces environnements à jour les uns avec les autres. Il faudrait envisagez d'utiliser des modules d'infrastructure (prêts à l'emploi ou internes) pour les tâches répétables.

https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/large-terraform
Terraform Registry
Code Structures examples with Terragrunt