P: ¿Qué es Amazon SQS?

Amazon Simple Queue Service (Amazon SQS) es un servicio web que le proporciona acceso a colas de mensajes que almacenan mensajes a la espera de ser procesados. Con Amazon SQS, puede crear con rapidez aplicaciones de colas de mensajes capaces de ejecutarse en cualquier equipo.

Amazon SQS ofrece una cola alojada, fiable y altamente escalable que almacena los mensajes en tránsito entre equipos. Con Amazon SQS, puede trasladar datos entre diversos componentes de aplicaciones distribuidos, sin perder mensajes y sin que cada componente tenga que estar disponible siempre.

Amazon SQS puede ayudarle a crear una aplicación distribuida con componentes desacoplados, en estrecha colaboración con Amazon Elastic Compute Cloud (Amazon EC2) y los demás servicios web de la infraestructura de AWS.

P: ¿Qué puedo hacer con Amazon SQS?

Amazon SQS es altamente escalable, por lo que solo paga por lo que usa. Puede comenzar a pequeña escala y ampliar la aplicación en función de las necesidades de su empresa, sin comprometer el desempeño ni la fiabilidad. Con Amazon SQS puede dejar de preocuparse sobre cómo se almacenan y administran los mensajes. Además, le ayuda a crear aplicaciones basadas en mensajes sofisticadas y sólidas.

Aquí tiene unas cuantas ideas:

  • Integre Amazon SQS con otros servicios de AWS para que las aplicaciones sean más flexibles y fiables.
  • Utilice Amazon SQS para crear colas de trabajo con cada mensaje como una tarea que ha de completar un proceso. Permita que uno o varios equipos lean las tareas de la cola de mensajes y las procesen.
  • Cree una arquitectura de microservicios y utilice las colas de mensajes para conectar los microservicios.
  • Conserve notificaciones de eventos empresariales importantes en la cola de mensajes de Amazon SQS. Cada evento puede tener un mensaje correspondiente dentro de una cola de mensajes y las aplicaciones que deban tener constancia del evento pueden leer y procesar los mensajes.

P: ¿Cómo puedo comenzar a utilizar Amazon SQS?

Complete el tutorial de 10 minutos Enviar mensajes entre aplicaciones distribuidas para aprender a crear una cola de Amazon SQS y enviar un mensaje en pocos pasos.

Para obtener más información, consulte la Guía para desarrolladores de Amazon SQS y el código de muestra en el centro de recursos.

P: ¿Qué beneficios aporta Amazon SQS en comparación con sistemas de colas de mensajes domésticas o empaquetadas?

Amazon SQS proporciona varias ventajas en comparación con la creación de su propio software de administración de colas de mensajes o el uso de sistemas de colas de mensajes comerciales o de código abierto que requieren una inversión de tiempo significativa por anticipado para el desarrollo y la configuración.

Estas alternativas también requieren constantemente recursos de administración de sistemas y mantenimiento de hardware. A la complejidad de configurar y administrar estos sistemas se suma la necesidad de un almacenamiento redundante de mensajes que garantice que no se pierdan si se produce un fallo en el hardware.

Por su parte, Amazon SQS no requiere tareas administrativas y necesita poca configuración. Además, Amazon SQS funciona a escala masiva y procesa miles de millones de mensajes al día. Puede ampliar o reducir la cantidad de tráfico que envía a Amazon SQS sin ninguna configuración. Además, Amazon SQS ofrece una altísima durabilidad para los mensajes, lo que le aporta confianza a usted y las partes interesadas.

P: ¿En qué se diferencia Amazon SQS de Amazon SNS?

Amazon Simple Queue Service (SQS) y Amazon SNS son dos servicios de mensajería de AWS que ofrecen a los desarrolladores diferentes beneficios. Amazon SNS permite a las aplicaciones enviar mensajes en los que el tiempo es esencial a varios suscriptores a través del mecanismo "push", lo que elimina la necesidad de comprobar o "sondear" de forma periódica en busca de actualizaciones. Amazon SQS es un servicio de cola de mensajes que utilizan aplicaciones distribuidas para intercambiar mensajes a través del modelo de sondeo y se puede utilizar para desacoplar el envío y la recepción de componentes. Amazon SQS proporciona flexibilidad a los componentes distribuidos de aplicaciones para enviar y recibir mensajes sin la necesidad de que cada componente esté disponible simultáneamente.

Un patrón común es usar SNS para publicar mensajes en colas de Amazon SQS para enviar mensajes de manera fiable a uno o más componentes de sistemas de manera asíncrona. Para obtener más información, consulte ¿Qué es la mensajería de publicación/suscripción?

P: ¿En qué se diferencia Amazon SQS de Amazon MQ?

Amazon MQ, Amazon SQS y Amazon SNS son servicios de mensajería adecuados para cualquier destinatario, desde startups a corporaciones. Si utiliza mensajería con aplicaciones existentes y desea migrar sus mensajes a la nube de manera rápida y sencilla, recomendamos utilizar Amazon MQ. Es compatible con protocolos y API estándares del sector, por lo que puede cambiar de cualquier agente de mensajes basado en estándares a Amazon MQ sin tener que volver a escribir código de mensajería en sus aplicaciones. Si está creando aplicaciones totalmente nuevas en la nube, recomendamos utilizar Amazon SQS y Amazon SNS. Amazon SQS y SNS son servicios de temas y colas de mensajes completamente administrados y ligeros que ajustan su escala sin límites y suministran API simples y fáciles de usar. Puede usar Amazon SQS y SNS para desacoplar y escalar microservicios, sistemas distribuidos y aplicaciones sin servidor, y para mejorar el nivel de fiabilidad.

P: ¿Proporciona Amazon SQS la ordenación de mensajes?

Sí. Las colas FIFO (primero en entrar, primero en salir) conservan el orden exacto en que se envían y reciben los mensajes. Si utiliza una cola FIFO, no tendrá que colocar información de secuenciación en sus mensajes. Para obtener más información, consulte la sección Lógica de colas FIFO en la Guía para desarrolladores Amazon SQS.

La cola estándar proporciona cierta capacidad FIFO que intenta conservar el orden de los mensajes. Sin embargo, como las colas estándar están diseñadas para ser enormemente escalables empleando una arquitectura altamente distribuida, no se garantiza que se reciban los mensajes en el mismo orden en que se envían.

P: ¿Proporciona Amazon SQS garantía de la entrega de los mensajes?

Las colas estándar proporcionan una entrega de al menos una vez, lo que significa que cada mensaje se entrega al menos una vez.

Las colas FIFO proporcionan un procesamiento único, lo que significa que cada mensaje se entrega una vez y permanece disponible hasta que un consumidor lo procesa y lo elimina. Los duplicados no se introducen en la cola.

 

P: ¿En qué se diferencia Amazon SQS de Amazon Kinesis Streams?

Amazon SQS ofrece una cola alojada, fiable y altamente escalable que almacena los mensajes mientras viajan entre aplicaciones o microservicios. Mueve los datos entre componentes de aplicaciones distribuidas y le ayuda a desacoplar esos componentes. Amazon SQS proporciona constructores middleware comunes tales como colas de mensajes fallidos y administración de "píldoras venenosas". También proporciona una API de servicios web genérica a la que se puede acceder mediante cualquier lenguaje de programación que admita el SDK de AWS. Amazon SQS admite tanto las colas estándar como las colas FIFO.

Utilice Amazon SQS cuando necesite que cada mensaje se consuma solamente una vez y cuando se presenten casos similares a los siguientes:

  • Para desacoplar los componentes de una aplicación: tiene una cola de elementos de trabajo y quiere hacer un seguimiento de forma independiente de cada elemento que se realiza. Amazon SQS hace un seguimiento de ACK/FAIL para que la aplicación no tenga que mantener un control o un cursor de manera permanente. Después de un tiempo de espera de visibilidad configurado, Amazon SQS elimina los mensajes confirmados y reenvía los mensajes con errores.
  • Para configurar una demora para un mensaje de forma individual: tiene una cola de trabajo y necesita programar una demora para trabajos individuales. Con Amazon SQS, puede configurar los mensajes de forma individual para que tengan una demora de hasta 15 minutos.
  • Para incrementar dinámicamente la simultaneidad o la capacidad de proceso en tiempo de lectura: tiene una cola de trabajo y quiere añadir más lectores hasta que el trabajo pendiente se haya resuelto. Con Amazon Kinesis Streams puede escalar el número de fragmentos que necesite (no obstante, tenga en cuenta que necesita un aprovisionamiento de fragmentos suficientes por adelantado). Amazon SQS no necesita aprovisionamiento previo.
  • Escalado transparente: usted coloca las solicitudes en una memoria intermedia y el volumen de carga cambia según los picos de carga ocasionales o el crecimiento natural de su negocio. Como Amazon SQS puede procesar cada solicitud en búfer independientemente, Amazon SQS se puede ampliar de forma transparente para manejar la carga sin que usted tenga que proporcionar instrucciones de aprovisionamiento.

Con Amazon Kinesis Streams puede procesar streaming de big data en tiempo real y puede leer y volver a reproducir registros en varias aplicaciones de Amazon Kinesis. La biblioteca de clientes de Amazon Kinesis (KCL) entrega todos los registros de una clave de partición determinada al mismo procesador de registros, lo que facilita el desarrollo de varias aplicaciones que lean desde una misma transmisión de Amazon Kinesis (por ejemplo, para realizar un recuento, para agregar y para filtrar).

Utilice Amazon Kinesis Streams cuando necesite que varios consumidores puedan procesar cada registro y cuando se presenten casos de uso similares a los siguientes:

  • Para enrutar registros relativos al mismo procesador de registros: su retransmisión de MapReduce. Es más fácil realizar acciones tales como contar y agregar cuando todos los registros de una clave determinada se enrutan al mismo procesador de registros.
  • Para permitir la misma transmisión de forma simultánea en diferentes aplicaciones: tiene una aplicación que actualiza un panel en tiempo real y otra que archiva datos en Amazon Redshift. En este caso, interesa que las dos aplicaciones consuman datos de la misma transmisión de forma simultánea e independiente.

P: ¿Utiliza Amazon SQS para sus propias aplicaciones?

Sí. Los desarrolladores de Amazon utilizan Amazon SQS para diversas aplicaciones que procesan grandes cantidades de mensajes todos los días. Los procesos empresariales principales de Amazon.com y Amazon Web Services utilizan Amazon SQS.


P: ¿Cuánto cuesta Amazon SQS?

Solo paga por lo que usa y no hay ninguna cuota mínima.

El costo de Amazon SQS se calcula por solicitud, más los cargos de transferencia de datos correspondientes por los datos que se envíen fuera de Amazon SQS (a menos que se transfieran a instancias de EC2 de Amazon o funciones de AWS Lambda de la misma región). Para obtener información detallada sobre el desglose de precios por tipo de cola y región, consulte Precios de Amazon SQS.

P: ¿Qué puedo hacer con la capa gratuita de Amazon SQS?

La capa gratuita de Amazon SQS le proporciona un millón de solicitudes al mes sin ningún tipo de costo.

Muchas aplicaciones a pequeña escala pueden operan por completo dentro de los límites de la capa gratuita. Sin embargo, es posible que se apliquen cargos por transferencia. Para obtener más información, consulte los Precios de Amazon SQS.

La capa gratuita es una oferta mensual. El uso gratuito no se acumula de un mes a otro.

P: ¿Se me cobrarán todas las solicitudes de Amazon SQS?

Sí, por todas las solicitudes que estén fuera de los límites de la capa gratuita. Se cobran todas las solicitudes de Amazon SQS, que se facturan de acuerdo con la misma tarifa.

P: ¿Cuestan las operaciones por lotes de Amazon SQS más que otras solicitudes?

No. Todas las operaciones de lotes, incluidas SendMessageBatch, DeleteMessageBatch y ChangeMessageVisibilityBatch, cuestan lo mismo que otras solicitudes de Amazon SQS. Al agrupar mensajes en lotes, puede reducir los costos de Amazon SQS.

P: ¿Cómo se me cobrará y facturará por utilizar Amazon SQS?

Cuando comienza a usar Amazon SQS, no hay cuotas iniciales. A final de mes, se cargará automáticamente en su tarjeta de crédito el uso de ese mes.

Puede ver los cargos del periodo de facturación actual en cualquier momento en el sitio web de AWS:

  1. Inicie sesión en su cuenta de AWS.
  2. En Su cuenta de servicios web, seleccione Actividad de la cuenta.

P: ¿Cómo puedo realizar un seguimiento y administrar los costos asociados con las colas de Amazon SQS?

Puede etiquetar y realizar un seguimiento de las colas para administrar recursos y costos con etiquetas de asignación de costos. Una etiqueta es una marca con metadatos que incluye un par de valores de clave. Por ejemplo, puede etiquetar las colas por centro de costo y luego clasificar y realizar un seguimiento de los costos con base en dichos centros de costo.

Para obtener más información, consulte la sección sobre etiquetado de colas de Amazon SQS en la Guía para desarrolladores Amazon SQS. Para obtener más información acerca del etiquetado de asignación de costos de recursos de AWS, consulte la sección sobre cómo usar etiquetas de asignación de costos en la guía del usuario de administración de costos y facturación de AWS.

P: ¿Los precios incluyen impuestos?

A menos que se indique lo contrario, nuestros precios no incluyen impuestos y aranceles aplicables, como el IVA o el impuesto sobre la venta.

En el caso de los clientes con una dirección de facturación de Japón, el uso de AWS en cualquier región está sujeto al impuesto de consumo nipón. Para más información, consulte las preguntas frecuentes sobre el impuesto de consumo de Amazon Web Services.


P: ¿Puedo utilizar Amazon SQS con otros servicios de AWS?

Sí. Puede hacer que sus aplicaciones sean más flexibles y escalables al combinar Amazon SQS con servicios informáticos como Amazon EC2, Amazon EC2 Container Service (Amazon ECS) y AWS Lambda, además de con servicios de almacenamiento y bases de datos como Amazon Simple Storage Service (Amazon S3) y Amazon DynamoDB.

Un caso de uso común consiste en crear una aplicación distribuida y desacoplada, en la que varios componentes o módulos necesiten comunicarse entre sí pero no pueden procesar la misma cantidad de trabajo simultáneamente. En este caso, las colas de Amazon SQS contienen los mensajes que va a procesar la aplicación de usuario que se encuentra en ejecución en instancias de Amazon EC2.

Las instancias de Amazon EC2 pueden leer la cola de mensajes, procesar el trabajo y, posteriormente, publicar los resultados como mensajes en otra cola de mensajes de Amazon SQS (por ejemplo, para que otra aplicación siga procesándola). Puesto que Amazon EC2 permite ampliar y reducir el volumen de las aplicaciones de forma dinámica, los desarrolladores de aplicaciones pueden modificar fácilmente el número de instancias de computación en función de la cantidad de mensajes de las colas de SQS con Auto Scaling, para garantizar que los trabajos se ejecuten a tiempo.

P: ¿Puede proporcionarme un ejemplo de un caso de uso de Amazon SQS?

A continuación se muestra cómo un sitio web de transcodificación de vídeos utiliza conjuntamente Amazon EC2, Amazon SQS, Amazon S3 y Amazon DynamoDB:

  1. Los usuarios finales envían vídeos para que se transcodifiquen en el sitio web.
  2. Los vídeos se almacenan en Amazon S3 y se coloca un mensaje de solicitud en una cola de Amazon SQS, con un puntero dirigido al vídeo y al formato de vídeo de destino en el mensaje.
  3. El motor de transcodificación, que se ejecuta en un grupo de instancias de Amazon EC2, lee el mensaje de solicitud de la cola de entrada, recupera el vídeo de Amazon S3 utilizando el puntero y transcodifica el vídeo al formato de destino.
  4. El vídeo convertido se vuelve a colocar en Amazon S3 y se coloca otro mensaje de respuesta en otra cola de salida de Amazon SQS con un puntero dirigido al vídeo convertido.
  5. Al mismo tiempo, los metadatos del vídeo (formato, fecha de creación, duración, etc.) se indexan en Amazon DynamoDB para realizar consultas.

Durante este flujo de trabajo, una instancia de Auto Scaling puede monitorizar constantemente la cola de entrada. Dependiendo de la cantidad de mensajes en la cola de entrada, la instancia de Auto Scaling ajusta dinámicamente la cantidad de instancias de Amazon EC2 de transcodificación para satisfacer los requisitos de tiempo de respuesta de los clientes del sitio web.

P: ¿Cómo puedo interactuar con Amazon SQS?

Puede acceder a Amazon SQS mediante la consola de administración de AWS, que le ayudará a crear colas de Amazon SQS y enviar mensajes con facilidad.

Amazon SQS también proporciona una API de servicios web. Está también integrado con los SDK de AWS, lo que le permite trabajar con el lenguaje de programación que prefiera.

P: ¿Qué operaciones están disponibles para las colas de mensajes?

Para obtener información sobre las operaciones para las colas de mensajes, consulte los detalles del producto de Amazon SQS.

P: ¿Quién puede realizar operaciones en una cola de mensajes?

Solo el propietario de una cuenta de AWS (o una cuenta de AWS a la que el propietario haya otorgado derechos) puede realizar operaciones en una cola de mensajes de Amazon SQS.

P: ¿Puedo utilizar Java Message Service (JMS) con Amazon SQS?

Sí. Puede contar con la escala, el bajo costo y la alta disponibilidad de Amazon SQS sin las preocupaciones y los elevados gastos de ejecutar su propio clúster JMS.

Amazon proporciona una biblioteca de mensajes de Java de Amazon SQS que implementa la especificación JMS 1.1 y utiliza Amazon SQS como proveedor de JMS. Para obtener más información, consulte la sección Utilizando JMS con Amazon SQS en la Guía para desarrolladores Amazon SQS.

P: ¿Cómo identifica los mensajes Amazon SQS?

Todos los mensajes disponen de un identificador exclusivo global que Amazon SQS devuelve cuando el mensaje se entrega a la cola de mensajes. El identificador no es necesario para realizar más acciones con el mensaje, pero resulta útil para monitorizar el recibo de un mensaje particular en la cola de mensajes.

Cuando recibe un mensaje de la cola de mensajes, la respuesta incluye un identificador de recepción, que debe proporcionar al eliminar el mensaje.

P: ¿Cómo gestiona Amazon SQS los mensajes que no se procesan correctamente?

En Amazon SQS, puede usar la API o la consola para configurarcolas de mensajes fallidos, que son colas que reciben mensajes de otras colas de origen.

Si crea una cola en una cola de mensajes fallidos, recibe los mensajes después de que no se pueda completar un número máximo de intentos de procesamiento. Puede usar las colas de mensajes fallidos para aislar mensajes que no se pueden procesar para su posterior análisis.

Para obtener más información, consulte "¿Puedo usar una cola de mensajes fallidos con las colas FIFO?". en esta página y en la sección Utilizar las colas de carta muerta de Amazon SQS en la Guía para desarrolladores Amazon SQS.

P: ¿Qué es el tiempo de espera de visibilidad?

El tiempo de espera de visibilidad es un periodo de tiempo durante el que Amazon SQS evita que otros componentes de consumo reciban y procesen un mensaje. Para obtener más información, consulte la sección Tiempo de espera de visibilidad en la Guía para desarrolladores Amazon SQS.

P: ¿De qué forma permite Amazon SQS que varios lectores tengan acceso a la misma cola de mensajes, sin perder mensajes ni procesarlos numerosas veces?

Toda cola Amazon SQS tiene un tiempo de espera de visibilidad configurable. Un mensaje no estará visible a ningún otro lector durante un tiempo designado mientras esté siendo leído en una cola de mensajes. Mientras el tiempo necesario para procesar el mensaje sea inferior al tiempo de espera de visibilidad, todos los mensajes se procesarán y eliminarán.

En caso de que el componente que está procesando el mensaje falle o pase a estar no disponible, el mensaje volverá a estar visible para todo aquel componente que lea la cola de mensajes una vez finalice el tiempo de espera de visibilidad. Esto permite que varios componentes lean mensajes de la misma cola de mensajes, cada uno de ellos procesando mensajes distintos.

P: ¿Cuál es el límite máximo para la visibilidad de los mensajes?

El tiempo de espera de visibilidad máximo para un mensaje de Amazon SQS es de 12 horas.

P: ¿Es Amazon SQS compatible con los metadatos para mensajes?

Sí. Un mensaje de Amazon SQS puede contener hasta 10 atributos de metadatos. Puede usar los atributos de mensajes para separar el cuerpo de un mensaje de los metadatos que lo describen. Esto permite procesar y almacenar información a mayor velocidad y con más inteligencia, ya que sus aplicaciones no tienen que inspeccionar un mensaje entero para saber cómo procesarlo.

Los atributos de los mensajes de Amazon SQS adoptan la forma de atributos triples nombre-tipo-valor. Los tipos compatibles incluyen cadena, binario y número (incluidos integer, punto flotante y doble). Para obtener más información, consulte la sección Utilizando los atributos de mensaje de Amazon SQS en la Guía para desarrolladores Amazon SQS.

P: ¿Cómo puedo determinar el valor de tiempo en cola?

Para determinar el valor de tiempo en cola, puede solicitar el atributo SentTimestamp cuando reciba un mensaje. Al restar dicho valor de los resultados de la hora actual obtendrá el valor de tiempo en cola.

P: ¿Cuál es la latencia típica para Amazon SQS?

Las latencias típicas para las solicitudes a las API SendMessage, ReceiveMessage y DeleteMessage rondan las decenas o los pocos centenares de milisegundos.

P: Para el acceso anónimo, ¿cuál es el valor del atributo SenderId de un mensaje?

Si no está disponible el identificador de una cuenta de AWS (por ejemplo, cuando el remitente de un mensaje es anónimo), Amazon SQS proporciona la dirección IP.

P: ¿Qué son las llamadas selectivas largas de Amazon SQS?

Las llamadas selectivas largas de Amazon SQS constituyen una nueva manera de recuperar mensajes de las colas de Amazon SQS. Mientras que las llamadas selectivas cortas normales se responden inmediatamente, incluso si la cola de mensajes a la que se realiza la llamada está vacía, las llamadas largas de no se responden hasta que llegue un mensaje a la cola de mensajes, o hasta que se agote el tiempo de espera.

Las llamadas selectivas largas hacen que la recuperación de los mensajes de la cola de mensajes de Amazon SQS tan pronto como están disponibles sea asequible. El uso de llamadas selectivas largas puede reducir el costo de uso de SQS, ya que se reduce el número de recepciones vacías. Para obtener más información, consulte la sección Sondeo largo de Amazon SQS en la Guía para desarrolladores Amazon SQS.

P: ¿Se aplican cargos adicionales por utilizar las llamadas selectivas largas de Amazon SQS?

No. Las llamadas selectivas largas ReceiveMessage se facturan con la misma tarifa que las llamadas selectivas cortas ReceiveMessage.

P: ¿Cuándo se deben utilizar las llamadas selectivas largas de Amazon SQS y cuándo las llamadas selectivas cortas de Amazon SQS?

En prácticamente todos los casos, las llamadas selectivas largas de Amazon SQS son preferibles a las cortas. Las solicitudes de llamadas selectivas largas permite que los consumidores de la cola reciban los mensajes en cuanto llegan a la cola, a la vez que se reduce la cantidad de instancias ReceiveMessageResponse vacías recibidas.

Combinadas, las llamadas selectivas largas de Amazon SQS ofrecen un mayor desempeño con un menor costo en la mayoría de los casos de uso. Sin embargo, si su aplicación espera recibir una respuesta inmediata a las llamadas ReceiveMessage, es posible que no pueda utilizar las llamadas selectivas largas sin realizar modificaciones en su aplicación.

Por ejemplo, si su aplicación cuenta con un único hilo que realiza llamadas a varias colas, es posible que no pueda pasar de las llamadas selectivas cortas a las largas, ya que el hilo esperará a que se agote el tiempo de espera de las llamadas selectivas largas en las colas vacías, lo que retrasará el procesamiento de las colas que contienen mensajes.

En tal aplicación, es buena idea usar un único hilo para procesar solo una cola, lo que permite que la aplicación aproveche los beneficios de las llamadas selectivas largas de Amazon SQS.

P: ¿Qué valor debo utilizar para el tiempo de espera de las llamadas selectivas largas?

En general, debería utilizar 20 segundos como máximo para el tiempo de espera de las llamadas selectivas largas. Como los valores superiores de tiempo de espera de las llamadas selectivas largas reducen la cantidad de instancias ReceiveMessageResponse vacías devueltas, intente adoptar un valor lo mayor posible.

Si el valor máximo de 20 segundos no es apto para su aplicación (consulte el ejemplo de la pregunta anterior), configure un tiempo de espera de las llamadas selectivas largas inferior, con 1 segundo como mínimo.

Todos los SDK de AWS utilizan el tiempo de espera de 20 segundos para las llamadas selectivas largas de forma predeterminada. Si no utiliza un SDK de AWS para acceder a Amazon SQS, o si ha configurado el SDK de AWS para que tenga un tiempo de espera más corto, es posible que tenga que modificar el cliente de Amazon SQS para que permita solicitudes más largas o para que use un tiempo de espera de las llamadas selectivas más breve.

P: ¿Qué es AmazonSQSBufferedAsyncClient para Java?

AmazonSQSBufferedAsyncClient para Java proporciona una implementación de la interfaz AmazonSQSAsyncClient y agrega varias características importantes:

  • El agrupamiento automático de solicitudes SendMessage, DeleteMessage o ChangeMessageVisibility en lotes sin realizar cambios a la aplicación
  • La captura previa de mensajes en un búfer local que permite que la aplicación procese inmediatamente mensajes de Amazon SQS sin esperar a que se recuperen

En conjunto, el agrupamiento automático en lotes y la captura previa incrementan el desempeño y disminuyen la latencia de la aplicación, a la par que reducen los costos al realizar menos solicitudes en Amazon SQS. Para obtener más información, consulte la sección Búfer en el lado del cliente y solicitudes por lote en la Guía para desarrolladores Amazon SQS.

En la actualidad, el cliente asíncrono con búfer de Amazon SQS no admite las colas FIFO.

P: ¿Dónde puedo descargar AmazonSQSBufferedAsyncClient para Java?

Puede descargar AmazonSQSBufferedAsyncClient como parte del SDK de AWS para Java.

P: ¿Debo volver a escribir mi aplicación para utilizar AmazonSQSBufferedAsyncClient para Java?

No. AmazonSQSBufferedAsyncClient para Java se implementa como sustituto para el existente AmazonSQSAsyncClient.

Si actualiza su aplicación para que utilice el SDK de AWS más reciente y cambia su cliente para que utilice AmazonSQSBufferedAsyncClient en lugar del AmazonSQSAsyncClient, su aplicación aprovechará los beneficios adicionales del agrupamiento automático en lotes y la captura previa.

P: ¿Cómo puedo suscribir colas de mensajes de Amazon SQS para recibir notificaciones de temas de Amazon SNS?

  1. En la consola de Amazon SQS, seleccione una cola estándar de Amazon SQS.
  2. En Queue Actions, seleccione Suscribir cola a tema SNS del menú desplegable.
  3. En el cuadro de diálogo, seleccione el tema del menú desplegable Elija un tema y haga clic en Suscribir.

Para obtener más información, consulte la sección Suscribir una col a un tema de Amazon SNS en la Guía para desarrolladores Amazon SQS.

P: ¿Cómo puedo distribuir mensajes idénticos en varias colas de Amazon SQS?

  1. Use Amazon SNS para crear un tema.
  2. Cree y suscriba numerosas colas estándar de Amazon SQS al tema de Amazon SNS.
  3. Cuando se envíe un mensaje al tema de Amazon SNS, se distribuirá a la cola de mensajes de Amazon SQS.

Amazon SNS entregará el mismo mensaje a todas las colas de mensajes de Amazon SQS suscritas al mismo tema.

P: ¿Proporciona Amazon SNS entrega al menos una vez para los mensajes enviados a las colas de Amazon SQS?

Amazon SNS está diseñado de manera que cada mensaje se entregue al menos una vez a las colas estándar de Amazon SQS.

P: ¿Puedo eliminar todos los mensajes de una cola de mensajes sin eliminar la propia cola?

Sí. Sí, puede borrar todos los mensajes de una cola de mensajes de Amazon SQS con la acción PurgeQueue.

Cuando elimina una cola de mensajes, todos los mensajes enviados previamente a la cola también se eliminarán. Como la cola de mensajes y sus atributos seguirán existiendo, no es necesario volver a configurar la cola de mensajes; puede seguir usándola.

Para eliminar mensajes específicos, use las acciones DeleteMessage o DeleteMessageBatch.


P: ¿Qué diferencias hay entre una cola estándar y una cola FIFO?

Colas estándar

Capacidad de procesamiento ilimitada: las colas estándar admiten un número casi ilimitado de transacciones por segundo (TPS) para cada acción de la API.

Al menos una entrega: se envía un mensaje al menos una vez, pero ocasionalmente se entrega más de una copia del mensaje.

