Вопрос: Что такое Amazon SQS?

Amazon Simple Queue Service (Amazon SQS) – это веб-сервис, предоставляющий доступ к очередям сообщений, в которых сообщения хранятся в ожидании обработки. С помощью Amazon SQS можно быстро создавать приложения с использованием очереди сообщений и запускать их на любом компьютере.

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

Сервис Amazon SQS позволяет создать распределенное приложение и разделить его компоненты, при этом осуществляется непосредственное взаимодействие с Amazon Elastic Compute Cloud (Amazon EC2) и другими инфраструктурными веб-сервисами AWS.

Вопрос: Для чего предназначен сервис Amazon SQS?

Благодаря высокой масштабируемости сервиса Amazon SQS пользователь платит только за то, что реально использует. Можно начать с малого и увеличивать мощность приложения в соответствии с потребностями бизнеса. Жертвовать производительностью или надежностью при этом не придется. Сервис Amazon SQS позволяет не беспокоиться о хранении сообщений и управлении ими; он дает возможность сосредоточиться на создании надежных, сложных приложений, основанных на сообщениях.

Вот лишь некоторые варианты.

  • Интегрируйте Amazon SQS с другими сервисами AWS для повышения надежности и гибкости приложений.
  • Используйте Amazon SQS для создания рабочих очередей, в которых каждое сообщение выступает в роли задания, которое должно быть выполнено процессом. За считывание задач из очереди сообщений и их последующую обработку может отвечать один компьютер или несколько.
  • Создайте архитектуру микросервисов и используйте очереди сообщений для подключения своих микросервисов.
  • Храните оповещения о важных деловых событиях в очереди сообщений Amazon SQS. Каждому событию может соответствовать сообщение в очереди сообщений. Сообщения считываются и обрабатываются приложениями, в которых используются эти события.

Вопрос: Как начать работу с Amazon SQS?

Чтобы создать очередь Amazon SQS и отправить сообщение, выполните пошаговые инструкции в 10-минутном учебном пособии Send Messages Between Distributed Applications.

Дополнительные сведения см. в Руководстве по Amazon SQS для разработчиков, а также в образцах кода, представленных в центре ресурсов.

Вопрос: Каковы преимущества Amazon SQS в сравнении с коммерческими системами управления очередями сообщений или системами собственной разработки?

Amazon SQS предоставляет ряд преимуществ. При создании собственного программного обеспечения для управления очередями сообщений или использовании коммерческих систем управления очередями сообщений, а также систем с открытым исходным кодом потребуется довольно много времени на предварительную разработку и настройку.

При таких альтернативных вариантах нужно выделять ресурсы на текущее обслуживание оборудования и администрирование системы. Сложность настройки этих систем и управления ими усугубляется необходимостью организации избыточного хранения, чтобы гарантировать отсутствие потерь сообщений в случае аппаратного сбоя.

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

Вопрос: Чем отличаются сервисы Amazon SQS и Amazon SNS?

Оба сервиса – Amazon Simple Queue Service (SQS) и Amazon SNS – принадлежат к платформе AWS и специализируются на доставке сообщений, однако они предоставляют разработчикам разные преимущества. Amazon SNS позволяет отправлять срочные сообщения множеству подписчиков посредством технологии push, которая устраняет необходимость в периодических проверках или опросах на предмет обновлений. Сервис очередей сообщений Amazon SQS используется распределенными приложениями для обмена сообщениями по принципу опроса и может разделять компоненты отправки и приема. Сервис Amazon SQS обеспечивает гибкость при отправке и приеме сообщений, не требуя одновременной доступности распределенных компонентов приложений.

Одной из стандартных схем является использование SNS для публикации сообщений в очередях Amazon SQS для надежной асинхронной отправки сообщений одному или сразу многим компонентам системы. Дополнительную информацию см. в разделе Что представляет собой передача сообщений по модели «издатель-подписчик»?

Вопрос: Чем отличаются сервисы Amazon SQS и Amazon MQ?

Amazon MQ, Amazon SQS и Amazon SNS – сервисы обмена сообщениями, подходящие для компаний любого масштаба, от стартапов до крупных корпораций. Если обмен сообщениями используется в существующих приложениях и эту систему требуется быстро и просто перенести в облако, рекомендуем использовать сервис Amazon MQ. Сервис поддерживает стандартные отраслевые API и протоколы, что позволяет перейти с любого стандартного брокера сообщений на Amazon MQ, не переписывая код приложении в части обмена сообщениями. Если речь идет о разработке в облаке приложений с нуля, рекомендуем использовать Amazon SQS и Amazon SNS. Amazon SQS и SNS – это компактные и полностью управляемые сервисы очередей и тем сообщений со встроенным масштабированием и простыми удобными API. Amazon SQS и SNS можно использовать для того, чтобы разъединять и масштабировать микросервисы, распределенные системы и бессерверные приложения, а также чтобы повышать их надежность.

Вопрос: Обеспечивает ли Amazon SQS упорядочение сообщений?

Да. В очередях FIFO, работающих по принципу «первым получено – первым отправлено», сохраняется точный порядок отправки и получения сообщений. При использовании очередей FIFO добавлять информацию, служащую для упорядочения сообщений, не требуется. Дополнительную информацию см. в разделе Логика очередей FIFO руководства по Amazon SQS для разработчиков.

Стандартные очереди работают по алгоритму FIFO со свободным выходом, что предполагает попытку сохранить порядок сообщений. Однако в силу того, что стандартные очереди разработаны для обеспечения значительной масштабируемости с использованием широко распределенной архитектуры, получение сообщений точно в порядке их отправки не гарантируется.

Вопрос: Гарантирует ли сервис Amazon SQS доставку сообщений?

Стандартные очереди обеспечивают доставку сообщений по принципу «хотя бы один раз», то есть каждое сообщение доставляется по крайней мере один раз.

Очереди FIFO обеспечивают строго однократную обработку сообщений, то есть каждое сообщение доставляется один раз и остается доступным до тех пор, пока получатель не обработает и не удалит его. Дублирующие записи в очереди не появляются.

 

Вопрос: Чем Amazon SQS отличается от Amazon Kinesis Streams?

Amazon SQS предлагает надежные размещенные очереди с широкими возможностями масштабирования для хранения сообщений во время их передачи между приложениями или микросервисами. Сервис позволяет передавать данные между компонентами распределенного приложения и разделять эти компоненты. Amazon SQS предоставляет типовые структурные элементы промежуточной обработки, такие как очереди необрабатываемых сообщений и возможность управления удалением сообщений. Он также предоставляет стандартные API веб-сервиса и возможность использования с любым языком программирования, для которого обеспечена поддержка AWS SDK. В Amazon SQS поддерживаются как стандартные очереди, так и очереди FIFO.

