👨🔧 разобрался с Terraform
спустя пару лет после моего первого знакомства с infrastructure-as-a-code наконец-то достался проект где можно попрактиковаться.
⌘⌘⌘
в Кларне всё на AWS, для управления архитектурой используют CloudFormation или Terraform; у нас в команде — последний.
почему вообще дата инженер занимается инфрой? в команде образовалось провал по компетенциям: есть несколько разрабов, пара аналитиков и менеджер, а вот деплоить инфру, получается, некому; сейчас приходиться закрывать техлиду на сдачу от других дел. Вызвался помочь с этим, потому что самому было интересно как это всё работает
⌘⌘⌘
за один проект удалось покопаться в разных инструментах AWS-стэка (+ DataDog для мониторинга):
- S3 — тут и сам ТФ хранит свои стейты, Афина хранит результаты запросов, а ещё там будут лежать файлы для Glue таблиц
- Glue — тут храниться мета-информация для баз и таблиц (данные которых лежат на S3)
- Lake Formation — новая тема от AWS для раздачи прав и полномочий на доступы к базам и таблицам
- Lambda функции — тут реализована логика по прекладыванию данных (плюс задаётся отдельная роль)
- CloudWatch — набор правил для запуска Лямбы с нужными параметрами
- DataDog — метрики, мониторы с алертами и дешы для мониторинга
- Secrets Ьanager — тут хранятся ключи для доступа к DadaDog
⌘⌘⌘
в результате получается такая логика:
1. готовим s3-бакеты (сразу с нужными тэгами для правильной аллокации костов)
2. в Glue создаём таблицы над бакетами — причём часть таблиц пошарена с другого аккаунта
3. через LakeFormation создаём нужные доступы, в том числе для кросс-акаунт и кросс-регион
4. Python-код для Лямбды пакуется, форматируется, валидируется и отправляет в облако как новый Layer
5. CloudWatch правило триггерит Лямбду с нужным набором параметров и та переваривает очередной кусок данных
6. на выходе у Лямбды данные и набор метрик, отправленных в DataDog
7. по этим метрикам настроены мониторы и алерты в нужный Слак-канал
Post #354
954