Ordenamiento de mejor esfuerzo: ocasionalmente, los mensajes pueden entregarse en un orden distinto al que se enviaron.

Colas FIFO

Capacidad de procesamiento alta: de manera predeterminada, las colas FIFO admiten hasta 300 mensajes por segundo (300 operaciones de envío, recepción o eliminación por segundo). Si agrupa 10 mensajes por operación (máximo), las colas FIFO; pueden admitir hasta 3 000 mensajes por segundo. Para solicitar un aumento del límite, presente una solicitud de soporte técnico.

Procesamiento único: un mensaje se envía una vez y permanece disponible hasta que el cliente lo procese y elimine. Los duplicados no se introducen en la cola.

Entrega primero en entrar, primero en salir: se conserva estrictamente el orden en que se envían y reciben los mensajes.

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

Puede usar colas de mensajes estándar en muchos escenarios, siempre que su aplicación pueda procesar los mensajes que llegan más de una vez y fuera de orden, por ejemplo:

  • Para desacoplar solicitudes de usuario en tiempo real de un trabajo en segundo plano intensivo: permite a los usuarios cargar archivos multimedia mientras cambia el tamaño o se codifican.
  • Para asignar tareas a varios nodos de empleado: procesa un alto número de solicitudes de validación de tarjetas de crédito.
  • Para agrupar mensajes para procesarlos más adelante: programa varias entradas para añadirlas a una base de datos.

Las colas FIFO están diseñadas para mejorar la mensajería entre aplicaciones cuando el orden de las operaciones y eventos es crucial, o cuando no se pueden admitir duplicados, por ejemplo:

  • Para garantizar que los comandos introducidos por el usuario se ejecutan en el orden correcto.
  • Para mostrar el precio correcto del producto enviando modificaciones de precios en el orden correcto.
  • Para evitar que un estudiante se inscriba en un curso antes de registrarse para obtener una cuenta.

P: ¿En qué regiones se encuentran disponibles las colas FIFO?

En la actualidad, las colas FIFO están disponibles en las regiones de EE. UU. Oeste (Oregón), EE.UU. Este (Ohio). EE.UU. Este (Norte de Virginia) y la UE (Irlanda). En los próximos meses, esta característica se encontrará disponible en más regiones.

P: ¿Cuántas copias recibiré de un mensaje?

Las colas FIFO están diseñadas para no introducir nunca mensajes duplicados. Sin embargo, su productor de mensajes podría introducir duplicados en determinados escenarios; por ejemplo, si el productor envía un mensaje, no recibe una respuesta, y reenvía el mismo mensaje. Las API de Amazon SQS proporcionan la funcionalidad de anulación de duplicación, que evita que su productor de mensajes envíe duplicados. Cualquier duplicado introducido por el productor de mensajes se elimina en un intervalo de anulación de duplicación de 5 minutos.

Para las colas estándar, es posible que ocasionalmente reciba una copia duplicada de un mensaje (entrega al menos de una vez). Si utiliza una cola estándar, debe diseñar sus aplicaciones de modo que sean idempotentes (es decir, que no se vean afectadas negativamente si se procesa el mismo mensaje más de una vez).

P: ¿Se van a cambiar las colas de Amazon SQS que he utilizado con anterioridad a colas FIFO?

No. Las colas estándar de Amazon SQS (el nuevo nombre para las colas existentes) permanecerán inalteradas, y podrá seguir creando colas estándar. Estas colas seguirán proporcionando la más alta escalabilidad y capacidad de proceso; sin embargo, no tendrá garantizada la ordenación y es posible que se produzcan duplicaciones.

Las colas estándar son adecuadas para muchos escenarios, tales como la distribución del trabajo con varios consumidores idempotentes.

P: ¿Puedo convertir mi cola estándar existente en una cola FIFO?

No. Debe elegir el tipo de cola cuando la crea. Sin embargo, es posible transferir a una cola FIFO. Para obtener más información, consulte la sección Pasar de la cola estándar a la cola FIFO en la Guía para desarrolladores Amazon SQS.

P: ¿Son las colas FIFO SQS compatibles con versiones anteriores?

Para aprovechar las ventajas de la funcionalidad de la cola FIFO, debe utilizar la última versión del SDK de AWS.

Las colas FIFO usan las mismas acciones de API que las colas estándar y los mecanismos para recibir y eliminar mensajes y cambiar el tiempo de espera de visibilidad son las mismas. Sin embargo, al enviar mensajes, debe especificar un identificador de grupo de mensajes. Para obtener más información, consulte la sección Lógica de colas FIFO en la Guía para desarrolladores Amazon SQS.

Importante: no se puede convertir una cola estándar existente en una cola FIFO. Para hacer la transferencia, debe crear una nueva cola FIFO para su aplicación o eliminar su cola estándar existente y volver a crearla como una cola FIFO. Para obtener más información, consulte la sección Pasar de la cola estándar a la cola FIFO en la Guía para desarrolladores Amazon SQS.

P: ¿Con qué servicios de AWS o externos son compatibles las colas FIFO de Amazon SQS?

Es posible que algunos servicios de AWS o externos que envían notificaciones a Amazon SQS no sean compatibles con las colas FIFO, a pesar de permitirle configurar una cola FIFO como destino.

En la actualidad, las siguientes características de servicios de AWS no son compatibles con las colas FIFO:

Para obtener información sobre la compatibilidad de otros servicios con las colas FIFO, consulte la documentación de su servicio.

P: ¿Las colas FIFO de Amazon SQS son compatibles con el cliente asíncrono con búfer de Amazon SQS, la biblioteca de cliente extendida para Java de Amazon SQS o el cliente Java Message Service (JMS) de Amazon SQS?

Actualmente, las colas de FIFO no son compatibles con el cliente asíncrono con búfer de Amazon SQS.

Las colas de FIFO son compatibles con la biblioteca de clientes extendida de Amazon SQS para Java y el cliente Java Message Service (JMS) de Amazon SQS.

P: ¿Qué métricas de CloudWatch de AWS admiten las colas FIFO de Amazon SQS?

Las colas FIFO son compatibles con todas las métricas que admiten las colas estándar. Para las colas FIFO, todas las métricas aproximadas devuelven recuentos precisos. Por ejemplo, admiten las siguientes métricas de CloudWatch de AWS:

  • ApproximateNumberOfMessagesDelayed: el número de mensajes de la cola que se retrasan y no están disponibles para su lectura inmediata.
  • ApproximateNumberOfMessagesVisible: el número de mensajes disponibles para recuperar de la cola.
  • ApproximateNumberOfMessagesNotVisible: el número de mensajes que se encuentran en vuelo (enviados a un cliente pero que todavía no han sido eliminados o no han alcanzado el final de su ventana de visibilidad).

P: ¿Qué son los grupos de mensajes?

Los mensajes se agrupan en una cola FIFO en "paquetes" diferenciados y ordenados. Para cada identificador de grupo de mensajes, todos los mensajes se envían y reciben por riguroso orden. No obstante, es posible que los mensajes con diferentes valores de identificador de grupo de mensajes no se envíen y reciban en orden. Debe asociar un identificador de grupo de mensajes al mensaje. Si no proporciona un identificador de grupo de mensajes, la acción da error.

