Идея и рекомендации по сквозному решению AWS

#amazon-web-services #amazon-s3 #aws-lambda #amazon-redshift #amazon-cloudwatch

#amazon-веб-сервисы #amazon-s3 #aws-lambda #amazon-redshift #amazon-cloudwatch

Вопрос:

Я хочу создать сквозную автоматизированную систему, которая состоит из следующих шагов:

  • Получение данных из источника в целевую корзину AWS S3 с помощью AWS Lambda
  • Запуск некоторого задания преобразования с использованием AWS Lambda и сохранение в обработанном пакете AWS S3
  • Запуск команды копирования Redshift с использованием AWS Lambda для отправки преобразованных / обработанных данных из AWS S3 в AWS Redshift

Из приведенных выше пунктов я завершил извлечение данных, преобразование данных и выполнение команды копирования вручную из Redshift с помощью инструмента SQL-запросов.

Сомнения:

  • Я слышал, что AWS CloudWatch можно использовать для планирования / автоматизации, но никогда не работал над этим. Итак, если я хочу выполнить описанные выше шаги упрощенным способом, как это сделать?
  • Должен ли я использовать Lambda для запуска инструкций copy и insert? Или есть более эффективные сервисы AWS для выполнения того же самого?
  • Любые другие предложения по другим сервисам AWS и подобные им приветствуются.

Ограничение: требуется, чтобы как можно больше задач не выполнялось без сервера (за исключением семантического уровня, Redshift).

Ответ №1:

CloudWatch:

Здесь вы можете использовать сигналы тревоги CloudWatch или события.

С помощью аварийных сигналов вы можете реагировать на любые показатели вашей системы (например, загрузка процессора, количество операций ввода-вывода на диске, количество вызовов Lambda и т. Д.), Когда они превышают некоторый порог, И при срабатывании этого аварийного сигнала Вызывать функцию lambda (или отправлять уведомления SNS и т. Д.) Для выполнения задачи.

С помощью событий вы можете использовать либо выражение cron, либо какое-либо событие службы AWS (например, изменение состояния экземпляра EC2, уведомление SNS и т. Д.), Чтобы затем запустить другую службу (например, Lambda), чтобы вы могли, например, запустить какую-то операцию очистки через lambda по регулярному расписанию или создать снимок том EBS, когда его экземпляр выключен.

Сам по себе Lambda является очень мощным инструментом и должен позволить вам запрограммировать достойную функцию копирования / вставки на языке, с которым вы знакомы. В AWS есть несколько репозиториев GitHub с множеством примеров, см., Например, Примеры без сервера и множество примеров. Могут быть и другие сервисы, которые могут подойти вам в вашем конкретном случае, но часть преимуществ Lambda заключается в ее гибкости.