Масштабирование EC2 с помощью SQS
AWS SQS — это система распределенных очередей, позволяющая приложениям веб-сервисов быстро и надежно ставить в очередь сообщения, созданные одним компонентом приложения для использования другим компонентом. Очередь — это временное хранилище сообщений, ожидающих обработки. Переданные данные не теряются, никакие другие службы не требуются.
В сообщениях может содержаться до 256 КБ текста. Форматы разные: JSON, XML и другие.
Типы очередей
Амазон предоставляет два типа:
- Стандартные очереди обеспечивают максимальную пропускную способность и гарантируют как минимум однократную доставку. Это дефолтный тип. При его использовании необходимо проектировать приложения как идемпотентные, чтобы не возникало негативных последствий при многократной обработке одного и того же сообщения.
- Очереди FIFO используются для обмена, когда важен порядок операций и событий, которыми обмениваются приложения, или в ситуациях, когда мы хотим избежать обработки повторяющихся сообщений. Этот тип гарантирует доставку и обработку один раз в изначальном порядке.
По умолчанию на каждое действие API доступно практически неограниченное количество транзакций в секунду. В Amazon SQS FIFO доступно до 3000 переводов в секунду. Запрос доставляется один раз и остается, пока пользователь его не обработает и не удалит.
Преимущества
Главный плюс, который дает очередь Amazon — упрощение процессов. На основе сервисов Amazon, timeweb.cloud и других облачных провайдеров все чаще выстраивают сложные распределенные системы и микросервисы. Чтобы компоненты работали корректно, разработчикам необходимо обеспечить надежную передачу и хранение сообщений. Simple Queue Service помогает решить эту задачу.
- Меньше затрат — не нужно приобретать дополнительное оборудование, ПО, тратить ресурсы на настройку инфраструктуры.
- Данные в безопасности благодаря использованию шифрования.
- Гарантированная доставка — у каждого сообщения есть копии, которые резервируются в разных зонах доступности.
- Можно масштабировать сервис вместе со всей системой — количество запросов не ограничено, а затраты привязаны к использованию.
Кроме того, до 1 миллиона запросов в месяц — бесплатно. Затем стоимость рассчитывается в зависимости от количества запросов и составляет от 24 до 40 центов за каждый миллион.
Примеры использования
SQS — это инструмент, который используют и большие, и маленькие компании для решения бизнес-задач.
Например, NASA с его помощью организовало работу хранилища изображений и видео. В ней располагаются более 100 тысяч медиафайлов, которые фиксируют более чем полувековые свершения человечества в космосе.
BMW использует очереди, чтобы получать информацию с автомобильных датчиков и передавать в приложение автоматически обновляемое состояние. Финансовые компании благодаря SQS переводят в облако части банковской системы, чтобы сделать их доступнее и экономичнее, а также избежать дополнительных расходов.