Amazon DOP-C02: Событийно-ориентированные архитектуры и автоматизация — Руководство по подготовке

Часть AWS DevOps Engineer Professional DOP-C02 — Руководство по подготовке. Практикуйтесь с проверенными ответами в центре экзаменов Amazon, или пройдите тесты на время на ExamRoll.io.

Обзор

Событийно-ориентированные архитектуры разделяют производителей и потребителей, делают акцент на асинхронном взаимодействии и обеспечивают устойчивость систем к всплескам нагрузки и сбоям. Ключевые принципы — это слабая связность через события/сообщения, масштабирование на основе потребителей, идемпотентные обработчики, а также явная обработка сбоев и наблюдаемость. AWS предоставляет строительные блоки для создания надежных очередей, систем pub/sub, шин событий, потоковой обработки, оркестрации и операционной автоматизации. Глубокое понимание взаимодействия между Amazon SQS, Amazon SNS, Amazon EventBridge, AWS Step Functions, сопоставлений источников событий Lambda, AWS Systems Manager Automation и OpsCenter, а также Kinesis Data Streams и Firehose, позволяет создавать масштабируемые, отказоустойчивые и аудируемые средства автоматизации и конвейеры данных.

Обмен сообщениями и прием данных: SQS, SNS, Kinesis и Firehose

Amazon SQS предоставляет надежные, масштабируемые очереди для разделения компонентов. Стандартные очереди предлагают доставку “как минимум один раз” (at-least-once) и негарантированный порядок (best-effort ordering) с практически неограниченной пропускной способностью; они подходят для параллельных обработчиков, которые могут справляться с дублирующимися и неупорядоченными сообщениями с помощью ключей идемпотентности и условных записей. Очереди FIFO обеспечивают упорядоченную доставку в рамках группы сообщений и семантику обработки “ровно один раз” (exactly-once) с дедупликацией (в пределах пятиминутного окна). Они гарантируют порядок и однократную обработку, но в ущерб абсолютной пропускной способности: используйте несколько групп сообщений для распараллеливания в рамках FIFO или включите режим FIFO с высокой пропускной способностью для обработки тысяч сообщений в секунду. Настраивайте тайм-аут видимости для очереди или для отдельного сообщения так, чтобы он превышал максимальное время обработки; при использовании Lambda в качестве потребителей установите тайм-аут видимости как минимум в шесть раз больше тайм-аута вашей функции, чтобы разрешить повторные попытки до того, как сообщение снова станет видимым. Используйте длинные опросы (long polling), чтобы сократить количество пустых получений. Очереди недоставленных сообщений (DLQ) собирают “отравленные” сообщения, когда сообщение превышает maxReceiveCount; позже можно выполнить повторную отправку (redrive) из DLQ в исходную очередь для повторной обработки с исправлениями. Отслеживайте ApproximateAgeOfOldestMessage для обнаружения накопления сообщений и для управления изменениями параллелизма/автомасштабирования.

Amazon SNS предоставляет управляемую, высокопроизводительную систему “издатель-подписчик” (pub/sub). Издатели отправляют сообщение в топик один раз; SNS рассылает его по нескольким подпискам (SQS, Lambda, HTTP/S, email, мобильные устройства). Политики фильтрации подписок используют атрибуты сообщений для маршрутизации только релевантных уведомлений каждому подписчику, что снижает затраты и нагрузку на последующие компоненты; можно задавать предикаты, такие как точное совпадение, префикс, числовые диапазоны, “все кроме” (anything-but) и проверка существования (exists). Используйте SNS для веерной рассылки (fan-out), несвязанных уведомлений и мобильных push-уведомлений. Включите повторные попытки и рассмотрите возможность использования DLQ для каждой подписки для обработки неудачных доставок. Для задач, требующих упорядоченной веерной рассылки, топики SNS FIFO с подписками в виде очередей SQS FIFO обеспечивают порядок и дедупликацию.

