Буйная інфраструктура з Terraform
Крыніца: https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/large-terraform
Гэты прыклад змяшчае код у якасці прыкладу структуравання канфігурацый Terraform для буйной інфраструктуры, якая выкарыстоўвае:
2 уліковыя запісы AWS
2 рэгіёны
2 асобныя асяроддзі (
prodіstageякія нічога не падзяляюць). Кожнае асяроддзе знаходзіцца ў асобным акаўнце AWS і ахоплівае рэсурсы паміж 2 рэгіёнаміКожнае асяроддзе выкарыстоўвае розную версію гатовага інфраструктурнага модуля (
alb) з Terraform RegistryКожнае асяроддзе выкарыстоўвае аднолькавую версію ўнутранага модуля
modules/networkпаколькі ён узяты з лакальнага каталога.
У такім вялікім праекце, як апісаны тут, перавагі выкарыстання Terragrunt становяцца вельмі відавочнымі. Глядзіце прыклады структур кода з Terragrunt.
Ідэальна падыходзіць для праектаў, дзе інфраструктура лагічна падзелена (асобныя ўліковыя запісы AWS)
Добра, калі няма неабходнасці мадыфікаваць рэсурсы, якія падзяляюцца паміж уліковымі запісамі AWS (адна асяроддзе = адзін уліковы запіс AWS = адзін файл стану)
Добра, калі няма неабходнасці ў аркестрацыі змен паміж асяроддзямі
Добра, калі рэсурсы інфраструктуры ў кожным асяроддзі наўмысна адрозніваюцца і не могуць быць абагуленымі (напрыклад, некаторыя рэсурсы адсутнічаюць у адным асяроддзі або ў некаторых рэгіёнах)
З ростам памераў праекта будзе ўсё цяжэй падтрымліваць гэтыя асяроддзі ў адзінстве. Разгледзьце магчымасць выкарыстання інфраструктурных модуляў (гатовых або ўнутраных) для паўтаральных задач.
Last updated