Si varios hosts (o hilos diferentes en el mismo host) envían mensajes con el mismo identificador de grupo de mensajes a una cola FIFO, Amazon SQS entrega los mensajes en el orden en que llegan para su procesamiento. Para garantizar que Amazon SQS conserve el orden en que se envían y se reciben los mensajes, asegúrese de que varios remitentes envíen cada mensaje con un único identificador de grupo de mensajes.  

P: ¿Son las colas FIFO de Amazon SQS compatibles con varios productores?

Sí. Uno o más productores pueden enviar mensajes a una cola FIFO. Los mensajes se almacenan en el orden en que Amazon SQS los recibe correctamente.

Si varios productores envían mensajes en paralelo, sin esperar la respuesta de éxito de las acciones SendMessage o SendMessageBatch, es posible que no se conserve el orden entre los productores. La respuesta de las acciones SendMessage o SendMessageBatch contiene la secuencia final de ordenación que las colas FIFO utilizan para colocar los mensajes en la cola, por lo que su código productor de múltiples paralelos puede determinar el orden final de los mensajes de la cola.

P: ¿Son las colas FIFO de Amazon SQS compatibles con varios consumidores?

Debido a su diseño, las colas FIFO de Amazon SQS no proveen mensajes desde el mismo grupo de mensajes a más de un consumidor por vez. Sin embargo, si su cola FIFO tiene varios grupos de mensajes, puede aprovechar los consumidores paralelos, lo que le permite a Amazon SQS proveer mensajes desde diferentes grupos de mensajes a diferentes consumidores.

P: ¿Puedo usar una cola de mensajes fallidos con las colas FIFO?

Sí. Sin embargo, con una cola FIFO debe usar una cola FIFO de mensajes fallidos. (Igualmente, solo puede usar una cola estándar de mensajes fallidos con una cola estándar).

P: ¿Cuál es el límite de capacidad de proceso en una cola FIFO de Amazon SQS?

Sin la agrupación en lotes, las colas FIFO pueden admitir hasta 300 mensajes por segundo (300 operaciones SendMessage, ReceiveMessage o DeleteMessage por segundo). Si utiliza la agrupación en lotes máxima de 10 mensajes por operación, las colas FIFO pueden admitir hasta 3 000 mensajes por segundo. Las colas estándar de Amazon SQS tienen capacidad de proceso sin límites.

P: ¿Existe algún límite específico para los atributos de cola FIFO?

El nombre de una cola FIFO debe finalizar con el sufijo .fifo. El sufijo se cuenta en el límite del nombre de la cola de 80 caracteres. Para determinar si una cola es FIFO, puede comprobar si el nombre de la cola acaba con el sufijo.


P: ¿Qué fiabilidad ofrece el almacenamiento de mis datos en Amazon SQS?

Amazon SQS almacena todas las colas de mensajes y mensajes en una sola región de AWS de alta disponibilidad con numerosas zonas de disponibilidad (AZ) redundantes, de forma que si se produce un fallo en un equipo, red o zona de disponibilidad, siga pudiendo acceder a los mensajes. Para obtener más información, consulte la sección Regiones y zonas de disponibilidad en la Guía del usuario de Amazon Relational Database Service.

P: ¿Cómo puedo proteger los mensajes que se encuentran en mis colas de mensajes?

Se ofrecen mecanismos de autenticación para garantizar que los mensajes almacenados en colas de mensajes de Amazon SQS estén protegidos frente a accesos no autorizados. Usted controla quién puede enviar mensajes a la cola de mensajes o recibirlos de ella. Para aumentar la seguridad, puede crear su aplicación de modo que cifre los mensajes antes de colocarlos en una cola de mensajes.

Amazon SQS cuenta con su propio sistema de permisos basados en recursos que utiliza políticas escritas en el mismo lenguaje que las políticas de AWS Identity and Access Management (IAM). Por ejemplo, puede usar variables, al igual que en las políticas de IAM. Para obtener más información, consulte la sección Ejemplos de la política de Amazon SQS en la Guía para desarrolladores Amazon SQS.

Amazon SQS es compatible con los protocolos HTTP sobre SSL (HTTPS) y seguridad de la capa de transporte (TLS). La mayoría de los clientes pueden utilizar automáticamente versiones nuevas de TLS sin cambiar el código o la configuración. Amazon SQS es compatible con las versiones 1.0, 1.1 y 1.2 del protocolo de seguridad de la capa de transporte (TLS) en todas las regiones.

P: ¿Por qué hay operaciones ReceiveMessage y DeleteMessage independientes?

Cuando Amazon SQS le devuelve un mensaje, este permanece en la cola de mensajes, con independencia de si usted lo ha recibido o no. Es usted responsable de eliminar el mensaje; la solicitud de eliminación reconoce que ha terminado de procesarlo.

Si no lo elimina, Amazon SQS volverá a enviarlo cuando reciba una nueva solicitud de recepción. Para obtener más información, consulte la sección Tiempo de espera de visibilidad en la Guía para desarrolladores Amazon SQS.

P: ¿Puede recibirse de nuevo un mensaje eliminado?

No. Las colas FIFO nunca introducen mensajes duplicados.

En el caso de colas estándar, en ciertos casos poco probables, es posible que reciba por segunda vez un mensaje eliminado anteriormente. Podría suceder en la improbable situación de que una operación DeleteMessage no elimine todas las copias de un mensaje porque uno de los servidores del sistema Amazon SQS distribuido no esté disponible en el momento de realizar la eliminación. Esa copia del mensaje podrá entregarse de nuevo. Si utiliza colas estándar, diseñe su aplicación de modo que sea idempotente (es decir, que no se produzcan errores o incoherencias si recibe por segunda vez un mensaje eliminado).

P: ¿Qué sucede si emito una solicitud DeleteMessage para un mensaje eliminado anteriormente?

Cuando emite una solicitud DeleteMessage para un mensaje eliminado anteriormente, Amazon SQS le envía una respuesta de éxito.


P: ¿Cuáles son los beneficios del cifrado del lado del servidor (SSE) para Amazon SQS?

El cifrado del lado del servidor (SSE) le permite transferir información confidencial en colas cifradas. El SSE protege el contenido de los mensajes de las colas de Amazon SQS con claves administradas en AWS Key Management Service (AWS KMS). El SSE cifra los mensajes tan pronto como Amazon SQS los recibe. Los mensajes se almacenan de manera cifrada y Amazon SQS los descifra únicamente cuando se envían a un consumidor autorizado.

AWS KMS combina hardware y software seguros y de alta disponibilidad para ofrecer un sistema de administración de claves con escala ajustada para la nube.

A continuación se describen los beneficios de usar AWS KMS:

  • Puede crear y administrar usted mismo claves maestras de clientes (CMK).
  • También puede usar la CMK administrada por AWS para Amazon SQS, que es única para cada cuenta y región. 
  • Los estándares de seguridad de AWS KMS lo ayudan a cumplir requisitos de conformidad relacionados con el cifrado.

Para obtener más información, consulte los siguientes recursos:

P: ¿En qué regiones se encuentran disponibles colas con SSE?

El SSE para Amazon SQS está disponible en las regiones EE.UU. Este (Norte de Virginia y Ohio) y EE.UU. Oeste (Oregón). En los próximos meses, esta característica se encontrará disponible en más regiones.

P: ¿Cómo puedo habilitar el SSE para una cola de Amazon SQS nueva o existente?