Kinesis Data Streams предоставляет упорядоченные потоки с низкой задержкой и параллелизмом на уровне шардов для аналитики в реальном времени и обработки событий. Производители записывают записи с ключами секционирования в шарды; потребители (Lambda, KCL, потребители Enhanced Fan-Out, Kinesis Data Analytics) читают данные в порядке поступления для каждого шарда, используя контрольные точки (checkpointing). Используйте емкость по требованию (on-demand) для непредсказуемой нагрузки или выделенные шарды с возможностью их перераспределения (resharding) для предсказуемой пропускной способности. Настраивайте ключи секционирования для балансировки нагрузки на “горячие” шарды и отслеживайте IteratorAge для выявления отставания потребителей. Режим Enhanced Fan-Out предлагает выделенную пропускную способность 2 МБ/с на каждый поток потребителя с push-доставкой с низкой задержкой по HTTP/2.

Kinesis Data Firehose — это полностью управляемый сервис доставки для приема данных почти в реальном времени в S3, Amazon OpenSearch Service, Splunk или на HTTP-эндпоинты, с опциональным преобразованием через Lambda, буферизацией (по размеру/времени), сжатием и шифрованием. Источниками данных могут быть прямые вызовы PutRecord/PutRecordBatch, Kinesis Data Streams или подписки CloudWatch Logs/Events. Используйте Firehose, когда вам нужна управляемая доставка с преобразованием и пакетированием, и вы не хотите создавать и эксплуатировать код потребителя. Динамическое секционирование позволяет маршрутизировать записи в префиксы S3 по ключам для эффективной последующей обработки.

Маршрутизация, оркестрация и планирование: EventBridge и Step Functions

Amazon EventBridge — это центральная шина событий для маршрутизации, управления и межаккаунтной интеграции, а также интеграции между доменами событий. Используйте шину по умолчанию для событий от сервисов AWS, пользовательские шины для сегментации доменов и применения разрешений, а партнерские шины — для интеграции с SaaS. Правила сопоставляют события с помощью шаблонов на основе содержимого и направляют их в более чем 200 сервисов AWS. Используйте преобразователи входных данных для формирования полезной нагрузки, а также архивацию/повторную обработку для повторной обработки исторических событий при восстановлении или подключении новых потребителей. Политики ресурсов позволяют маршрутизировать события между аккаунтами для консолидации управления в аккаунте платформы. EventBridge Pipes предоставляют настраиваемые потоки «точка-точка» от источников событий (SQS, Kinesis, DynamoDB Streams, самоуправляемый Apache Kafka на Amazon MSK и др.) к целям со встроенной фильтрацией, пакетированием, преобразованием и обогащением через Lambda или Step Functions — идеальное решение, когда вы не хотите управлять полноценным приложением-потребителем, а нуждаетесь в легковесном посредничестве. EventBridge Scheduler предоставляет однократные и cron-расписания для вызова целей с ролью выполнения, поддержкой часовых поясов и опциональными гибкими временными окнами для уменьшения «эффекта несущегося стада».

AWS Step Functions оркеструет распределенные рабочие процессы, определенные на языке Amazon States Language, с состояниями Task, Choice, Parallel, Map (включая распределенный Map), Wait, Pass, Succeed/Fail и надежными шаблонами Retry/Catch. Глубокая интеграция с сервисами устраняет необходимость в связующем коде для вызова AWS API, включая синхронные (.sync) и callback-шаблоны с токенами задач. Выбирайте стандартные рабочие процессы (Standard Workflows) для долго выполняющихся рабочих процессов с интенсивным аудитом, с семантикой перехода между состояниями «ровно один раз», длительностью до одного года и оплатой за каждый переход между состояниями; история выполнения сохраняется, обеспечивая высокую наглядность и встроенные трассировки X-Ray. Выбирайте экспресс-рабочие процессы (Express Workflows) для высокопроизводительных, короткоживущих оркестраций (от секунд до минут), где для достижения массового масштаба можно пойти на оплату за запрос + длительность и семантику выполнения «как минимум один раз»; используйте их для обогащения данных при потоковом приеме, маршрутизаторов событий и микро-оркестраций, где вы можете сделать задачи идемпотентными. Применяйте такие шаблоны, как «сага» с компенсирующими задачами и централизованная обработка ошибок; выносите повторные попытки/тайм-ауты в конечный автомат, чтобы упростить код задач.

Триггеры вычислений и противодавление: сопоставления источников событий Lambda

Сопоставления источников событий Lambda (ESM) соединяют источники, работающие по модели опроса (pull-based), с Lambda и управляют параллелизмом, пакетированием и обработкой ошибок.

Фильтрация событий в ESM сокращает количество вызовов, отбрасывая нерелевантные события на уровне опрашивающего компонента (poller). Используйте агрегацию по «падающим» окнам (tumbling window) в потоках с помощью Lambda для агрегирования записей за определенный период времени в рамках шаблонов обработки мини-пакетов.

Автоматизация операций и устранение неполадок: Systems Manager Automation и OpsCenter

AWS Systems Manager Automation предоставляет сборники сценариев (runbooks) — документы типа Automation, написанные на JSON/YAML, — с такими шагами, как aws:runCommand, aws:executeScript, aws:invokeLambda, aws:approve, aws:createStack и aws:executeAutomation. Автоматизации принимают параметры, генерируют выходные данные, поддерживают версионирование с историей изменений и выполняются с выделенной ролью AutomationAssumeRole для реализации принципа наименьших привилегий и выполнения операций в разных аккаунтах и регионах (Region). Контролируйте параллелизм и пороговые значения ошибок для всего парка ресурсов, требуйте подтверждений и соблюдения окон Change Calendar, а также интегрируйтесь с уведомлениями через SNS. Запускайте автоматизации по расписанию, с помощью правил EventBridge (для устранения неполадок в режиме, близком к реальному времени, на основе событий AWS Health, CloudWatch или API), из исправлений AWS Config для принудительного применения политик (например, для применения тегов по умолчанию к томам EBS или для подключения профиля инстанса по умолчанию к инстансам EC2), а также из OpsCenter.

OpsCenter агрегирует операционные проблемы в элементы OpsItems из оповещений CloudWatch, AWS Config, событий Health или пользовательских источников. Каждый OpsItem отслеживает статус, приоритет, дедупликацию, связанные ресурсы и ссылки на сборники сценариев (runbooks). Связывайте сборники сценариев (runbooks) для стандартных исправлений, запускаемые в один клик, и включайте автоматическое устранение неполадок, настраивая правила EventBridge или Config на запуск определенной автоматизации при создании или обновлении OpsItem до соответствующего условия (например, группа безопасности, разрешающая доступ по SSH с 0.0.0.0/0, несоответствие требованиям по установке исправлений или сбои резервного копирования). Используйте Systems Manager Explorer для визуализации состояния парка ресурсов и открытых OpsItems в разных аккаунтах и регионах. Эта пара — OpsItems в качестве постоянных записей и сборники сценариев Automation (runbooks) в качестве кодифицированных исправлений — обеспечивает аудируемые и согласованные операции в любом масштабе.

Рекомендации по проектированию и эксплуатации

Проектируйте с учётом идемпотентности для всех потребителей, поскольку доставка «по меньшей мере один раз» (at-least-once) является обычным явлением. Для параллельных реакций с низкой задержкой отдавайте предпочтение веерной рассылке на основе событий через SNS или правила EventBridge; для буферизации рабочих нагрузок и защиты производителей от медлительности потребителей используйте SQS; для аналитики, требующей строгого порядка в пределах шарда и повторно воспроизводимых потоков, выбирайте Kinesis. Используйте EventBridge Pipes для легковесной управляемой интеграции между источниками и целями, когда кастомный потребитель избыточен, и EventBridge Scheduler для триггеров на основе времени без необходимости поддерживать инфраструктуру cron.

Правильно подбирайте таймауты и количество повторных попыток. Для SQS таймаут видимости должен превышать максимальное время обработки с учётом повторов; для потоков ограничьте количество повторов и установите

undefined

, чтобы избежать бесконечного воспроизведения некорректных записей. Систематически используйте DLQ или назначения для сбоев (on-failure destinations) и добавляйте дашборды и оповещения для метрик SQS

undefined

, Lambda

undefined

/

undefined

/

undefined

,

undefined

, Step Functions

undefined

