Відокремлення сервісів за допомогою AWS Messaging Services

Розроблення застосунків на AWS

Ricardo Sueiras

Principal Technologist

Основи Amazon SQS

 

огляд sqs

  • Обробляє сплески трафіку незалежно від продюсерів.
  • Керована черга повідомлень для асинхронної взаємодії.
  • Продюсери надсилають повідомлення в чергу.
  • Споживачі отримують повідомлення з черги.
  • Повідомлення зберігаються, доки їх не забере споживач.
  • Зберігання: 4 дні за замовчуванням, максимум 14.
  • Споживачі опитують чергу й обробляють у власному темпі.
Розроблення застосунків на AWS

Видимість повідомлень

  • Повідомлення стає невидимим після читання споживачем.
  • Час видимості визначає, як довго воно приховане.
  • Якщо обробка не вдалася і повідомлення не видалено:
    • Воно знову стає видимим.
    • Його можна обробити повторно.
  • Час видимості: 30 секунд за замовчуванням.
  • Максимальний час видимості — 12 годин.

 

видимість повідомлень

Розроблення застосунків на AWS

Розмір повідомлення

 

розмір зображення

  • Повідомлення можуть мати розмір до 256KB.
  • Бібліотека SQS Extended Client дає змогу більші повідомлення.
  • Зберігає великий вміст в Amazon S3.
  • Надсилає вмісту вказівник на S3 у корисному навантаженні.
Розроблення застосунків на AWS

Коротке опитування

  • Стратегія опитування впливає на вартість і ефективність.
  • Коротке опитування — за замовчуванням.
  • Опитує підмножину серверів SQS, повертає відповідь одразу.
  • Може бути порожньою, навіть коли є повідомлення.
  • Призводить до більшої кількості викликів API і вищої вартості.

 

опитування

Розроблення застосунків на AWS

Довге опитування

  • Довге опитування опитує всі сервери SQS.
  • Чекає до 20 секунд на повідомлення.
  • Усуває зайві порожні відповіді.
  • Зменшує кількість викликів API і вартість.

 

опитування

Розроблення застосунків на AWS

Стандартні черги

  • SQS має два типи черг.
  • Стандартні черги:
    • Доставлення принаймні один раз.
    • Найкраще можливе впорядкування.
    • Майже необмежена пропускна здатність.

 

типи черг

Розроблення застосунків на AWS

Черги FIFO

 

типи черг

  • Черги FIFO:
    • Обробка рівно один раз.
    • Строге впорядкування повідомлень.
    • Вбудоване видалення дублікатів.
  • Типово 300 TPS.
    • Збільшіть до 3 000 з пакетуванням або більше в режимі високої пропускної здатності.
  • Обирайте тип черги за сценарієм:
    • Standard для масштабу й пропускної здатності.
    • FIFO для порядку та дедуплікації.
Розроблення застосунків на AWS

Обробка «отруйних» повідомлень

 

dlq

  • Черги «мертвих» листів (DLQ) зберігають повідомлення з помилками обробки.
  • Повідомлення переходить у DLQ, коли перевищено maxReceiveCount.
  • Це запобігає безкінечним повторним спробам «отруйного» повідомлення.
  • DLQ має бути того ж типу, що й вихідна черга.
  • Перемістіть повідомлення назад у вихідну чергу для повторної обробки.
Розроблення застосунків на AWS

Захист черг

 

захист SQS

  • Шифрує під час передавання через HTTPS за замовчуванням.
  • Шифрування на стороні сервера в стані спокою через AWS KMS.
  • Шифруйте вміст на клієнті за допомогою AWS Encryption SDK.
  • Політики IAM керують доступом до черг SQS.
  • Політики на рівні ресурсів дають детальний контроль на рівні черги.
Розроблення застосунків на AWS

Основи Amazon SNS

  • Керований сервіс публікації-підписки (pub/sub).
  • Використовує push-модель.
  • Видавці надсилають повідомлення до топіка.
    • Максимальний розмір повідомлення — 256KB.
  • Споживачі підписуються на топіки.
  • Підписники пасивно отримують повідомлення.

 

огляд sns

Розроблення застосунків на AWS

Масштабування

  • До 12,5 мільйона підписок на топік.
  • Немає зберігання повідомлень:
    • Повідомлення втрачаються, якщо підписник недоступний.
    • Використовуйте DLQ або надійного підписника (чергу SQS), щоб не втрачати повідомлення.
  • Розповсюджує одну подію багатьом споживачам (fan-out).

 

масштабування sns

Розроблення застосунків на AWS

Фільтрація повідомлень

  • SNS підтримує політики фільтрації повідомлень.
  • Підписки отримують лише потрібні повідомлення.
  • Без фільтра підписка отримує всі повідомлення.
  • Політики фільтра застосовуються на рівні підписки, не топіка.

 

фільтр

Розроблення застосунків на AWS

Логіка фільтрів і оцінювання

 

політики фільтра

  • Фільтри задаються у JSON.
  • Порівнюються з атрибутами повідомлень.
  • Кілька умов оцінюються як AND.
  • Кілька значень у межах умови — як OR.
  • Підтримується багато операцій фільтрації:
    • Точний рядок, числова, префіксна, виключення та діапазон.
Розроблення застосунків на AWS

Безпека SNS

 

безпека sns

  • Шифрує дані під час передавання через HTTPS за замовчуванням.
  • Шифрування на стороні сервера в стані спокою через AWS KMS.
    • Надайте SNS дозвіл використовувати ключ KMS.
  • Політики IAM забезпечують контроль доступу.
    • Керують тим, хто може публікувати в топіку або підписуватися на нього.
Розроблення застосунків на AWS

Давайте потренуємось!

Розроблення застосунків на AWS

Preparing Video For Download...