Si desea habilitar el SSE para una cola nueva o existente con la API de Amazon SQS, especifique el ID de la clave maestra de cliente (CMK): el alias, el ARN alias, el ID de la clave o el ARN de la clave de una CMK administrada por AWS o una CMK personalizada mediante la configuración del atributo KmsMasterKeyId de la acción CreateQueue o SetQueueAttributes.

Para obtener instrucciones detalladas, Consulte Creación de una cola de Amazon SQS con cifrado del lado del servidor y Configuración de cifrado del lado del servidor (SSE) para una cola de Amazon SQS existente en la Guía para desarrolladores de Amazon SQS.

P: ¿Qué tipos de colas de Amazon SQS pueden usar el SSE?

Las colas estándar y FIFO son compatibles con el SSE.

P: ¿Qué permisos necesito para usar el SSE con Amazon SQS?

Antes de poder usar el SSE, debe configurar las políticas de claves de AWS KMS para permitir el cifrado de colas, y el cifrado y descifrado de mensajes.

Para habilitar el SSE para una cola, puede usar la clave maestra de cliente (CMK) administrada por AWS para Amazon SQS o una CMK personalizada. Para obtener más información, consulte Claves maestras de clientes en la Guía para desarrolladores de AWS KMS.

Para enviar mensajes a una cola cifrada, el autor debe tener los permisos kms:GenerateDataKey y kms:Decrypt para la CMK.

Para recibir mensajes de una cola cifrada, el consumidor debe tener el permiso kms:Decrypt para cualquier CMK que se utilice para cifrar los mensajes en la cola especificada. Si la cola funciona como una cola de mensajes fallidos, el consumidor también debe tener el permiso kms:Decrypt para cualquier CMK que se utilice para cifrar los mensajes en la cola fuente.

Para obtener más información, consulte ¿Qué permisos necesito para usar el SSE? en la Guía para desarrolladores de Amazon SQS.

P: ¿Se aplican cargos por el uso del SSE con Amazon SQS?

No se aplican cargos adicionales de Amazon SQS. Sin embargo, sí se aplican cargos por las llamadas desde Amazon SQS hacia AWS KMS. Para obtener más información, consulte Precios de AWS Key Management Service.

Los cargos por el uso de AWS KMS dependen del período de reutilización de claves de datos configurado para sus colas. Para obtener más información, consulte ¿Cómo calculo los costos de uso de AWS KMS? en la Guía para desarrolladores de Amazon SQS.

P: ¿Qué elementos cifra el SSE para Amazon SQS y de qué manera lo hace?

El SSE cifra el cuerpo de un mensaje en una cola de Amazon SQS.

El SSE no cifra los siguientes componentes:

  • Metadatos de la cola (atributos y nombre de la cola)
  • Metadatos del mensaje (ID de mensaje, marca de tiempo y atributos)
  • Métricas anteriores a la cola

Amazon SQS genera claves de datos basadas en la clave maestra de cliente (CMK) para Amazon SQS administrada por AWS o una CMK personalizada para brindar cifrado de sobres y descifrado de mensajes para un período de tiempo configurable (de 1 minuto a 24 horas).

P: ¿Qué algoritmo usa el SSE para Amazon SQS para cifrar mensajes?

SSE usa el algoritmo AES-GCM 256.

P: ¿El SSE afecta el funcionamiento de Amazon SQS?

El cifrado de un mensaje evita que usuarios no autorizados o anónimos accedan a su contenido. El cifrado de mensajes no afecta el funcionamiento normal de Amazon SQS:

  • Un mensaje se cifra únicamente si se envía con posterioridad a la habilitación del cifrado de una cola. Amazon SQS no cifra mensajes de trabajos pendientes.
  • Cualquier mensaje cifrado permanece en dicho estado aunque el cifrado de su cola esté deshabilitado.

P: ¿Cómo logran coexistir las colas de Amazon SQS cifradas con colas no cifradas y con colas de mensajes fallidos?

Mover un mensaje a una cola de mensaje fallido no afecta su cifrado:

  • Si mueve un mensaje desde una cola fuente cifrada a una cola de mensaje fallido no cifrada, el mensaje permanecerá cifrado.
  • Si mueve un mensaje desde una cola fuente no cifrada a una cola de mensaje fallido cifrada, el mensaje permanecerá no cifrado.

P: ¿El SSE limita las transacciones por segundo (TPS) o el número de colas que se puede crear con Amazon SQS?

El SSE no limita el rendimiento (TPS) de Amazon SQS. El número de colas con SSE que puede crear está limitado por:

  • El período de reutilización de claves de datos (1 minuto a 24 horas).
  • El límite por cuenta de AWS KMS (100 TPS de manera predeterminada).
  • El número de cuentas o usuarios de IAM que accede a las colas.
  • La existencia de un trabajo pendiente grande (un trabajo pendiente de mayor tamaño requiere más llamadas a AWS KMS).

Por ejemplo, supongamos los siguientes límites:

  • Usted define el período de reutilización de claves de datos en 5 minutos (300 segundos).
  • Su cuenta de KMS tiene un límite predeterminado de TPS de AWS KMS de 100 TPS.
  • Usted utiliza una cola de Amazon SQS sin un trabajo pendiente y con 1 usuario de IAM para acciones SendMessage o ReceiveMessage en todas las colas.

En este caso, puede calcular el máximo teórico de colas de Amazon SQS con SSE de la siguiente manera:

300 segundos × 100 TPS/1 usuario de IAM = 30 000 colas

P: ¿Cómo puedo calcular los costos de uso de AWS KMS?

Para predecir los costos y comprender mejor su factura de AWS, debería saber con qué frecuencia Amazon SQS utiliza su CMK.

Aviso: Si bien la siguiente fórmula puede brindarle una muy buena idea de los costos esperados, los costos reales podrían ser más elevados debido a la naturaleza distribuida de Amazon SQS.

Para calcular el número de solicitudes de API por cola (S), utilice la siguiente fórmula:

S = F/D * (2 * P + C)

F es el período de facturación (en segundos)

D es el período de reutilización de claves de datos (en segundos)

P es el número de principales de producción que envían a la cola de Amazon SQS.

C es el número de principales de consumo que reciben desde la cola de Amazon SQS.

Importante: En general, los principales de producción generan el doble del costo que los principales de consumo. Para obtener más información, consulte ¿Cómo funciona el período de reutilización de claves de datos? en la Guía para desarrolladores de Amazon SQS.

Si el autor y el consumidor tienen diferentes usuarios de IAM, el costo aumenta.

Para ver cálculos de ejemplo, consulte ¿Cómo calculo los costos de uso de la clave maestra de cliente (CMK)? en la Guía para desarrolladores de Amazon SQS. Para obtener información de precios precisa, consulte Precios de AWS KMS.


P: ¿Está Amazon SQS certificado para PCI DSS?

Sí. Amazon SQS dispone de la certificación PCI DSS Nivel 1. Para obtener más información, consulte Conformidad PCI.

P: ¿Amazon SQS es compatible con HIPAA?

Sí, AWS amplió su programa de conformidad con HIPAA para incluir Amazon SQS como un servicio compatible con HIPAA. Si tiene un acuerdo de socio empresarial (BAA) con AWS, puede usar Amazon SQS para crear aplicaciones en conformidad con HIPAA, almacenar mensajes en tránsito y transmitir mensajes, incluidos aquellos que contengan información sanitaria protegida (PHI).

Si ya cuenta con un BAA con AWS, puede empezar a usar Amazon SQS inmediatamente. Si no tiene un BAA o si tiene otras preguntas acerca del uso de AWS en sus aplicaciones en conformidad con HIPAA, contacte con nosotros para obtener más información.

