Открыть сервис

Amazon CloudWatch Events

Amazon CloudWatch Events — это сервис, входящий в состав платформы Amazon Web Services (AWS), предназначенный для мониторинга и автоматизации реакции на изменения состояния ресурсов AWS и приложений, работающих в облачной среде. Сервис позволяет отслеживать поток событий (event stream) в реальном времени и на основе заданных правил (rules) инициировать выполнение целевых действий (targets), таких как запуск функций AWS Lambda, отправка уведомлений через Amazon Simple Notification Service (SNS), активация конвейеров AWS CodePipeline или вызов других сервисов AWS. CloudWatch Events обеспечивает декомпозицию архитектуры, позволяя строить событийно-ориентированные (event-driven) системы без необходимости написания кода для опроса и интеграции.

История и развитие

Сервис Amazon CloudWatch Events был анонсирован компанией Amazon Web Services в ноябре 2015 года на конференции re:Invent. Первоначально он предоставлял базовые возможности мониторинга изменений состояния ресурсов AWS и запуска автоматических действий. В 2016 году была добавлена поддержка планировщика (schedule-based rules), что позволило запускать целевые действия по расписанию в формате cron или с заданным интервалом.

В 2019 году Amazon представил Amazon EventBridge — эволюционное развитие CloudWatch Events. EventBridge расширил функциональность за счёт поддержки событий от сторонних SaaS-провайдеров (например, Datadog, Zendesk, PagerDuty) и собственных приложений пользователя через пользовательские шины событий (custom event buses). Несмотря на появление EventBridge, CloudWatch Events продолжает существовать как часть платформы, и многие его API и концепции остаются совместимыми с EventBridge. На момент 2024 года CloudWatch Events считается унаследованным сервисом, но по-прежнему поддерживается и используется в существующих архитектурах.

Ключевые концепции

Событие (Event)

Событие — это запись об изменении состояния ресурса или действии, произошедшем в среде AWS. Каждое событие содержит структурированные данные в формате JSON, включающие:

Правило (Rule)

Правило определяет, какие события должны быть обработаны и какие действия при этом выполняются. Правило состоит из:

Цель (Target)

Цель — это конечная точка, куда CloudWatch Events направляет событие. Поддерживаемые цели включают:

Шина событий (Event Bus)

Шина событий — это логический канал, через который передаются события. По умолчанию каждому аккаунту AWS назначается шина событий по умолчанию (default event bus), которая принимает события от сервисов AWS. В EventBridge можно создавать дополнительные шины для изоляции потоков событий.

Применение

Автоматизация реагирования на инциденты

CloudWatch Events позволяет автоматически выполнять действия при изменении состояния ресурсов. Например, при остановке инстанса EC2 (событие EC2 Instance State-change Notification) можно запустить Lambda-функцию, которая проверяет, не является ли остановка преднамеренной, и при необходимости перезапускает инстанс.

Планирование задач

Используя правила с расписанием, можно выполнять периодические операции: резервное копирование баз данных, ротация логов, очистка временных файлов, отправка отчётов по электронной почте. Формат cron позволяет задавать сложные расписания (например, «каждый первый понедельник месяца в 3:00»).

Мониторинг и оповещение

События от сервисов AWS (например, превышение порога загрузки CPU в CloudWatch Alarm) могут быть направлены в SNS для отправки уведомлений администраторам через email, SMS или интеграцию с системами управления инцидентами (PagerDuty, Opsgenie).

Интеграция с CI/CD

При завершении сборки в AWS CodeBuild или изменении состояния конвейера CodePipeline CloudWatch Events может запускать последующие этапы развёртывания или отправлять уведомления команде разработчиков.

Ограничения и особенности

Сравнение с Amazon EventBridge

Amazon EventBridge является преемником CloudWatch Events и предоставляет расширенные возможности:

Несмотря на это, CloudWatch Events остаётся функциональным для простых сценариев мониторинга и автоматизации, особенно в унаследованных системах.

Пример использования

Допустим, требуется автоматически создавать резервную копию бакета Amazon S3 при каждом добавлении нового объекта. Для этого создаётся правило CloudWatch Events с шаблоном события, фильтрующим события типа S3 Object Created для конкретного бакета. Целью указывается Lambda-функция, которая копирует объект в другой бакет и записывает лог в CloudWatch Logs. При каждом добавлении объекта правило срабатывает, и функция выполняется без участия оператора.

Источники

  1. Amazon Web Services. Amazon CloudWatch Events User Guide. Документация AWS, версия 2024.
  2. Amazon Web Services. Amazon EventBridge User Guide. Документация AWS, версия 2024.
  3. AWS re:Invent 2015. Announcing Amazon CloudWatch Events. Видеозапись и пресс-релиз.
  4. AWS re:Invent 2019. Introducing Amazon EventBridge. Видеозапись и пресс-релиз.
  5. AWS Whitepaper. Event-Driven Architectures on AWS. 2023.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →