Всем привет! В декабре OTUS запускает новый курс — Cloud Solution Architecture. В преддверии старта данного курса делимся с вами переводом интересного материала по теме.
AWS Landing Zone – это решение, которое помогает клиентам быстро настроить безопасную среду AWS с несколькими учетными записями, основываясь на лучших практиках.
В течение более чем пяти лет существования наша команда в Mitoc Group неустанно работала над тем, чтобы помогать крупным организациям успешно проводить цифровую трансформацию и строить или переносить свой цифровой след в облако AWS. Другими словами, цитируя наших друзей из AWS: «Наши клиенты заново открывают себя с AWS». Это бесконечные усилия по переизобретению и упрощению механик от имени самих клиентов, и AWS отлично справляется с решением сложных проблем с помощью простых в усвоении решений.
AWS Landing Zone (источник)
Как гласит информация из официального источника:
AWS Landing Zone – это решение, которое помогает клиентам быстрее настраивать безопасную среду AWS с несколькими учетными записями, основываясь на лучших практиках AWS. При большом количестве вариантов, настройка среды с несколькими учетными записями может занять значительное время, а также включать в себя настройку множества аккаунтов и сервисов, и требовать глубокого понимания работы сервисов AWS.
Решение AWS Landing Zone значительно снизило сложность и согласованность аналогичных друг другу шаблонов проектирования, которые предоставляются различным клиентам. С другой стороны, нашей команде пришлось перенастроить некоторые компоненты CloudFormation в качестве компонентов Terraform, чтобы использовать их дальше для автоматизации.
Поэтому мы задались вопросом, почему бы не построить всё решение AWS Landing Zone в Terraform? Можем ли мы это сделать и решит ли это проблемы наших клиентов? Спойлер: решит и уже решает! :)
Если вы имеете дело с обычными облачными сервисами и облачными ресурсами в рамках одной или двух учетных записей AWS, эти меры могут оказаться излишними. Все, кто к этому пункту не относятся, могут продолжать чтение :)
У многих крупных организаций, с которыми мы работали, уже есть какая-то стратегия использования облачных технологий. Компании борются за успешное внедрение облачных сервисов, не имея четкого видения и сформулированных ожиданий. Пожалуйста, потратьте время на то, чтобы определиться со своей стратегией и понять как AWS в нее вписывается.
Определяясь со стратегией, успешные клиенты AWS Landing Zone активно акцентируют внимание на следующем:
После нескольких месяцев напряженной работы я с удовольствием представляю вам модуль Terraform для AWS Landing Zone. Исходный код хранится на GitHub, а стабильные версии релизов публикуются на Terraform Module Registry.
Чтобы начать работу, просто включите
Примечание: обязательно включите
Чтобы облегчить понимание, мы добавили значения по умолчанию в
Это означает, что при использовании этого модуля
Этот модуль может иметь десятки, сотни или тысячи развертываемых компонентов, но не все из них должны быть и будут развернуты. Во время выполнения, компоненты, которые не являются частью карты переменных
Мы очень рады и горды тем, что делимся плодами наших усилий, которые помогают клиентам создавать нативную облачную автоматизацию. Модуль Terraform для AWS Landing Zone – это еще одно решение, которое помогает организациям быстрее настроить безопасную среду AWS с несколькими учетными записями, основываясь на лучших практиках AWS. Мы хорошо знаем, что AWS развивается безумно быстро, и мы стремимся также быстро развивать решение terraform, которое охватывает все основы, а также интегрируется с другими рабочими решениями AWS.
На этом все. Ждем ваши комментарии и приглашаем на бесплатный вебинар в рамках которого мы изучим проектирование архитектуры домена Cloud Landing Zone и рассмотрим архитектурные шаблоны основных доменов.
AWS Landing Zone – это решение, которое помогает клиентам быстро настроить безопасную среду AWS с несколькими учетными записями, основываясь на лучших практиках.
В течение более чем пяти лет существования наша команда в Mitoc Group неустанно работала над тем, чтобы помогать крупным организациям успешно проводить цифровую трансформацию и строить или переносить свой цифровой след в облако AWS. Другими словами, цитируя наших друзей из AWS: «Наши клиенты заново открывают себя с AWS». Это бесконечные усилия по переизобретению и упрощению механик от имени самих клиентов, и AWS отлично справляется с решением сложных проблем с помощью простых в усвоении решений.
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
вам потребуется:- Изменить значения
account_id
иregion
на ваши собственные, которые соответствуют данным в AWS Organization; - Изменить значения
landing_zone_components
на те, которые соответствуют вашему варианту использования AWS Landing Zone; - Изменить
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 и рассмотрим архитектурные шаблоны основных доменов.
Комментарии (2)
Stas911
09.12.2019 17:58Для небольших и не сильно кастомизированных сетапов имеет смысл сразу использовать сервис Control Tower. Это намного проще и быстрее.
r00mka
Полез посмотреть код модуля на terraform, потому как Cloud Landing Zone — тема интересная и полезная для multi-account сетапа. Но Terraform кода я там и не нашел, модуль использует в основном абстракцию terrahub в формате yaml. Напоминает гибрид бульдога с носорогом.
Модуль по сути делает только local-exec, который запускает node, который запускает terrahub, который генерирует чистый terraform код и запускает terraform, ну вы поняли…
ИМХО то еще извращение. Yaml terrahub-а нагнетает тоску, т.к. очень напоминает Cloudformation.
Почему не создать модуль на чистом terraform?