Aviso: Si prefiere no transmitir PHI mediante Amazon SQS (o si tiene mensajes cuyo peso sea mayor que 256 KB), como alternativa, puede enviar cargas de mensajes de Amazon SQS a través de Amazon S3 con la biblioteca de clientes extendida de Amazon SQS para Java (Amazon S3 es un servicio compatible con HIPAA, excepto el uso de Amazon S3 Transfer Acceleration). Para obtener más información, consulte la sección Utilizar la biblioteca de clientes extendida de Amazon SQS para Java en la Guía para desarrolladores Amazon SQS.


P: ¿Durante cuánto tiempo puedo conservar mis mensajes en colas de mensajes de Amazon SQS?

La prolongación de la retención de mensajes ofrece mayor flexibilidad y mayores intervalos entre la producción y el consumo de los mensajes.

Puede configurar el periodo de retención de mensajes de Amazon SQS en un valor que vaya de 1 minuto a 14 días. El valor predeterminado es 4 días. Una vez alcanzado el límite de retención de mensajes, estos se eliminarán automáticamente.

P: ¿Cómo configuro Amazon SQS para que admita una retención de mensajes más larga?

Para configurar el período de retención de mensajes, defina el atributo MessageRetentionPeriod con la consola o el método Distributiveness. Use este atributo para especificar la cantidad de segundos que un mensaje se retendrá en Amazon SQS.

Puede usar el atributo MessageRetentionPeriod para configurar el periodo de retención de 60 segundos (1 minuto) a 1 209 600 segundos (14 días). Para obtener más información sobre cómo trabajar con este atributo de mensajes, consulte la Referencia sobre la API de Amazon SQS.

P: ¿Cómo configuro el tamaño máximo de mensaje de Amazon SQS?

Para configurar el tamaño máximo de mensaje, use la consola o el método SetQueueAttributes para configurar el atributo MaximumMessageSize. Este atributo especifica el límite del número de bytes que puede contener un mensaje de Amazon SQS. Configure el límite en un valor entre 1 024 bytes (1 KB) y 262 144 bytes (256 KB). Para obtener más información, consulte la sección Utilizar los atributos de mensaje de Amazon SQS en la Guía para desarrolladores Amazon SQS.

Para enviar mensajes que superen los 256 KB, use la biblioteca de clientes extendida de Amazon SQS para Java. Esta biblioteca le permite enviar un mensaje de Amazon SQS que contenga una referencia a una carga de mensajes de Amazon S3 que puede tener un tamaño de hasta 2 GB. 

P: ¿Qué tipos de datos puedo incluir en un mensaje?

Los mensajes de Amazon SQS pueden contener un máximo de 256 KB de datos de texto, incluidos XML, JSON y texto sin formato. Se aceptan los siguientes caracteres Unicode:

#x9 | #xA | #xD | [#x20 a #xD7FF] | [#xE000 a #xFFFD] | [#x10000 a #x10FFFF]

Para obtener más información, consulte la Especificación XML 1.0.

P: ¿Qué tamaño pueden alcanzar las colas de mensajes de Amazon SQS?

Una sola cola de mensajes de Amazon SQS puede contener una cantidad ilimitada de mensajes. Sin embargo, el número de mensajes que se encuentran en proceso está limitado a 120 000 para las colas estándar y a 20 000 para las colas FIFO. Los mensajes se encuentran en proceso cuando se han recibido de la cola por un componente de consumo, pero no se han eliminado de esta.

P: ¿Cuántas colas de mensajes puedo crear?

Puede crear cualquier cantidad de colas de mensajes.

¿Existen límites de tamaño en el nombre de una cola de mensajes de Amazon SQS?

Los nombres de cola están limitados a 80 caracteres.

P: ¿Existen restricciones en lo que respecta al nombre de las colas de mensajes de Amazon SQS?

Puede usar caracteres alfanuméricos, guiones (-) y guiones bajos (_).

P: ¿Puedo volver a utilizar el nombre de una cola de mensajes?

El nombre de una cola de mensajes debe ser único en la cuenta y región de AWS. Si elimina una cola de mensajes, podrá volver a utilizar su nombre.


P: ¿Cómo puedo compartir una cola de mensajes?

Puede asociar un enunciado de política de acceso (y especificar los permisos concedidos) con la cola de mensajes que desea compartir. Amazon SQS proporciona API para la creación y la administración de enunciados de políticas de acceso:

  • AddPermission
  • RemovePermission
  • SetQueueAttributes
  • GetQueueAttributes

Para obtener más información, consulte la Referencia de la API de Amazon SQS.

P: ¿Quién paga el acceso compartido a la cola?

El propietario de la cola de mensajes es quien paga el acceso compartido a la cola.

P: ¿Cómo puedo identificar a otro usuario de AWS con el que deseo compartir una cola de mensajes?

La API de Amazon SQS utiliza el número de cuenta de AWS para identificar a los usuarios de AWS.

P: ¿Qué debo proporcionar a un usuario de AWS con el que deseo compartir una cola de mensajes?

Para compartir una cola de mensajes con un usuario de AWS, proporcione la dirección URL completa de la cola de mensajes que desea compartir. Las operaciones CreateQueue y ListQueues devuelven esta dirección URL en sus respuestas.

P: ¿Admite Amazon SQS el acceso anónimo?

Sí. Puede configurar una política de acceso que admita que usuarios anónimos accedan a una cola de mensajes.

P: ¿Cuándo debo utilizar la API de permisos?

La API de permisos constituye una interfaz para compartir el acceso a una cola de mensajes con los desarrolladores. Sin embargo, esta API no puede permitir el acceso condicional ni admite casos de uso más avanzados.

P: ¿Cuándo debería utilizar la operación SetQueueAttributes con objetos JSON?

La operación SetQueueAttributes admite el lenguaje de la política de acceso completo. Por ejemplo, puede usar el lenguaje de la política para restringir el acceso a una cola de mensajes por dirección IP y hora del día. Para obtener más información, consulte la sección Ejemplos de la política de Amazon SQS en la Guía para desarrolladores Amazon SQS.


P: ¿En qué regiones está disponible Amazon SQS?

Para obtener información sobre la disponibilidad de los servicios en las regiones, consulte la Tabla de regiones de la infraestructura global de AWS.
Nota: Actualmente, las colas FIFO están disponibles únicamente en las regiones EE.UU. Oeste (Oregón), EE.UU. Este (Ohio). EE.UU. Este (Norte de Virginia) y UE (Irlanda). En los próximos meses, esta característica se encontrará disponible en más regiones.

P: ¿Puedo compartir mensajes entre colas en distintas regiones?

No. Cada cola de mensajes de Amazon SQS es independiente en cada región.

P: ¿Existen diferencias de precios entre las regiones?

Los precios de Amazon SQS son los mismos en todas las regiones, excepto China (Pekín). Para obtener más información, consulte los Precios de Amazon SQS.

P: ¿Cuál es la estructura de precios en las diversas regiones?

Puede transferir datos entre Amazon SQS y Amazon EC2 o AWS Lambda dentro de una región sin cargos.

Si transfiere datos entre Amazon SQS y Amazon EC2 o AWS Lambda en regiones distintas, se le cobrarán las tarifas estándar de transferencia de datos. Para obtener más información, consulte los Precios de Amazon SQS.