Amazon SQS используется тогда, когда каждое уникальное сообщение должно попасть к получателю один раз, а также в перечисленных ниже случаях.

  • Разделение компонентов приложения: в очереди рабочих элементов необходимо отслеживать успешное выполнение каждого элемента по отдельности. Amazon SQS отслеживает оповещения о получении/неполучении, следовательно, постоянно сохранять контрольные точки или указатели на уровне приложения не требуется. По истечении заданного тайм-аута видимости Amazon SQS удаляет доставленные сообщения и выполняет повторную доставку сообщений, доставить которые не удалось.
  • Настройка задержки для отдельных сообщений: отдельные задания в очереди должны быть выполнены с задержкой. С помощью Amazon SQS для отдельных сообщений можно настроить задержку продолжительностью до 15 минут.
  • Динамическое обеспечение одновременного чтения и повышение пропускной способности во время чтения: к рабочей очереди необходимо добавлять приложения считывания до тех пор, пока задания не будут исчерпаны. С помощью Amazon Kinesis Streams можно увеличить число сегментов до необходимого (при этом требуется заблаговременно выделить достаточное количество сегментов). В Amazon SQS предварительное выделение ресурсов не требуется.
  • Прозрачное масштабирование: число буферных запросов и нагрузка меняются в результате периодических скачков нагрузки или по мере роста вашего бизнеса. Поскольку Amazon SQS может обрабатывать каждый буферный запрос отдельно, сервис прозрачно масштабируется, чтобы справиться с возросшей нагрузкой, при этом дополнительных действий со стороны пользователя не требуется.

Amazon Kinesis Streams позволяет организовать обработку потоков больших данных в режиме реального времени и обеспечивает возможность считывать и воспроизводить записи в различных приложениях Amazon Kinesis. Клиентская библиотека Amazon Kinesis (KCL) обеспечивает доставку всех записей с заданным ключом секции к одному и тому же обработчику записей, что упрощает процесс создания различных приложений, считывающих данные из одного потока Amazon Kinesis (например, приложения для подсчета, объединения и фильтрации).

Amazon Kinesis Streams используется тогда, когда необходимо обеспечить обработку одной записи сразу несколькими получателями, а также в перечисленных ниже случаях.

  • Направление связанных записей к одному и тому же обработчику: потоковая передача MapReduce. Такие операции, как подсчет и объединение, проще выполнить, если все записи с заданным ключом направляются к одному обработчику записей.
  • Одновременное получение данных из одного потока несколькими приложениями: одно приложение в режиме реального времени обновляет показатели на панели управления, а второе – сохраняет данные в Amazon Redshift. Оба приложения должны иметь возможность одновременно получать данные из одного и того же потока, независимо друг от друга.

Вопрос: Использует ли Amazon сервис Amazon SQS при создании своих приложений?

Да. Разработчики Amazon используют Amazon SQS для различных приложений, ежедневно обрабатывающих большое количество сообщений. Основные бизнес-процессы, лежащие в основе веб-сайта Amazon.com и Amazon Web Services, используют Amazon SQS.


Вопрос: Сколько стоит использование сервиса Amazon SQS?

Вы платите только за то, чем пользуетесь, без минимальной платы.

Стоимость Amazon SQS рассчитывается по количеству запросов, к чему добавляется плата за передачу данных из сервиса Amazon SQS (за исключением передачи данных в инстансы Amazon EC2 или функции AWS Lambda в пределах одного региона). Подробный расчет стоимости в зависимости от типа очереди и региона см. на странице цен на Amazon SQS.

Вопрос: Какой объем ресурсов предоставляется в рамках уровня бесплатного пользования Amazon SQS?

В рамках уровня бесплатного пользования Amazon SQS ежемесячно предоставляется 1 миллион бесплатных запросов.

Многие небольшие приложения могут полностью работать в рамках уровня бесплатного пользования. Однако при этом может начисляться плата за передачу данных. Подробнее см. в разделе Цены на Amazon SQS.

Уровень бесплатного пользования предоставляется на ежемесячной основе. Неиспользованные ресурсы на следующий месяц не переносятся.

Вопрос: Плата начисляется за все запросы Amazon SQS?

Да, плата начисляется за все запросы, выходящие за пределы уровня бесплатного пользования. За все запросы Amazon SQS начисляется плата, при этом они тарифицируются по единому тарифу.

Вопрос: Отличается ли стоимость пакетных операций Amazon SQS от стоимости других запросов?

Нет. Стоимость пакетных операций (SendMessageBatch, DeleteMessageBatch и ChangeMessageVisibilityBatch) не отличается от стоимости других запросов Amazon SQS. Группируя сообщения в пакеты, можно уменьшить расходы на Amazon SQS.

Вопрос: Каков принцип оплаты пользования сервисом Amazon SQS?

Для начала работы с сервисом Amazon SQS не требуется предоплата. В конце месяца с кредитной карты клиента автоматически снимается сумма за использование сервиса по итогам месяца.

На сайте Amazon Web Services можно в любое время ознакомиться с начислениями за текущий расчетный период.

  1. Нужно войти в аккаунт AWS.
  2. В разделе Your Web Services Account выбрать пункт Account Activity.

Вопрос: Как я могу отслеживать расходы, связанные с моими очередями Amazon SQS, и управлять ими?

Используя теги распределения расходов, можно пометить очереди и затем отслеживать их для управления ресурсами и расходами. Тег – это метка метаданных, состоящая из пары ключ-значение. К примеру, можно пометить тегами очереди по центру затрат, впоследствии распределить их по категориям и отслеживать свои расходы на основании этих центров.

Дополнительную информацию см. в разделе Tagging Your Amazon SQS Queues Руководства по Amazon SQS для разработчиков. Дополнительную информацию об использовании для ресурсов AWS тегов распределения расходов см. в разделе Using Cost Allocation Tags Руководства пользователя по управлению счетами и затратами на AWS.

Вопрос: Ваши цены указаны с учетом налогов?

Если не указано иное, представленные цены не включают применимые налоги и сборы, в том числе НДС и применимый налог с продаж.

Для клиентов с платежным адресом в Японии использование AWS в любом регионе облагается потребительским налогом Японии. Подробнее см. в разделе Вопросы и ответы по потребительскому налогу на Amazon Web Services.


Вопрос: Можно ли использовать Amazon SQS с другими сервисами AWS?

Да. Приложения можно сделать более гибкими и масштабируемыми, используя сервис Amazon SQS совместно с вычислительными сервисами, такими как Amazon EC2, Amazon EC2 Container Service (Amazon ECS) и AWS Lambda, а также с сервисами хранения и баз данных, такими как Amazon Simple Storage Service (Amazon S3) и Amazon DynamoDB.

Одним из стандартных примеров использования является создание распределенного приложения с изолированными компонентами, в котором нужно организовать взаимодействие нескольких компонентов и модулей, пригодных для обработки одного и того же объема данных только поочередно. В этом случае очереди сообщений Amazon SQS доставляют сообщения, которые последовательно обрабатываются пользовательским приложением на инстансах Amazon EC2.

Инстансы Amazon EC2 могут считывать сообщения из очереди, обрабатывать задание и публиковать результаты в виде сообщений другой очереди Amazon SQS (например, для последующей обработки другим приложением). Благодаря тому, что сервис Amazon EC2 обеспечивает динамическое масштабирование приложений в сторону увеличения или уменьшения, количество вычислительных инстансов можно легко менять в зависимости от количества заданий в очереди Amazon SQS, обеспечивая тем самым их своевременное выполнение.

Вопрос: В каких примерах может быть использован Amazon SQS?

Для примера рассмотрим совместное использование сервисов Amazon EC2, Amazon SQS, Amazon S3 и Amazon DynamoDB веб-сайтом для перекодирования видео.

  1. Конечные пользователи загружают на веб-сайт видеофайлы, которые нужно перекодировать.
  2. Эти видеофайлы сохраняются в хранилище Amazon S3, а во входящую очередь Amazon SQS помещается сообщение запроса со ссылкой на видеофайл и указанием целевого формата.
  3. Движок перекодирования, работающий на группе инстансов Amazon EC2, считывает сообщение запроса из входящей очереди, извлекает видеофайл из хранилища Amazon S3, используя ссылку, и перекодирует видео в целевой формат.
  4. Готовый видеофайл помещается обратно в хранилище Amazon S3, а в исходящую очередь Amazon SQS помещается сообщение ответа со ссылкой на перекодированное видео.
  5. В то же время метаданные видео (формат, дата создания, продолжительность и т. д.) индексируются в Amazon DynamoDB, обеспечивая возможность выполнения запросов.

В ходе этого процесса выделенный инстанс Auto Scaling может непрерывно контролировать очередь входящих сообщений. В зависимости от количества сообщений в очереди входящих сообщений инстанс Auto Scaling динамически изменяет количество инстансов Amazon EC2, используемых для перекодирования видео, чтобы соблюдать требования клиентов веб-сайта по времени ответа.

Вопрос: Как можно взаимодействовать с сервисом Amazon SQS?

Доступ к Amazon SQS можно получить из Консоли управления AWS, с помощью которой проще создавать очереди Amazon SQS и отправлять сообщения.

Сервис Amazon SQS также поддерживает API для веб-сервисов. Кроме того, он интегрирован в SDK AWS и позволяет вам работать с необходимыми языками программирования.

Вопрос: Какие операции можно выполнять с очередями сообщений?

Подробнее об операциях с очередями сообщений см. в разделе Сведения о продукте Amazon SQS.

Вопрос: Кто может выполнять операции с очередями сообщений?

Выполнять операции с очередью сообщений Amazon SQS может только владелец аккаунта AWS (или аккаунт AWS, которому владелец аккаунта делегировал соответствующие права).

Вопрос: Можно ли использовать Java Message Service (JMS) с Amazon SQS?

Да. Можно использовать все преимущества масштабируемости, экономичности и высокой доступности сервиса Amazon SQS без необходимости самостоятельно организовывать работу кластера JMS.

Amazon предоставляет библиотеку Amazon SQS Java Messaging Library, в которой реализована спецификация JMS 1.1 с использованием Amazon SQS в качестве поставщика JMS. Дополнительную информацию см. в разделе Использование JMS в Amazon SQS руководства по Amazon SQS для разработчиков.

Вопрос: Как сервис Amazon SQS определяет сообщения?

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

При получении сообщения из очереди сообщений в ответе содержится дескриптор получения, который необходимо указать при удалении сообщения.

Вопрос: Что происходит с необработанными сообщениями в Amazon SQS?

Amazon SQS позволяет использовать API или консоль для настройки очередей необрабатываемых сообщений, т. е. очередей, которые получают сообщения из других исходящих очередей.

Если преобразовать очередь в очередь необрабатываемых сообщений, сообщения в нее будут поступать только по истечении максимального количества попыток обработки. Очереди необрабатываемых сообщений позволяют изолировать сообщения, которые не удалось обработать, для последующего анализа.

Дополнительную информацию см. в вопросе «Можно ли использовать очередь необрабатываемых сообщений с очередями FIFO?» на этой странице и в разделе Работа с очередями необрабатываемых сообщений Amazon SQS руководства по Amazon SQS для разработчиков.

Вопрос: Что такое тайм-аут видимости?

Тайм-аут видимости – это период времени, в течение которого сервис Amazon SQS не дает другим компонентам, получающим сообщения, получать и обрабатывать сообщения. Дополнительную информацию см. в разделе Тайм-аут видимости руководства по Amazon SQS для разработчиков.

Вопрос: Как сервис Amazon SQS обеспечивает доступ множества получателей к одной и той же очереди сообщений без потери сообщений или их повторной обработки?

Для каждой очереди Amazon SQS можно настроить тайм-аут видимости. В течение указанного промежутка времени, пока сообщение считывается из очереди, оно не видно остальным получателям. Пока время обработки сообщения не превышает тайм-аут видимости, каждое из сообщений будет обработано и удалено.

Если произойдет сбой компонента, обрабатывающего сообщение, или он станет недоступен, по истечении тайм-аута видимости сообщение снова станет видимым для любого компонента, который осуществляет считывание сообщений из очереди. Это позволяет нескольким компонентам считывать сообщения из одной очереди сообщений, обрабатывая при этом разные сообщения.

Вопрос: Каков верхний лимит видимости сообщений?

Максимальный тайм-аут видимости для сообщений Amazon SQS составляет 12 часов.

Вопрос: Поддерживает ли Amazon SQS метаданные сообщений?

Да. Сообщение Amazon SQS может содержать до 10 атрибутов метаданных. Атрибуты сообщения можно использовать для отделения тела сообщения от метаданных, описывающих его. Это позволяет обрабатывать и сохранять информацию быстрее и эффективнее, поскольку приложениям не нужно проверять сообщение целиком, чтобы понять, как его обработать.

Атрибуты сообщений Amazon SQS представляют собой триады «имя-тип-значение». Поддерживаются следующие типы данных: строка, бинарные данные и число (включая целое число, число с плавающей запятой и число двойной точности). Дополнительную информацию см. в разделе Использование атрибутов сообщений Amazon SQS руководства по Amazon SQS для разработчиков.

Вопрос: Как определить время ожидания в очереди?

Чтобы определить время ожидания в очереди, можно запросить при получении сообщения атрибут SentTimestamp. Разность текущего времени и данного значения является временем ожидания в очереди.

Вопрос: Каково обычное время задержки для Amazon SQS?

Порядок обычного времени задержки для запросов API SendMessage, ReceiveMessage и DeleteMessage измеряется в десятках или нескольких сотнях миллисекунд.

Вопрос: Какое значение имеет атрибут SenderId сообщения при анонимном доступе?

Когда идентификатор аккаунта AWS недоступен (например, при отправке сообщения анонимным пользователем), Amazon SQS указывает вместо него IP-адрес.

Вопрос: Что такое длинные опросы Amazon SQS?

Длинные опросы Amazon SQS – это один из способов извлечения сообщений из очередей Amazon SQS. Если ответ на обычные короткие опросы возвращается сразу же, даже когда опрашиваемая очередь пуста, то ответ на длинные опросы не возвращается до тех пор, пока сообщение не окажется в очереди либо не будет превышен период ожидания длинного запроса.

Длинные опросы позволяют легко и без лишних затрат извлекать сообщения из очереди Amazon SQS, как только они станут доступны. Использование длинных опросов может уменьшить стоимость пользования сервисом SQS за счет сокращения числа пустых ответов. Дополнительную информацию см. в разделе Длинные опросы в Amazon SQS руководства по Amazon SQS для разработчиков.

Вопрос: Взимается ли дополнительная плата при использовании длинных опросов Amazon SQS?

Нет. Вызовы ReceiveMessage длинных опросов тарифицируются точно так же, как вызовы ReceiveMessage коротких опросов.

Вопрос: Когда следует использовать длинные опросы Amazon SQS, а когда короткие?

В большинстве случаев использовать длинные опросы Amazon SQS предпочтительнее, чем короткие. Длинные опросы позволяют получателям принимать сообщения из очереди по мере их поступления в очередь, уменьшая количество возвращенных пустых ответов ReceiveMessageResponse.

В большинстве примеров использования длинные опросы Amazon SQS позволяют повысить производительность и снизить затраты. Тем не менее, если приложение требует немедленного ответа на вызов ReceiveMessage, воспользоваться преимуществами длинных опросов, скорее всего, получится только после внесения некоторых изменений в приложение.

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

В таком приложении рекомендуется использовать один поток для обработки только одной очереди, что позволяет приложению пользоваться всеми преимуществами, предоставляемыми длинным опросом Amazon SQS.

Вопрос: Какое значение периода ожидания длинных опросов следует использовать?

В общем случае период ожидания длинных опросов не рекомендуется устанавливать более 20 секунд. Поскольку большее значение периода ожидания длинного опроса уменьшает количество возвращаемых пустых ответов ReceiveMessageResponse, попробуйте установить максимально возможное значение для периода ожидания длинного опроса.

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

Все AWS SDK по умолчанию работают с 20-секундным периодом ожидания длинных опросов. Если для доступа к Amazon SQS не используется AWS SDK или если для AWS SDK уже установлено меньшее время ожидания, возможно, потребуется изменить настройки клиента Amazon SQS, чтобы использовать более длинные опросы или использовать длинные опросы с меньшим временем ожидания.

Вопрос: Что такое AmazonSQSBufferedAsyncClient для Java?

AmazonSQSBufferedAsyncClient для Java обеспечивает реализацию интерфейса AmazonSQSAsyncClient и добавляет несколько важных возможностей.

  • Автоматическое пакетирование нескольких запросов SendMessage, DeleteMessage или ChangeMessageVisibility без внесения каких-либо необходимых изменений в приложение.
  • Предварительная загрузка сообщений в локальный буфер, которая позволяет приложению немедленно начать обработку сообщений из Amazon SQS, не дожидаясь извлечения сообщений.

Совместное использование автоматического пакетирования и предварительной загрузки увеличивает пропускную способность и уменьшает задержку, вносимую приложением, одновременно снижая затраты из-за уменьшения количества запросов Amazon SQS. Дополнительную информацию см. в разделе Буферизация и пакетная обработка запросов на стороне клиента руководства по Amazon SQS для разработчиков.

В настоящее время очереди FIFO не поддерживаются буферным асинхронным клиентом Amazon SQS.

Вопрос: Где можно загрузить клиент AmazonSQSBufferedAsyncClient для Java?

Клиент AmazonSQSBufferedAsyncClient можно загрузить в составе AWS SDK для Java.

Вопрос: Потребуется ли внесение изменений в приложение при использовании клиента AmazonSQSBufferedAsyncClient для Java?

Нет. Клиент AmazonSQSBufferedAsyncClient для Java реализован в виде быстрой замены существующего клиента AmazonSQSAsyncClient.

Если обновить приложение для использования последней версии AWS SDK и изменить устройство своего клиента, чтобы он использовал клиент AmazonSQSBufferedAsyncClient для Java вместо клиента AmazonSQSAsyncClient, то приложение получит дополнительные преимущества автоматического пакетирования и предварительной загрузки.

Вопрос: Как можно подписать очереди сообщений Amazon SQS для получения оповещений из тем Amazon SNS?

  1. В консоли Amazon SQS выберите очередь Amazon SQS.
  2. В разделе Queue Actions из раскрывающегося списка выбрать Subscribe Queue to SNS Topic.
  3. В диалоговом окне подписки выбрать тему из раскрывающегося списка Choose a Topic и нажать кнопку Subscribe.

Дополнительную информацию см. в разделе Подписка очереди на тему Amazon SNS руководства по Amazon SQS для разработчиков.

Вопрос: Как распределять идентичные сообщения между несколькими очередями Amazon SQS?

  1. Создайте тему в Amazon SNS.
  2. После создания нужно подписать несколько очередей Amazon SQS на тему Amazon SNS.
  3. Каждый раз при отправке сообщения в тему Amazon SNS оно будет распространяться по очередям сообщений Amazon SQS.

Amazon SNS доставит сообщение во все очереди сообщений Amazon SQS, подписанных на данную тему.

Вопрос: Осуществляет ли Amazon SNS доставку сообщений по принципу «хотя бы один раз» в очереди Amazon SQS?

В Amazon SNS каждое сообщение доставляется в очереди Amazon SQS хотя бы один раз.

Вопрос: Можно ли удалить все сообщения в очереди, не удаляя саму очередь?

Да. Все сообщения в очереди Amazon SQS можно удалить с помощью операции PurgeQueue.

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

Чтобы удалить только определенные сообщения, используйте операции DeleteMessage или DeleteMessageBatch.


Вопрос: Чем отличается стандартная очередь от очереди FIFO?

Стандартные очереди

Неограниченная пропускная способность. Стандартные очереди поддерживают почти неограниченное количество транзакций в секунду (TPS) на одно действие API.

Доставка по принципу «хотя бы один раз». Сообщение доставляется как минимум один раз, иногда доставляется несколько копий сообщения.

«Наилучшее из возможного» упорядочение. Иногда сообщения могут быть доставлены в порядке, отличающемся от порядка их отправки.

Очереди FIFO

Высокая пропускная способность. По умолчанию очереди FIFO поддерживают обработку до 300 сообщений в секунду (300 операций отправки, получения или удаления в секунду). При пакетировании 10 сообщений на операцию (максимум), очереди FIFO могут поддерживать обработку до 3000 сообщений в секунду. Чтобы запросить увеличение лимита, подайте заявку в службу поддержки.

Строго однократная обработка. Сообщение доставляется один раз и остается доступным до тех пор, пока получатель не обработает и не удалит его. Дублирующие сообщения в очередь не помещаются.

