Terraform per infrastrutture di grandi dimensioni
Sorgente: https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/large-terraform
Questo esempio contiene codice per strutturare configurazioni Terraform per infrastrutture di grandi dimensioni che usano:
2 account AWS
2 regioni
2 ambienti separati (
prod
estage
che non hanno niente in condivisione). Ogni ambiente vive in un account AWS separato e si distribuisce tra 2 regioniOgni ambiente usa una versione differente del moduleo di infrastruttura off-the-shelf infrastructure module (
alb
) con sorgenteTerraform RegistryOgni ambiente usa la stessa versione del modulo interno
modules/network
dato che la sorgente di questo è una directory locale.
In un progetto grande come quello descritto i benefici di usare Terragrunt diventano molto evidenti. Vedi Code Structures examples with Terragrunt.
Perfetto per progetti dove l'infrastruttura é separata logicamente (account AWS separati)
Adatto dove non c'é necessità di modificare risorse condivise tra account AWS ( un ambiente = un account AWS = un file di stato)
Adatto dove non c'é necessità di orchestrare cambiamenti tra ambienti.
Adatto dove le risorse di infrastruttura sono intenzionalmente diverse per ambiente e non possono essere generalizzate. (esempio, alcune risorse sono assenti in un ambiente o in alcune regioni)
Quando il progetto crescerà, sarà più difficile tenere questi ambienti aggiornati uno con l'altro. Considera l'uso dei moduli infrastruttura (dallo scaffale o interni) per attività che si ripetono.
Last updated