Как я создал каскадную систему обработки данных на основе AWS (Часть 2)

Каскадная система обработки данных на основе AWS (Часть 2)

Автоматический, масштабируемый и мощный

Фото Mehmet Ali Peker на Unsplash

Ранее я поделился своим опытом разработки конвейера данных с использованием технологии AWS CloudFormation. Однако это не оптимальный подход, поскольку остаются еще 3 проблемы, требующие решения:

  1. Развертывание должно быть осуществлено вручную, что может увеличить вероятность ошибок;
  2. Все ресурсы создаются в одном единственном стеке без должных границ и слоев; по мере развития цикла разработки стек ресурсов становится тяжелее, и его управление становится катастрофой;
  3. Многие ресурсы должны быть сохранены и использованы в других проектах.

Вкратце, мы собираемся увеличить управляемость и повторное использование этого проекта в гибком режиме.

Решение

AWS позволяет пользователям реализовывать 2 типа структурных шаблонов в CloudFormation: перекрестная ссылка (cross-stack reference) и вложенное стекирование (nested stacking). Перекрестная ссылка представляет собой стиль проектирования, при котором облако разрабатывается отдельно и обычно независимо, а ресурсы между всеми стеками могут быть связаны на основе отношений ссылки. Вложенное стекирование означает, что CloudFormation стек состоит из других стеков. Это достигается с помощью ресурса AWS::CloudFormation::Stack.

Вложенный стек в реальной жизни: гнездо, полное гнезд/яиц (Фото Giorgi Iremadze на Unsplash)

Поскольку одна из наших целей – улучшение управления проектом, проект будет разбит на слоевое разделение, и вложенное стекирование поможет в этом. Однако, учитывая внутреннюю взаимосвязь между артефактами существующего стека, нам также понадобится использовать перекрестную ссылку.

Реализация

Мы создали 3 лямбда-функции, 3 таблицы DynamoDB, 1 роль IAM вместе с прикрепленными политиками, несколько очередей SQS и несколько тревог Cloudwatch. Из-за сложности самих функций, в этой версии они будут определены в отдельных шаблонах, в которых используются только собственные сервисы, включая тревоги и очереди с мертвыми письмами. Кроме того, ресурсы IAM будут…