Доставка по принципу «первым получено – первым отправлено». Порядок, в котором сообщения отправляются и принимаются, строго сохраняется.

sqs-what-is-sqs-standard-queue-diagram
sqs-what-is-sqs-fifo-queue-diagram

Стандартные очереди можно использовать в различных сценариях, главное, чтобы приложение могло обрабатывать повторяющиеся сообщения и сообщения, доставляемые вне очереди. Ниже приведено несколько примеров.

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

Очереди FIFO предназначены для расширения возможностей обмена сообщениями между приложениями в случаях, когда порядок событий или операций принципиально важен, а также в случаях, когда дублирование сообщений недопустимо. Ниже приведено несколько примеров.

  • Обеспечение правильного порядка выполнения команд пользователя.
  • Отображение правильной цены на продукт за счет отправки изменений цен в соответствующем порядке.
  • Предотвращение записи учащегося на учебный курс до того, как он пройдет регистрацию и создаст аккаунт.

Вопрос: В каких регионах поддерживаются очереди FIFO?

В настоящее время очереди FIFO поддерживаются в регионах Запад США (Орегон), Восток США (Огайо), Восток США (Сев. Вирджиния) и ЕС (Ирландия). В ближайшие месяцы данная функция появится в других регионах.

Вопрос: Сколько копий сообщения я получу?

В очередях FIFO предполагается полное отсутствие дублирующих сообщений. Однако в некоторых сценариях дублирующие сообщения могут появляться на стороне отправителя. К примеру, если сообщение отправлено, а ответ не получен, это сообщение может быть отправлено повторно. API сервиса Amazon SQS предоставляют функциональные возможности для защиты от отправки дублирующих сообщений на стороне отправителя. Все дублирующие сообщения, созданные на стороне отправителя, удаляются из очереди каждые пять минут.

При работе со стандартной очередью получение дублирующих сообщений возможно (доставка по принципу «хотя бы один раз»). Поэтому при использовании стандартных очередей приложения должны быть идемпотентными (т. е. при обработке одного и того же сообщения более одного раза их работа не должна нарушаться).

Вопрос: Будут ли ранее созданные очереди Amazon SQS теперь работать как очереди FIFO?

Нет. Стандартные очереди Amazon SQS (это новое название существующих очередей) не претерпели изменений. Возможность создавать стандартные очереди также сохранилась. Очереди этого типа по-прежнему будут обеспечивать максимальные возможности масштабирования и пропускную способность, при этом упорядочение не гарантируется и допускается появление дублирующих сообщений.

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

Вопрос: Можно ли превратить существующую стандартную очередь в очередь FIFO?

Нет. Тип очереди указывается в момент ее создания. Тем не менее переход от стандартной очереди к очереди FIFO возможен. Дополнительную информацию см. в разделе Переход от стандартной очереди к очереди FIFO руководства по Amazon SQS для разработчиков.

Вопрос: Являются ли очереди FIFO Amazon SQS обратно совместимыми?

Чтобы воспользоваться функционалом очередей FIFO, необходимо использовать последнюю версию SDK AWS.

Очереди FIFO используют те же действия API, что и стандартные очереди, и предлагают аналогичные принципы получения и удаления сообщений, а также изменения тайм-аута видимости. Однако при отправке сообщений необходимо указать идентификатор группы сообщений. Дополнительную информацию см. в разделе Логика очередей FIFO руководства по Amazon SQS для разработчиков.

Важно! Существующую стандартную очередь невозможно преобразовать в очередь FIFO. Чтобы сделать перенос, сначала необходимо либо создать новую очередь FIFO для своего приложения, либо удалить существующую стандартную очередь и пересоздать ее как очередь FIFO. Дополнительную информацию см. в разделе Переход от стандартной очереди к очереди FIFO руководства по Amazon SQS для разработчиков.

Вопрос: Какие сервисы AWS или внешние сервисы совместимы с очередями FIFO сервиса Amazon SQS?

Некоторые сервисы AWS или внешние сервисы, позволяющие отправлять уведомления в Amazon SQS, могут оказаться несовместимы с очередями FIFO несмотря на то, что позволяют выбирать очередь FIFO в качестве объекта назначения.

Перечисленные ниже возможности сервисов AWS в настоящее время несовместимы с очередями FIFO.

Для получения дополнительной информации о совместимости прочих сервисов с очередями FIFO ознакомьтесь с документацией сервисов.

Вопрос: Совместимы ли очереди FIFO сервиса Amazon SQS с буферным асинхронным клиентом Amazon SQS, расширенной клиентской библиотекой Amazon SQS для Java и клиентом Amazon SQS Java Message Service (JMS)?

На текущий момент очереди FIFO несовместимы с буферным асинхронным клиентом Amazon SQS.

Очереди FIFO совместимы с расширенной клиентской библиотекой Amazon SQS для Java и клиентом Amazon SQS Java Message Service (JMS).

Вопрос: Какие метрики AWS CloudWatch поддерживаются очередями FIFO сервиса Amazon SQS?

Очереди FIFO поддерживают все метрики, поддерживаемые стандартными очередями. При использовании очередей FIFO для всех приблизительных отображаются точные результаты подсчета. Например, поддерживаются следующие метрики AWS CloudWatch:

  • ApproximateNumberOfMessagesDelayed – количество в очереди задержанных сообщений, недоступных для немедленного прочтения.
  • ApproximateNumberOfMessagesVisible – количество сообщений, доступных к извлечению из очереди.
  • ApproximateNumberOfMessagesNotVisible – количество передаваемых сообщений (отправленных клиенту и еще не удаленных или еще не достигших окончания окна видимости).

Вопрос: Что такое группы сообщений?

В рамках очередей FIFO сообщения сгруппированы в четко определенные и упорядоченные «пакеты». Для каждого идентификатора группы сообщений отправка и получение всех сообщений осуществляется в строго установленном порядке. Однако отправка и получение сообщений с различными значениями идентификатора группы сообщений могут осуществляться вне очереди. Необходимо привязать идентификатор группы сообщений к сообщению. Если не указать идентификатор группы сообщений, произойдет сбой.

Если несколько хостов (или различных потоков одного хоста) отправляют сообщения с одним и тем же идентификатором группы сообщений в очередь FIFO, Amazon SQS доставляет эти сообщения в том порядке, в котором они поступили на обработку. Чтобы Amazon SQS точно соблюдал порядок отправки и получения сообщений, несколько отправителей должны отправлять каждое сообщение с уникальным идентификатором группы сообщений.  

Вопрос: Поддерживают ли очереди FIFO Amazon SQS работу с несколькими источниками?

Да. Сообщения в очередь FIFO могут отправляться из одного или нескольких источников. Порядок сохранения сообщений соответствует порядку их успешного получения сервисом Amazon SQS.

