Прадстаўляем праграмаваную AWS Landing Zone у модулі Terraform

Ўсім прывітанне! У снежні OTUS запускае новы курс Cloud Solution Architecture. У перадпачатку старту дадзенага курса дзелімся з вамі перакладам цікавага матэрыялу па тэме.

Прадстаўляем праграмаваную AWS Landing Zone у модулі Terraform

AWS Landing Zone – гэтае рашэнне, якое дапамагае кліентам хутка наладзіць бяспечнае асяроддзе AWS з некалькімі ўліковымі запісамі, засноўваючыся на лепшых практыках.

На працягу больш за пяці гадоў існавання наша каманда ў Mitoc Group нястомна працавала над тым, каб дапамагаць буйным арганізацыям паспяхова праводзіць лічбавую трансфармацыю і будаваць ці пераносіць свой лічбавы след у воблака AWS. Іншымі словамі, цытуючы нашых сяброў з AWS: "Нашы кліенты зноўку адкрываюць сябе з AWS". Гэта бясконцыя намаганні па перавынаходстве і спрашчэнні механік ад імя саміх кліентаў, і AWS выдатна спраўляецца з рашэннем складаных праблем з дапамогай простых у засваенні рашэнняў.

Прадстаўляем праграмаваную AWS Landing Zone у модулі Terraform
AWS Landing Zone (крыніца)

Што такое AWS Landing Zone?

Як абвяшчае інфармацыя з афіцыйнай крыніцы:

AWS Landing Zone - гэта рашэнне, якое дапамагае кліентам хутчэй наладжваць бяспечнае асяроддзе AWS з некалькімі ўліковымі запісамі, грунтуючыся на лепшых практыках AWS. Пры вялікай колькасці варыянтаў, настройка асяроддзя з некалькімі ўліковымі запісамі можа заняць значны час, а таксама ўключаць у сябе настройку мноства акаўнтаў і сэрвісаў, і патрабаваць глыбокага разумення працы сэрвісаў AWS.

Рашэнне AWS Landing Zone значна знізіла складанасць і ўзгодненасць аналагічных адзін аднаму шаблонаў праектавання, якія прадастаўляюцца розным кліентам. З іншага боку, нашай камандзе прыйшлося пераналадзіць некаторыя кампаненты CloudFormation у якасці кампанентаў Terraform, каб выкарыстоўваць іх далей для аўтаматызацыі.

Таму мы задаліся пытаннем, чаму б не пабудаваць усё рашэнне AWS Landing Zone у Terraform? Ці можам мы гэта зрабіць і ці вырашыць гэта праблемы нашых кліентаў? Спойлер: вырашыць і ўжо вырашае! 🙂

Калі не варта выкарыстоўваць AWS Landing Zone?

Калі вы маеце справу са звычайнымі хмарнымі сэрвісамі і хмарнымі рэсурсамі ў рамках аднаго або двух уліковых запісаў AWS, гэтыя меры могуць апынуцца залішнімі. Усе, хто да гэтага пункта не адносяцца, могуць працягваць чытанне 🙂

Што трэба ўлічыць перад пачаткам працы?

У многіх буйных арганізацый, з якімі мы працавалі, ужо ёсць нейкая стратэгія выкарыстання хмарных тэхналогій. Кампаніі змагаюцца за паспяховае ўкараненне хмарных сэрвісаў, не маючы дакладнага бачання і сфармуляваных чаканняў. Калі ласка, выдаткуйце час на тое, каб вызначыцца са сваёй стратэгіяй і зразумець як AWS у яе ўпісваецца.

Вызначаючыся са стратэгіяй, паспяховыя кліенты AWS Landing Zone актыўна акцэнтуюць увагу на наступным:

  • Проста аўтаматызацыя - гэта не варыянт. Пераважная натыўная хмарная аўтаматызацыя.
  • Каманды паслядоўна выкарыстоўваюць адны і тыя ж механікі з тым жа наборам інструментаў для падрыхтоўкі хмарных рэсурсаў. Лепш выкарыстоўваць Terraform.
  • Самыя прадуктыўныя карыстачы хмарных сэрвісаў маюць магчымасць ствараць перавыкарыстоўваемыя працэсы і падаваць іх у якасці перавыкарыстоўваных сэрвісаў замест перавыкарыстоўванага кода. Пераважна выкарыстанне бессервернай архітэктуры.

Прадстаўляем модуль Terraform для AWS Landing Zone

Пасля некалькіх месяцаў напружанай працы я з задавальненнем уяўляю вам модуль Terraform для AWS Landing Zone. зыходны код захоўваецца на GitHub, а стабільныя версіі рэлізаў публікуюцца на Terraform Module Registry.

Каб пачаць працу, проста уключыце main.tf у ваш код:

module "landing_zone" {
  source     = "TerraHubCorp/landing-zone/aws"
  version    = "0.0.6"
  root_path  = "${path.module}"
  account_id = "${var.account_id}"
  region     = "${var.region}"
  landing_zone_components = "${var.landing_zone_components}"
}

Заўвага: абавязкова уключыце variables.tf і ўсё, што вам можа спатрэбіцца з outputs.tf.

Каб аблегчыць разуменне, мы дадалі значэння па змаўчанні ў terraform.tfvars:

account_id = "123456789012"
region = "us-east-1"
landing_zone_components = {
  landing_zone_pipeline_s3_bucket = "s3://terraform-aws-landing-zone/mycompany/landing_zone_pipeline_s3_bucket/default.tfvars"
  [...]
}

Гэта азначае, што пры выкарыстанні гэтага модуля terraform вам спатрэбіцца:

  1. Змяніць значэння account_id и region на вашыя ўласныя, якія адпавядаюць дадзеным у AWS Organization;
  2. Змяніць значэння landing_zone_components на тыя, якія адпавядаюць вашаму варыянту выкарыстання AWS Landing Zone;
  3. Змяніць s3://terraform-aws-landing-zone/mycompany на ваш блок S3 і прэфікс ключа S3, дзе вы будзеце захоўваць файлы .tfvars (або абсалютны шлях да файлаў .tfvars у вашым лакальным сховішчы).

Гэты модуль можа мець дзясяткі, сотні ці тысячы разгортваюцца кампанентаў, але не ўсе з іх павінны быць і будуць разгорнутыя. Падчас выканання, кампаненты, якія не з'яўляюцца часткай карты зменных landing_zone_components будуць праігнараваны.

Заключэнне

Мы вельмі рады і ганарымся тым, што дзелімся пладамі нашых намаганняў, якія дапамагаюць кліентам ствараць натыўную хмарную аўтаматызацыю. Модуль Terraform для AWS Landing Zone - гэта яшчэ адно рашэнне, якое дапамагае арганізацыям хутчэй наладзіць бяспечнае асяроддзе AWS з некалькімі ўліковымі запісамі, засноўваючыся на лепшых практыках AWS. Мы добра ведаем, што AWS развіваецца шалёна хутка, і мы імкнемся таксама хутка развіваць рашэнне terraform, якое ахоплівае ўсе асновы, а таксама інтэгруецца з іншымі працоўнымі рашэннямі AWS.

На гэтым усё. Чакаем вашыя каментары і запрашаем на бясплатны вэбінар у рамках якога мы вывучым праектаванне архітэктуры дамена Cloud Landing Zone і разгледзім архітэктурныя шаблоны асноўных даменаў.

Крыніца: habr.com

Дадаць каментар