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

Всім привіт! У грудні OTUS запускає новий курс Cloud Solution Architecture. Напередодні старту даного курсу ділимося з вами перекладом цікавого матеріалу на тему.

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

Зона посадки AWS – це рішення, яке допомагає клієнтам швидко налаштувати безпечне середовище 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

Додати коментар або відгук