Izvor: https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/medium-terraform
Ovaj primjer sadrzi kod koji je primjer organizacije Terrafrom konfiguracije za infrastrukture srednje velicine, u ovom primjeru se koriste:
2 AWS racuna
2 odvojena okruzenja (produkcijsko
and testno
). Svako okruzenje je smjesteno unutar posebnog AWS racuna i nemaju dodairnih tacaka.
Svako okruzenje koristi razlicitu verziju infrastrukturnog modula (alb
) preuzetog sa Terraform Registry-a
Svako okruzenje koristi istu verziju internog modula modules/network
posto je taj modul preuzet iz lokalnog direktorija.
Idealan za projekte gdje je infrastruktura logicki razdvojena (radvojeni AWS racuni)
Dobar kada nema potrebe da mijenjate resurse koji su dijeljeni izmedju AWS racuna (jedno okruzenje = jedan AWS racun = jedan Terraform fajl stanja)
Dobar kada nema potrebe za orkestracijom izmjena izmedju okruzenja
Dobar kada su resursi infrastrukture u razilicitim okruzenjima sa svrhom i kada se ne mogu generalizovati (npr: neki resursi se ne koriste u jednom od okruzenja ili u nekom od regiona)
Kako projekat raste, bit ce teze odrzati ova okruzenja u azuriranom stanju. Razmislite o upotrebi infrastruktrurnih modula za zadatke koji se ponavljaju.
Source: https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/large-terraform
Ovaj primjer sadrzi kod koji je primjer organizacije Terrafrom konfiguracije za vece infrastrukture, u primjeru se koriste:
2 AWS racuna
2 regiona
2 odvojena okruzenja (produkcijsko
and testno
). Svako okruzenje je smjesteno unutar posebnog AWS racuna i resursi se prostiru izmedju 2 regije.
Svako okruzenje koristi razlicitu verziju infrastrukturnog modula (alb
) preuzetog sa Terraform Registry-a
Svako okruzenje koristi istu verziju internog modula modules/network
posto je taj modul preuzet iz lokalnog direktorija.
U velikim projektima kao sto je opisano ovdje prednosti koristenja Terragrunta postaju ocigledne. Pogledajte Primjeri organizacije koda sa Terragruntom.
Idealan za projekte gdje je infrastruktura logicki razdvojena (radvojeni AWS racuni)
Dobar kada nema potrebe da mijenjate resurse koji su dijeljeni izmedju AWS racuna (jedno okruzenje = jedan AWS racun = jedan Terraform fajl stanja)
Dobar kada nema potrebe za orkestracijom izmjena izmedju okruzenja
Dobar kada su resursi infrastrukture u razilicitim okruzenjima sa svrhom i kada se ne mogu generalizovati (npr: neki resursi se ne koriste u jednom od okruzenja ili u nekom od regiona)
Kako projekat raste, bit ce teze odrzati ova okruzenja u azuriranom stanju. Razmislite o upotrebi infrastruktrurnih modula za zadatke koji se ponavljaju.
Izvor: https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/small-terraform
Ovaj primjer sadrzi kod koji je primjer organizacije Terrafrom konfiguracije za male infrastrukture bez vanjskih zavisnosti.
Idealan za pocetak i izmjene u hodu
Idealan za male resurs module
Dobar za male i linearne infrastrukturne module (npr: terraform-aws-atlantis)
Dobar za mali broj resursa (manje od 20-30)
Jedan fajl stanja za sve resurse moze uciniti proces rada sa Terrafromom sporim ukoliko broj resursa poraste (razmislite o upotrebi argumenta -target da bi ogranicili broj resursa)