Если несколько источников отправляют сообщения параллельно без ожидания ответа об успешной отправке со стороны действий SendMessage или SendMessageBatch, порядок между источниками может нарушиться. Ответ от действий SendMessage или SendMessageBatch содержит итоговую последовательность, которую очереди FIFO используют при размещении сообщений. Это делается для того, чтобы код, задействующий несколько источников параллельно, мог определить итоговый порядок сообщений в очереди.

Вопрос: Поддерживают ли очереди FIFO Amazon SQS работу с несколькими получателями?

Очереди FIFO Amazon SQS не предназначены для передачи сообщений из одной группы более чем одному потребителю одновременно. Однако если в очереди FIFO более одной группы сообщений, можно использовать параллельные потребители и передавать с помощью Amazon SQS сообщения из разных групп разным потребителям.

Вопрос: Можно ли использовать очередь необрабатываемых сообщений с очередями FIFO?

Да. Однако для очереди FIFO необходимо использовать очередь необрабатываемых сообщений FIFO. (Точно так же для стандартных очередей можно использовать только стандартные очереди необрабатываемых сообщений.)

Вопрос: Каков предел пропускной способности для очереди FIFO Amazon SQS FIFO?

Без пакетирования очереди FIFO поддерживают до 300 сообщений в секунду (300 операций SendMessage, ReceiveMessage или DeleteMessage в секунду). При выборе максимального пакетирования (10 сообщений на операцию) очереди FIFO могут поддерживать до 3000 сообщений в секунду. Стандартные очереди Amazon SQS имеют неограниченную пропускную способность.

Вопрос: Существуют ли какие-либо особые ограничения для атрибутов очереди FIFO?

Название очереди FIFO должно заканчиваться суффиксом .fifo. Максимальная длина названия очереди составляет 80 символов с учетом суффикса. Чтобы определить, является ли очередь FIFO, нужно убедиться, что название очереди заканчивается этим суффиксом.


Вопрос: Насколько надежно мои данные хранятся в Amazon SQS?

Amazon SQS хранит все очереди сообщений и сообщения в одном регионе AWS с высокой доступностью и несколькими избыточными зонами доступности (AZ), поэтому отказ одного компьютера, сети или всей зоны доступности не сможет сделать недоступными сообщения. Дополнительную информацию см. в разделе Регионы и зоны доступности руководства пользователя Amazon Relational Database Service.

Вопрос: Как защитить сообщения в очередях сообщений?

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

В Amazon SQS используется собственная система разрешений на основе ресурсов, использующая политики, написанные на том же языке, что и политики AWS Identity and Access Management (IAM); к примеру, можно использовать переменные, как и в политиках IAM. Дополнительную информацию см. в разделе Примеры политик Amazon SQS руководства по Amazon SQS для разработчиков.

Amazon SQS поддерживает протокол HTTP на базе SSL (HTTPS) и протокол безопасности транспортного уровня (TLS). Большинство клиентов могут автоматически договариваться об использовании более новых версий протокола TLS без каких-либо изменений в коде или настройках. Amazon SQS поддерживает версии 1.0, 1.1 и 1.2 протокола безопасности транспортного уровня (TLS) во всех регионах.

Вопрос: Для чего нужны отдельные операции ReceiveMessage и DeleteMessage?

После возвращения сообщения сервисом Amazon SQS оно остается в очереди независимо от того, было ли фактически получено. Поэтому необходимо выполнить удаление сообщения. Запрос на удаление подтверждает, что сообщение было обработано.

Если сообщение не будет удалено, Amazon SQS повторно доставит его в ответ на следующий запрос о получении. Дополнительную информацию см. в разделе Тайм-аут видимости руководства по Amazon SQS для разработчиков.

Вопрос: Возможно ли повторное получение сообщения, которое было удалено?

Нет. В очередях FIFO полностью отсутствуют дублирующие сообщения.

При использовании стандартных очередей в редких случаях можно получить ранее удаленное сообщение повторно. Это может произойти в тех редких случаях, когда в результате выполнения операции DeleteMessage не были удалены все копии сообщения, поскольку один из серверов распределенной системы Amazon SQS в момент удаления был недоступен. Эта копия сообщения впоследствии может быть доставлена повторно. Если вы используете стандартные очереди, следует разрабатывать идемпотентные приложения (т. е. приложения, в которых при повторном получении ранее удаленного сообщения не возникает ошибок или несоответствий).

Вопрос: Что произойдет при выдаче запроса DeleteMessage по отношению к ранее удаленному сообщению?

При выдаче запроса DeleteMessage по отношению к ранее удаленному сообщению Amazon SQS возвратит ответ об успешном выполнении операции.


Вопрос: В чем заключаются преимущества шифрования на стороне сервера (SSE) для Amazon SQS?

Шифрование на стороне сервера (SSE) позволяет передавать конфиденциальные данные через зашифрованные очереди. Благодаря SSE обеспечивается защита содержимого сообщений в очередях Amazon SQS с помощью ключей, управляемых сервисом AWS Key Management Service (AWS KMS). Шифрование сообщений выполняется, как только Amazon SQS получает их. Сообщения хранятся в зашифрованном виде. Amazon SQS расшифровывает сообщения только тогда, когда они отправляются авторизованному получателю.

AWS KMS предоставляет систему управления ключами на уровне облака за счет сочетания безопасного высокодоступного аппаратного и программного обеспечения.

Ниже представлены преимущества использования AWS KMS.

  • Можно самостоятельно создавать главные ключи клиента (CMK) и управлять ими.
  • Можно также использовать управляемый AWS ключ CMK для Amazon SQS, уникальный для каждого аккаунта и региона. 
  • Благодаря стандартам безопасности AWS KMS проще обеспечить соответствие требованиям к шифрованию.

Дополнительную информацию см. в следующих ресурсах.

Вопрос: В каких регионах доступны очереди с SSE?

Функция SSE для Amazon SQS доступна в регионах Восток США (Сев. Вирджиния и Огайо) и Запад США (Орегон). В ближайшие месяцы эта функция появится и в других регионах.

Вопрос: Как включить SSE для новой или существующей очереди Amazon SQS?

Чтобы включить SSE для новой или существующей очереди с помощью API сервиса Amazon SQS, укажите ID главного ключа клиента (CMK): псевдоним, псевдоним ARN, ID ключа или ключ ARN управляемого AWS или настраиваемого CMK (для этого нужно установить атрибут KmsMasterKeyId действия CreateQueue или SetQueueAttributes).

Подробные указания см. в разделах Создание очереди Amazon SQS с шифрованием на стороне сервера и Настройка шифрования на стороне сервера (SSE) для существующей очереди Amazon SQS Руководства по Amazon SQS для разработчиков.

Вопрос: Какие типы очередей Amazon SQS могут использовать SSE?

SSE поддерживают как стандартные очереди, так и очереди FIFO.

Вопрос: Какие разрешения требуются для использования SSE с Amazon SQS?

Прежде чем приступать к использованию SSE, необходимо разрешить шифрование очередей и шифрование и дешифрование сообщений в основных политиках AWS KMS.

Включить SSE для очереди можно с помощью управляемого AWS главного ключа клиента (CMK) для Amazon SQS или настраиваемого ключа CMK. Дополнительную информацию см. в разделе Главные ключи клиента Руководства по AWS KMS для разработчиков.

Чтобы отправлять сообщения в зашифрованную очередь, отправитель должен иметь разрешения kms:GenerateDataKey и kms:Decrypt для CMK.

Чтобы получать сообщения из зашифрованной очереди, получатель должен иметь разрешение kms:Decrypt для любого CMK, используемого для шифрования сообщений в этой очереди. Если очередь выступает в качестве очереди необрабатываемых сообщений, получатель должен также иметь разрешение kms:Decrypt для любого CMK, используемого для шифрования сообщений в исходной очереди.

Дополнительную информацию см. в разделе Какие разрешения требуются для использования SSE? Руководства по Amazon SQS для разработчиков.

Вопрос: Взимается ли дополнительная плата за использование SSE с Amazon SQS?

Дополнительная плата за использование Amazon SQS не взимается. Однако есть плата за вызовы AWS KMS из Amazon SQS. Дополнительную информацию см. на странице Цены на AWS Key Management Service.

Плата за использование AWS KMS зависит от периода повторного использования ключа данных, заданного для ваших очередей. Дополнительную информацию см. в разделе Как рассчитать стоимость использования AWS KMS? Руководства по Amazon SQS для разработчиков.

Вопрос: Что в Amazon SQS шифруется с помощью SSE и как выполняется шифрование?

С помощью SSE шифруется текст сообщения в очереди Amazon SQS.

Следующие компоненты с помощью SSE не шифруются:

  • метаданные очереди (имя очереди и атрибуты);
  • метаданные сообщений (ID сообщения, временная метка и атрибуты);
  • метрики для каждой очереди.

Amazon SQS генерирует ключи данных на основе управляемого AWS главного ключа клиента (CMK) для Amazon SQS или настраиваемого CMK для конвертного шифрования и дешифрования сообщений в настраиваемый период времени (от 1 минуты до 24 часов).

Вопрос: Какой алгоритм использует SSE для шифрования сообщений Amazon SQS?

SSE использует алгоритм AES-GCM 256.

Вопрос: Влияет ли SSE на работу Amazon SQS?

Шифрование сообщения делает его содержимое недоступным для неавторизованных или анонимных пользователей. Шифрование сообщений не влияет на нормальное функционирование Amazon SQS.

  • Шифруются только те сообщения, которые были отправлены после включения шифрования для очереди. Amazon SQS не шифрует уже помещенные в список выполнения сообщения.
  • Любое зашифрованное сообщение останется зашифрованным, даже если отключить шифрование очереди, в которой оно находится.

Вопрос: Каким образом зашифрованные очереди Amazon SQS соотносятся с незашифрованными очередями и очередями необрабатываемых сообщений?

Перенос сообщения в очередь необрабатываемых сообщений не влияет на его шифрование.

  • При перемещении сообщения из зашифрованной исходной очереди в незашифрованную очередь необрабатываемых сообщений сообщение остается зашифрованным.
  • При перемещении сообщения из незашифрованной исходной очереди в зашифрованную очередь необрабатываемых сообщений сообщение остается незашифрованным.

Вопрос: Ограничивает ли SSE количество транзакций в секунду (TPS) или количество очередей, которые могут быть созданы с помощью Amazon SQS?

SSE не ограничивает пропускную способность (TPS) сервиса Amazon SQS. Количество очередей SSE, которые можно создать, ограничено. Оно зависит от приведенных ниже условий.

  • Период повторного использования ключа данных (от 1 минуты до 24 часов).
  • Предельное количество транзакций AWS KMS в секунду для аккаунта (по умолчанию составляет 100 TPS).
  • Число пользователей IAM или аккаунтов, обращающихся к очередям.
  • Наличие большого количества сообщений в списке выполнения (чем их больше, тем больше вызовов AWS KMS нужно совершить).

Предположим, заданы следующие ограничения.

  • Период повторного использования ключа данных составляет 5 минут (300 секунд).
  • Для аккаунта установлено предельное количество транзакций AWS KMS в секунду по умолчанию, равное 100 TPS.
  • Используется очередь Amazon SQS без помещения сообщений в список выполнения и с одним пользователем IAM, выполняющим действия SendMessage или ReceiveMessage для всех очередей.

В этом случае можно вычислить теоретический максимум очередей Amazon SQS с SSE следующим образом.

300 секунд × 100 TPS/1 пользователь IAM = 30 000 очередей

Вопрос: Как рассчитать стоимость использования AWS KMS?

Чтобы спрогнозировать расходы и лучше понимать счета AWS, может потребоваться информация о том, как часто Amazon SQS использует CMK.

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

Количество запросов API на очередь (R) вычисляется по следующей формуле.

R = B/D * (2 * P + C)

B – это расчетный период (в секундах)

D – период повторного использования ключа данных (в секундах)

P – количество отправителей сообщений в очередь Amazon SQS

C – количество получателей сообщений из очереди Amazon SQS

Важно! Как правило, отправители обходятся в два раза дороже получателей. Дополнительную информацию см. в разделе Как работает период повторного использования ключа данных? Руководства по Amazon SQS для разработчиков.

Если у отправителя и получателя разные пользователи IAM, стоимость увеличивается.

Пример расчетов см. в разделе Как рассчитать стоимость использования главного ключа клиента (CMK)? Руководства по Amazon SQS для разработчиков. Точную информацию о ценах см. на странице Цены на сервис AWS KMS.


Вопрос: Сертифицирован ли сервис Amazon SQS по стандарту PCI DSS?

Да. Сервис Amazon SQS сертифицирован по стандарту PCI DSS Level 1. Подробнее см. в разделе Соответствие требованиям PCI DSS.

Вопрос: Соответствует ли сервис Amazon SQS требованиям HIPAA?

Да, AWS расширила свою программу соответствия требованиям HIPAA. Теперь сервис Amazon SQS соответствует требованиям HIPAA. Если вы заключили с AWS договор делового партнерства (BAA), можно использовать Amazon SQS для создания приложений, совместимых с HIPAA, передачи сообщений и хранения сообщений при передаче, включая сообщения, содержащие закрытую медицинскую информацию (PHI).

Если у вас уже есть подписанный договор BAA с AWS, можно сразу начать использовать Amazon SQS. Если у вас нет договора BAA или остались другие вопросы об использовании AWS для приложений, совместимых с HIPAA, свяжитесь с нами для получения дополнительной информации.

Примечание. Если вы предпочитаете не передавать PHI через Amazon SQS (или если у вас есть сообщения размером более 256 КБ), можно использовать вариант отправки полезных данных сообщений Amazon SQS через Amazon S3 с помощью расширенной клиентской библиотеки Amazon SQS для Java (сервис Amazon S3 соответствует требованиям HIPAA, за исключением использования Amazon S3 Transfer Acceleration). Дополнительную информацию см. в разделе Использование расширенной клиентской библиотеки Amazon SQS для Java Руководства по Amazon SQS для разработчиков.


Вопрос: Сколько времени сообщения могут находиться в очереди сообщений Amazon SQS?

Более длительное хранение сообщений позволяет гибко настраивать интервалы между их созданием и использованием.

В качестве срока хранения сообщения Amazon SQS можно указать значение от 1 минуты до 14 дней. Значение по умолчанию составляет 4 дня. По достижении предельного срока хранения сообщения удаляются автоматически.

Вопрос: Как настроить Amazon SQS для поддержки более длительного хранения сообщений?

Чтобы настроить период хранения сообщений, укажите значение атрибута MessageRetentionPeriod с помощью консоли сервиса либо метода Distributiveness. Используйте этот атрибут для указания количества секунд, в течение которых сообщение будет храниться в Amazon SQS.

Можно использовать атрибут MessageRetentionPeriod для указания срока хранения сообщения от 60 секунд (1 минуты) до 1 209 600 секунд (14 дней). Дополнительные сведения о работе с этим атрибутом сообщения см. в Справочном руководстве по API Amazon SQS.

Вопрос: Как настроить максимальный размер сообщений для Amazon SQS?

Чтобы настроить максимальный размер сообщений, задайте значение атрибута MaximumMessageSize с помощью консоли или метода SetQueueAttributes. Этот атрибут позволяет указать максимальный размер сообщения Amazon SQS в байтах. Установите значение этого ограничения между 1024 байт (1 КБ) и 262 144 байт (256 КБ). Дополнительную информацию см. в разделе Использование атрибутов сообщений Amazon SQS руководства по Amazon SQS для разработчиков.

Для отправки сообщений, размер которых превышает 256 КБ, можно воспользоваться расширенной клиентской библиотекой Amazon SQS для Java. Эта библиотека позволяет отправлять сообщения Amazon SQS, содержащие ссылку на полезную нагрузку размером до 2 ГБ, которая хранится в Amazon S3.

Вопрос: Какой тип данных можно включать в сообщение?

Сообщения Amazon SQS могут содержать до 256 КБ текстовых данных, включая форматы XML, JSON и неформатированный текст. Допускается использование следующих символов Юникода:

#x9 | #xA | #xD | [от #x20 до #xD7FF] | [от #xE000 до #xFFFD] | [от #x10000 до #x10FFFF]

Подробнее см. в разделе Спецификация XML 1.0.

Вопрос: Каков максимально допустимый размер очередей сообщений Amazon SQS?

В одной очереди сообщений Amazon SQS может содержаться неограниченное число сообщений. Однако, предельное количество находящихся на передаче сообщений составляет 120 000 для стандартных очередей и 20 000 для очередей FIFO. Сообщения считаются находящимися на передаче в промежуток времени, когда они уже переданы из очереди принимающему компоненту, но еще не удалены из очереди.

Вопрос: Сколько очередей сообщений можно создать?

Число очередей сообщений, создаваемых пользователем, не ограничено.

Вопрос: Ограничена ли длина имени очереди сообщений Amazon SQS?

Длина имени очереди ограничена 80 символами.

Вопрос: Каковы правила именования очередей сообщений Amazon SQS?

Можно использовать буквенно-цифровые символы, дефис (-) и нижнее подчеркивание (_).

Вопрос: Можно ли повторно использовать имя очереди сообщений?

Имя очереди сообщений должно быть уникальным в пределах аккаунта AWS и региона. После удаления очереди сообщений ее имя можно использовать повторно.


Вопрос: Как осуществляется совместное использование очередей сообщений?

С очередью сообщений, которая будут использоваться совместно, можно связать заявление о политике доступа (и указать предоставленные разрешения). Amazon SQS предоставляет API для создания и управления заявлениями о политике доступа:

  • AddPermission;
  • RemovePermission;
  • SetQueueAttributes;
  • GetQueueAttributes.

Подробнее см. в Справочном руководстве по API Amazon SQS.

Вопрос: Кто платит за доступ к совместно используемой очереди?

Доступ к совместно используемой очереди оплачивает ее владелец.

Вопрос: Как определить другого пользователя AWS, которому я хочу предоставить совместный доступ к очереди сообщений?

Для идентификации пользователей AWS в API Amazon SQS используется номер аккаунта AWS.

Вопрос: Что мне нужно сделать, чтобы предоставить пользователю AWS совместный доступ к очереди сообщений?

Для совместного использования очереди сообщений нужно предоставить пользователю AWS полный URL-адрес очереди сообщений, совместный доступ к которой требуется обеспечить. Этот URL-адрес возвращается в ответах при выполнении операций CreateQueue и ListQueues.

Вопрос: Поддерживает ли сервис Amazon SQS анонимный доступ?

Да. Вы можете настроить политику доступа, которая позволит анонимным пользователям получить доступ к очереди сообщений.

Вопрос: В каких случаях следует использовать API разрешений?

API разрешений предоставляет разработчикам интерфейс для совместного доступа к очереди сообщений. Однако этот API не позволяет обеспечить условный доступ или реализовать более сложные примеры использования.

Вопрос: В каких случаях следует использовать операцию SetQueueAttributes с объектами JSON?

Операция SetQueueAttributes полностью поддерживает язык политик доступа. Например, можно использовать язык политики, чтобы ограничить доступ к очереди сообщений по IP-адресу или времени суток. Дополнительную информацию см. в разделе Примеры политик Amazon SQS руководства по Amazon SQS для разработчиков.


Вопрос: В каких регионах доступен сервис Amazon SQS?

Для получения списка регионов, в которых доступен сервис, см. таблицу регионов глобальной инфраструктуры AWS.
Примечание. В настоящее время очереди FIFO доступны только в регионах Запад США (штат Орегон), Восток США (штат Огайо), Восток США (штат Сев. Вирджиния) и ЕС (Ирландия). В ближайшие месяцы данная возможность появится в других регионах.

Вопрос: Можно ли обмениваться сообщениями между очередями в разных регионах?

Нет. Каждая очередь сообщений Amazon SQS является независимой в каждом регионе.

Вопрос: Различаются ли цены сервиса в разных регионах?

Цены сервиса Amazon SQS одинаковы во всех регионах, за исключением региона Китай (Пекин). Подробнее см. в разделе Цены на Amazon SQS.

Вопрос: Как изменяются цены при использовании разных регионов?

Можно бесплатно передавать данные между сервисами Amazon SQS и Amazon EC2 или AWS Lambda в пределах одного региона.

При передаче данных между сервисами Amazon SQS и Amazon EC2 или AWS Lambda в разных регионах будет взиматься стандартная плата за передачу данных. Подробнее см. в разделе Цены на Amazon SQS.