Блог

AWS Landing Zone: разбираемся в концепции вместе с DevOps Сергеем Сухининым

AWS Landing Zone — решение, позволяющее быстро и безопасно разворачивать среду AWS с несколькими учетными записями, основываясь на лучших практиках. В июле DevOps Сергей Сухинин выступил на форуме системных инженеров B.E.E.R, где рассказал о концепции, которая пока не часто применяется DevOps инженерами в Беларуси. Мы поговорили о том, почему решение интересно для изучения и анализа, в чем его эффективность и целесообразность, какие инструменты позволяют развернуть мульти-аккаунтную инфраструктуру в AWS, и как подход Landing Zone применяется в Godel Technologies.

Концепция AWS Landing Zone

Landing Zone — это распространенная (применимая не только к Amazon Web Services) концепция мульти-аккаунтной архитектуры для окружений. Здесь мы рассматриваем базисы локального решения для Amazon Web Services, основанные на best practices, рекомендованных Amazon.

Что такое AWS best practices? Это инженерные решения, основанные на многолетнем опыте Amazon и помогающие оптимизировать работу с сервисами AWS на ваших проектах. Например, лучшие сочетания сервисов, оптимальные настройки, помощь в решении сложных и необычных ситуаций. Best practices помогают анализировать и устранять неполадки. Разумеется, у каждой DevOps команды есть свои лучшие практики, но AWS best practices часто помогают выбрать правильное направление, разобраться в особенностях работы тех или иных сервисов, оптимизировать решения в области безопасности.

Концепция Landing Zone основана на создании отдельных аккаунтов для облачной инфраструктуры, что соответствует требованиям GDPR. При этом создаются изолированные AWS аккаунты (core accounts) для централизованного логгирования и аудита, сервисов безопасности, сетевых сервисов и т. д.

Повышенное внимание при реализации Landing Zone уделяется именно вопросам безопасности и аудита. При этом среды разработки и тестирования максимально изолированы от несогласованного внешнего доступа. Все, что происходит в инфраструктуре, регистрируется, и эти данные хранятся в соответствии с установленными правилами. Сервисы безопасности (security baseline), размещенные в секьюрити-аккаунте, ведут полный контроль за происходящим в инфраструктуре.

AWS Control Tower и Custom-Built Landing Zone

AWS Control Tower — это автоматизированное решение от Amazon, которое позволяет быстро развернуть Landing Zone практически любой сложности. Для этого используется библиотека шаблонов аккаунтов и предустановленные связи между сервисами Amazon. Control Tower — это решение для команд со специальными техническими знаниями, но без глубокой экспертизы в DevOps.

В свою очередь, подход Custom-Built позволяет инженерной группе DevOps проводить очень гибкую настройку всех компонентов Landing Zone. В то же время можно создать свою собственную архитектуру на основе этой концепции и использовать только те сервисы AWS, которые будут необходимы. В этом случае документация Amazon для Landing Zone является своего рода просто инструкцией. Custom

Также можно использовать некоторые модули Terraform, подготовленные Amazon для реализации Landing Zone.

Роль команды DevOps при реализации концепции AWS Landing Zone

Вне зависимости от того, какой подход используется (Control Tower или Custom-Built), вы не сможете сделать это без квалифицированной DevOps команды. В первом случае инженеры DevOps контролируют развертывание инфраструктуры, а затем поддерживают ее. А во втором случае необходима достаточно опытная команда, которая сможет все сделать самостоятельно.

Использование Terraspace при реализации концепции Landing Zone

Terraspace — это высокоуровневый фреймворк Terraform, используемый для оптимизации IaC в архитектуре с мульти-аккаунтным подходом. Он обеспечивает организованную структуру проекта и добавляет некоторые удобные инструменты. Terraspace упрощает работу с Terraform. Это помогает DevOps инженерам быстро настроить безопасную среду AWS с несколькими аккаунтами на основе AWS best parctices.

Вот ключевые особенности Terraspace:

Dry (don’t repeat yourself) — следование принципу DRY — это способ защитить ваш код от дублирования.

Generators — быстрое создание стартовых модулей и стеков.

Multiple Environments — Tfvars и Layering позволяют использовать один и тот же код с разными tfvars для создания нескольких сред.

Deploy multiple stacks — можно развернуть несколько стеков с помощью одной команды.

Secrets Support — позволяет использовать вспомогательные методы для получения секретных данных, таких как пароли от сервисов секретных хранилищ (AWS Secrets Manager).

Terrafile — место, где можно определить дополнительные модули для использования в своем проекте Terraspace.

Configurable CLI — настраиваемые hooks и аргументы интерфейса командной строки позволяют настраивать базовые команды Terraform.

Testing — тестовая программа, представляющая собой сгенерированный проект Terraspace с указанными модулями и стеками.

Использование подхода Landing Zone в Godel Technologies

Landing Zone — это общее название для решений, которые реализуются навсех основных облачных сервисах. Согласно GDPR, этот подход используется на многих проектах Godel.

На мой взгляд, скоро его будут применять даже в небольших проектах. Помимо множества бонусов в направлении безопасности, концепция позволяет удобно работать с окружениями. Все структурировано и понятно. Это очень важно, если к проекту будут привлекаться разные DevOps команды — адаптация не займет много времени, и это очень комфортный подход для инженеров.

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.