/

undefined

и EventBridge

undefined

. Когда пиковый трафик неизбежен, а SLA по задержке строгие, используйте Lambda provisioned concurrency для предварительного «прогрева» мощностей. Для управления (governance) предпочтительнее использовать EventBridge с ресурсными политиками для межаккаунтной маршрутизации и функцией архивации/воспроизведения для поддержки эволюции потребителей и восстановления после инцидентов.

Практический сценарий

Shopify необходимо модернизировать обработку заказов для событий флеш-распродаж, добавив аналитику в реальном времени и автоматизированное устранение неполадок при замедлении или сбое зависимых сервисов.

  1. Приём и веерная рассылка событий заказов

undefined

из процесса оформления заказа, что гарантирует упорядоченные уведомления без дубликатов для каждого

undefined

. Подписки включают:

undefined

) для выполнения заказа с сохранением последовательности.

undefined

) для управления и дополнительной маршрутизации.

  1. Буферизация и обработка выполнения заказов

undefined

; рабочий процесс повторной отправки (redrive) позже обрабатывает исправленные сообщения. Почему SQS FIFO + Lambda ESM: Обеспечивает последовательность обработки для каждого заказа, изолирует замедление зависимых сервисов с помощью буферизации и предоставляет детальную обработку ошибок.

  1. Оркестрация многошаговой саги
  1. Маршрутизация доменных событий к функциональным возможностям

undefined

получает события

undefined

через

undefined

от сервисов-производителей и из подписки SNS. Правила EventBridge:

undefined

для уведомления отдела маркетинга (Lambda) и создания обращения в поддержку (интеграция с AWS Support API) при заказе от ценных клиентов.

undefined

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

  1. Перенаправление потока данных от партнёра для обогащения
  1. Аналитика и поиск в реальном времени
  1. Автоматизация на основе времени

undefined

в

undefined

, запуская рабочий процесс Step Functions Express, который собирает срезы данных по складам для обеспечения точности информации о запасах в режиме, близком к реальному времени. Почему Scheduler: Нативный, отказоустойчивый cron без необходимости поддерживать собственную инфраструктуру.

  1. Автоматизированное устранение неполадок и операции

undefined

и Lambda

undefined

создают OpsItems в OpsCenter; связанные с ними runbook’и масштабируют provisioned concurrency для определённых функций Lambda, увеличивают зарезервированную ёмкость Step Functions или временно расширяют окна обработки пакетов. Правило EventBridge для событий AWS Health о техническом обслуживании EC2 запускает документ SSM Automation для корректного перезапуска затронутых инстансов во время окон обслуживания. Почему OpsCenter + Automation: Централизованное, аудируемое отслеживание проблем с возможностью исправления в один клик или автоматически, с минимальными привилегиями, которое безопасно выполняется в разных аккаунтах и регионах.

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


Высокая доступность · Все домены · Хранилища

Отработать эти вопросы → · Тесты на время на ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Сдайте экзамен →

Просмотреть Amazon →

Related guides

Все включено

Одна подписка. Каждый экзамен.

Каждый план открывает неограниченный поиск ответов, практические тесты, объяснения AI и полную библиотеку ресурсов — на более чем 20 языках.

Ежемесячно
24.87
Just €0.83/day
Все включено:
  • Неограниченный поиск ответов
  • Неограниченные практические тесты
  • Объяснения на основе AI
  • Полная библиотека ресурсов
  • 20+ языков
  • Еженедельные обновления контента
  • Награды и рефералы
  • Приоритетная поддержка
Начать бесплатную пробную версию

Кредитная карта не требуется*

Лучшая цена
12 месяцев
179.87
Just €0.49/daySave 40%
Все включено:
  • Неограниченный поиск ответов
  • Неограниченные практические тесты
  • Объяснения на основе AI
  • Полная библиотека ресурсов
  • 20+ языков
  • Еженедельные обновления контента
  • Награды и рефералы
  • Приоритетная поддержка
Начать бесплатную пробную версию

Кредитная карта не требуется*

✓ Включен бесплатный план · ✓ Отмена в любое время · ✓ Все планы открывают полный продукт