Представяме програмируемата AWS Landing Zone в Terraform модул

Здравейте на всички! През декември OTUS стартира нов курс — Облачен архитектурен дизайн. В навечерието на старта на този курс споделяме с вас превод на интересен материал по темата.

Представяме програмируемата 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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster