¿Qué es Amazon Simple Queue Service? - Amazon Simple Queue Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

¿Qué es Amazon Simple Queue Service?

Con Amazon Simple Queue Service (Amazon SQS), se ofrece una cola alojada segura, duradera y disponible que le permite integrar y desacoplar sistemas y componentes de software distribuidos. Amazon SQS ofrece constructos comunes, como colas de mensajes fallidos y etiquetas de asignación de costos. Proporciona una API de servicios web genérica a la que puede acceder mediante cualquier lenguaje de programación compatible con el AWS SDK.

Beneficios de utilizar Amazon SQS

  • Seguridad: usted controla quién puede enviar mensajes a la cola de Amazon SQS o recibirlos de ella. Puede elegir entre transmitir datos confidenciales mediante la protección del contenido de los mensajes en las colas por medio del cifrado del servidor (SSE) administrado por Amazon SQS de forma predeterminada o mediante el uso de claves SSE personalizadas administradas en AWS Key Management Service (AWS KMS).

  • Durabilidad: para mantener seguros sus mensajes, Amazon SQS los almacena en varios servidores. Las colas estándar admiten la entrega de at-least-once mensajes y las colas FIFO admiten el procesamiento de mensajes exactamente una vez y el modo de alto rendimiento.

  • Disponibilidad: Amazon SQS utiliza una infraestructura redundante para proporcionar acceso con un alto grado de simultaneidad a los mensajes y alta disponibilidad para producir y consumir mensajes.

  • Escalabilidad: Amazon SQS puede procesar cada solicitud en búfer independientemente, con un escalado transparente para controlar cualquier aumento o pico de carga sin instrucciones de aprovisionamiento.

  • Fiabilidad: Amazon SQS bloquea sus mensajes durante el procesamiento, de forma que varios productores puedan enviar mensajes y varios consumidores puedan recibirlos al mismo tiempo.

  • Personalización: sus colas no tienen por qué ser exactamente iguales; por ejemplo, puede establecer un retraso predeterminado en una cola. Puede almacenar el contenido de los mensajes con un tamaño superior a 256 KB mediante Amazon Simple Storage Service (Amazon S3) o Amazon DynamoDB (donde Amazon SQS mantiene un puntero que señala al objeto de Amazon S3) o bien puede dividir los mensajes grandes en mensajes más pequeños.

Arquitectura de Amazon SQS básica

En esta sección se describen las partes de un sistema de mensajería distribuido y se explica el ciclo de vida de un mensaje de Amazon SQS.

Colas distribuidas

Un sistema de mensajería distribuido consta de tres partes principales: los componentes del sistema distribuido, la cola (distribuida en los servidores de Amazon SQS) y los mensajes de la cola.

En el siguiente escenario, el sistema tiene varios productores (componentes que envían mensajes a la cola) y consumidores (componentes que reciben mensajes de la cola). La cola (que contiene los mensajes A a E) almacena de forma redundante los mensajes en varios servidores de Amazon SQS.

Tres partes principales de un sistema de mensajería distribuida: los componentes del sistema distribuido, la cola (distribuida en los servidores Amazon SQS) y los mensajes de la cola.

Ciclo de vida del mensaje

En el escenario siguiente se describe el ciclo de vida de un mensaje de Amazon SQS en una cola, desde la creación hasta la eliminación.

El ciclo de vida de un mensaje de Amazon SQS en una cola, desde su creación hasta su eliminación.

Section one description for the previous lifecycle diagram. Un productor (componente 1) envía el mensaje A a la cola y el mensaje se distribuye entre los servidores de Amazon SQS de forma redundante.

Section two description for the previous lifecycle diagram. Cuando un consumidor (componente 2) está preparado para procesar mensajes, consume mensajes de la cola y se devuelve el mensaje A. Mientras se procesa, el mensaje A permanece en la cola y no se devuelve a las solicitudes de recepción posteriores durante el tiempo de espera de visibilidad.

Section three description for the previous lifecycle diagram. El consumidor (componente 2) elimina el mensaje A de la cola para evitar que se reciba y procese de nuevo cuando termina el tiempo de espera de visibilidad.

nota

Amazon SQS elimina automáticamente los mensajes que han estado en una cola durante más tiempo que el periodo máximo de retención de mensajes. El periodo de retención de mensajes predeterminado es de 4 días. Sin embargo, puede establecer el periodo de retención de un mensaje en un valor comprendido entre 60 y 1.209.600 segundos (14 días) mediante la acción SetQueueAttributes .

Diferencias entre Amazon SQS, Amazon MQ y Amazon SNS

Amazon SQS, Amazon SNS y Amazon MQ ofrecen servicios de mensajería gestionados easy-to-use y altamente escalables, cada uno diseñado para funciones específicas dentro de los sistemas distribuidos. A continuación, se ofrece una descripción general mejorada de las diferencias entre estos servicios:

Amazon SQS desacopla y escala los sistemas y componentes de software distribuidos como un servicio de colas. Por lo general, procesa los mensajes a través de un único suscriptor, lo que resulta ideal para flujos de trabajo en los que la prevención de pedidos y pérdidas es fundamental. Para una distribución más amplia, la integración de Amazon SQS con Amazon SNS permite un patrón de mensajería distribuido, que envía mensajes de manera efectiva a varios suscriptores a la vez.

Amazon SNS permite a los editores enviar mensajes a varios suscriptores a través de temas, que sirven como canales de comunicación. Los suscriptores reciben los mensajes publicados mediante un tipo de punto final compatible Amazon Data Firehose, como Amazon SQS, Lambda, HTTP, correo electrónico, notificaciones push móviles y mensajes de texto (SMS) móviles. Este servicio es ideal para situaciones que requieren notificaciones inmediatas, como la participación de los usuarios en tiempo real o los sistemas de alarma. Para evitar la pérdida de mensajes cuando los suscriptores están desconectados, la integración de Amazon SNS con los mensajes en cola de Amazon SQS garantiza una entrega uniforme.

Amazon MQ se adapta mejor a las empresas que desean migrar desde los intermediarios de mensajes tradicionales, ya que admite protocolos de mensajería estándar como AMQP y MQTT, junto con Apache ActiveMQ y RabbitMQ. Ofrece compatibilidad con los sistemas heredados que necesitan una mensajería estable y fiable sin necesidad de una reconfiguración significativa.

El siguiente cuadro proporciona una descripción general del tipo de recurso de cada servicio:

Tipo de recurso Amazon SNS Amazon SQS Amazon MQ
Síncrono No No
Asíncrono
Queues No
Mensajería de publicador y suscriptor No
Agentes de mensajes No No

Se recomiendan tanto Amazon SQS como Amazon SNS para nuevas aplicaciones que puedan beneficiarse de una escalabilidad casi ilimitada y de API sencillas. Por lo general, con sus pay-as-you-go precios, ofrecen soluciones más rentables para aplicaciones de gran volumen. Recomendamos Amazon MQ para migrar aplicaciones de los intermediarios de mensajes existentes que dependen de la compatibilidad con API como JMS o protocolos como el Protocolo avanzado de colas de mensajes (AMQP), MQTT y el Protocolo simple de mensajes orientados a texto ( OpenWireSTOMP).