- Productos›
- Integración de aplicaciones›
- Amazon SQS›
- Preguntas frecuentes sobre Amazon SQS
Preguntas frecuentes sobre Amazon SQS
Temas de la página
Información generalInformación general
¿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.
¿En qué se diferencia Amazon SQS de Amazon Simple Notification Service (SNS)?
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.
¿En qué se diferencia Amazon SQS de Amazon MQ?
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.
¿Amazon SQS proporciona 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 de 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.
¿Amazon SQS garantiza 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.
¿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.
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).
Para obtener más información, consulte la documentación de Amazon Kinesis.
¿Amazon usa 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 clave de Amazon.com y AWS utilizan Amazon SQS.
Facturación
¿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 por transferencia de datos correspondientes por los datos que se transfieren fuera de Amazon SQS (a menos que se transfieran a instancias de Amazon Elastic Compute Cloud (EC2) 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.
¿Qué puedo hacer con el nivel gratuito 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 funcionar por completo dentro de los límites del nivel gratuito. Sin embargo, es posible que se apliquen cargos por transferencia de datos. Para obtener más información, consulte la sección Precios de Amazon SQS.
El nivel gratuito es una oferta mensual. El uso gratuito no se acumula de un mes a otro.
¿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.
¿Las operaciones por lotes de Amazon SQS cuestan más que otras solicitudes?
No. Todas las operaciones de lotes (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.
¿Cómo se cobra y factura el uso de 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:
- Inicie sesión en su cuenta de AWS.
- En Su cuenta de servicios web, seleccione Actividad de la cuenta.
¿Cómo puedo controlar 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 el tema sobre etiquetado de colas de Amazon SQS en la Guía para desarrolladores de Amazon SQS. Para obtener más información sobre el etiquetado de asignación de costos de recursos de AWS, consulte Uso de etiquetas de asignación de costos en la Guía del usuario de administración de costos y facturación de AWS.
¿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 obtener más información, consulte las preguntas frecuentes sobre el impuesto al consumo de Amazon Web Services.
Características, funcionalidades e interfaces
¿Puedo utilizar Amazon SQS con otros servicios de AWS?
Sí. Puede aumentar el nivel de flexibilidad y escalabilidad de sus aplicaciones al combinar Amazon SQS con servicios informáticos como Amazon EC2, Amazon Elastic Container Service (ECS) y AWS Lambda, además de con servicios de bases de datos y almacenamiento como Amazon Simple Storage Service (Amazon S3) y Amazon DynamoDB.
¿Cómo puedo interactuar con Amazon SQS?
Puede tener acceso a Amazon SQS mediante la consola de administración de AWS, que lo ayudará a crear colas de Amazon SQS y enviar mensajes con facilidad.
Amazon SQS también proporciona una API de servicios web. También está integrado con los SDK de AWS, lo que le permite trabajar con el lenguaje de programación que prefiera.
¿Qué acciones de API están disponibles para Amazon SQS?
Para obtener información sobre las operaciones para las colas de mensajes, consulte la Referencia de la API de Amazon SQS.
¿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.
¿Puedo utilizar el servicio de mensajes de Java (JMS) con Amazon SQS?
Sí. Puede aprovechar 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 de JMS.
Amazon proporciona la biblioteca de mensajería 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 Uso de JMS y Amazon SQS en la Guía para desarrolladores de Amazon SQS.
¿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.
Para obtener más información, consulte Identificadores de colas y mensajes en la Guía para desarrolladores de Amazon SQS.
¿Cómo maneja Amazon SQS los mensajes que no se pueden procesar?
En Amazon SQS, puede usar la API o la consola para configurar colas de mensajes fallidos, que reciben mensajes de otras colas de origen. Al configurar una cola de mensajes fallidos, tiene que establecer los permisos adecuados para la redirección de dicha cola con RedriveAllowPolicy.
RedriveAllowPolicy incluye los parámetros del permiso de redirección de la cola de mensajes fallidos. Define qué colas de origen pueden especificar colas de mensajes fallidos como un objeto JSON.
Una vez creada la 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 Uso de las colas de mensajes fallidos de Amazon SQS en la guía para desarrolladores de Amazon SQS.
¿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 Tiempo de espera de visibilidad en la Guía para desarrolladores de Amazon SQS.
¿Amazon SQS es 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 Uso de los atributos de mensajes de Amazon SQS en la Guía para desarrolladores de Amazon SQS.
¿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.
¿Cuál es la latencia normal 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.
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.
¿Qué es el sondeo largo de Amazon SQS?
El sondeo largo de Amazon SQS constituye 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.
El sondeo largo hace 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 del sondeo largo 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 Sondeo largo de Amazon SQS en la Guía para desarrolladores de Amazon SQS.
¿Se aplican cargos adicionales por utilizar el sondeo largo de Amazon SQS?
No. Las llamadas ReceiveMessage de sondeo largo se facturan con la misma tarifa que las llamadas ReceiveMessage de sondeo corto.
¿Cuándo se debe utilizar el sondeo largo de Amazon SQS y cuándo el sondeo corto de Amazon SQS?
En prácticamente todos los casos, el sondeo largo de Amazon SQS es preferible al sondeo corto. 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.
En conjunto, el sondeo largo de Amazon SQS ofrece 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.
¿Qué valor debo utilizar para el tiempo de espera del sondeo largo?
En general, debería utilizar 20 segundos como máximo para el tiempo de espera del sondeo largo. 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 el sondeo largo 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.
¿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 Habilitación del almacenamiento en búfer del lado del cliente y del agrupamiento en lotes de solicitudes en la Guía para desarrolladores de Amazon SQS.
¿Dónde puedo descargar AmazonSQSBufferedAsyncClient para Java?
Puede descargar AmazonSQSBufferedAsyncClient como parte del AWS SDK para Java.
¿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.
¿Cómo puedo suscribir colas de mensajes de Amazon SQS para recibir notificaciones de temas de Amazon SNS?
- En la consola de Amazon SQS, seleccione una cola estándar de Amazon SQS.
- En Queue Actions, seleccione Suscribir cola a tema SNS del menú desplegable.
- 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 Suscripción de una cola de Amazon SQS a un tema de Amazon SNS en la Guía para desarrolladores de Amazon SQS.
¿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.
Para obtener más información, consulte el tutorial: Depuración de mensajes de una cola de Amazon SQS.
Colas FIFO
¿En qué regiones se encuentran disponibles las colas FIFO?
Las colas FIFO están disponibles en todas las regiones de AWS donde Amazon SQS está disponible. Haga clic aquí para consultar la disponibilidad de Amazon SQS por región.
¿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).
Para obtener más información, consulte Procesamiento único en la Guía para desarrolladores de Amazon SQS.
¿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.
¿Puedo convertir mi cola estándar existente en una cola FIFO?
No. Debe elegir el tipo de cola al crearlo. Sin embargo, es posible transferir a una cola FIFO. Para obtener más información, consulte Pasar de una cola estándar a una cola FIFO en la Guía para desarrolladores de Amazon SQS.
¿Las colas FIFO de Amazon SQS son 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 de Amazon SQS.
¿Qué métricas de AWS CloudWatch 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).
¿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 ID de grupo de mensajes no se envíen y reciban en orden. Debe asociar un ID 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.
Para obtener más información, consulte la sección Lógica de colas FIFO en la Guía para desarrolladores de Amazon SQS.
¿Las colas FIFO de Amazon SQS son 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.
¿Las colas FIFO de Amazon SQS son 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.
¿Cuál es la cuota de rendimiento en una cola FIFO de Amazon SQS?
De manera predeterminada, las colas FIFO admiten hasta 3000 mensajes por segundo con agrupación por lotes o hasta 300 mensajes por segundo (300 operaciones de envío, recepción o eliminación por segundo) sin agrupación por lotes. Si necesita un rendimiento mayor, puede habilitar el modo de alto rendimiento para FIFO en la consola de Amazon SQS, que ofrece compatibilidad con hasta 70 000 mensajes por segundo con agrupación por lotes e incluso más con agrupación por lotes. Para obtener un desglose detallado de las cuotas del modo de alto rendimiento de FIFO por región, consulte la documentación de AWS.
¿Existe algún límite específico para los atributos de colas FIFO?
El nombre de una cola FIFO debe finalizar con el sufijo .fifo. El sufijo cuenta para 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.
Seguridad y fiabilidad
¿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 Regiones y zonas de disponibilidad en la Guía del usuario de Amazon Relational Database Service.
¿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 Ejemplos de políticas de Amazon SQS en la Guía para desarrolladores de 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.
¿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 Tiempo de espera de visibilidad en la Guía para desarrolladores de Amazon SQS.
¿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.
¿Qué sucede si emito una solicitud DeleteMessage para un mensaje eliminado anteriormente?
Cuando se emite una solicitud DeleteMessage para un mensaje eliminado anteriormente, Amazon SQS devuelve una respuesta de resultado satisfactorio.
Cifrado del lado del servidor (SSE)
¿Cuáles son los beneficios del SSE para Amazon SQS?
El SSE le permite transferir información confidencial en colas cifradas. Proteja el contenido de los mensajes en 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.
Para obtener más información, consulte Protección de datos con cifrado del lado del servidor (SSE) y AWS KMS en la Guía para desarrolladores de Amazon SQS.
¿Puedo usar SNS, CloudWatch Events y S3 Events con colas cifradas?
Sí. Para hacerlo, necesita activar la compatibilidad entre servicios de AWS (p. ej., Amazon CloudWatch Events, Amazon S3 y Amazon SNS) y las colas con SSE. Si desea leer instrucciones detalladas, consulte la sección de compatibilidad de la Guía para desarrolladores de SQS.
¿En qué regiones se encuentran disponibles colas con SSE?
El cifrado del lado del servidor para Amazon SQS se encuentra disponible en todas las regiones de AWS en las que está disponible Amazon SQS. Haga clic aquí para consultar la disponibilidad de Amazon SQS por región.
¿Cómo habilito el SSE para una cola de Amazon SQS nueva o existente?
Si desea habilitar el SSE para una cola nueva o una existente con la API de Amazon SQS, especifique el ID de la clave maestra de cliente (CMK): el alias, ARN del 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 servidor (SSE) para una cola de Amazon SQS existente en la Guía para desarrolladores de Amazon SQS.
¿Qué tipos de colas de Amazon SQS pueden usar el SSE?
Las colas estándar y FIFO son compatibles con el SSE.
¿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 cliente 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 de origen.
Para obtener más información, consulte ¿Qué permisos necesito para usar SSE? en la Guía para desarrolladores de Amazon SQS.
¿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 periodo de reutilización de claves de datos configurado para sus colas. Para obtener más información, consulte ¿Cómo puedo calcular mis costos de uso de AWS KMS? en la Guía para desarrolladores de Amazon SQS.
¿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 temporal 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 sobre y descifrado de mensajes para un periodo de tiempo configurable (de 1 minuto a 24 horas).
Para obtener más información, consulte ¿Qué elementos cifra el SSE para Amazon SQS? en la Guía para desarrolladores de Amazon SQS.
¿Qué algoritmo usa el SSE para Amazon SQS para cifrar mensajes?
El SSE usa el algoritmo AES-GCM 256.
¿El SSE limita las transacciones por segundo (TPS) o el número de colas que se pueden 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 periodo de reutilización de la clave de datos (de 1 minuto a 24 horas).
- La cuota por cuenta de AWS KMS (100 TPS de forma 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, imaginemos el siguiente caso:
- Usted define el período de reutilización de claves de datos en 5 minutos (300 segundos).
- Su cuenta de KMS tiene una cuota predeterminada de TPS de AWS KMS de 100 TPS.
- Usted utiliza una cola de Amazon SQS sin una lista de tareas pendientes y con 1 usuario de IAM para las 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
¿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.
Nota: 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 periodo de facturación (en segundos)
D es el periodo de reutilización de claves de datos (en segundos)
P es el número de entidades principales de producción que envían a la cola de Amazon SQS.
C es el número de entidades principales de consumo que reciben desde la cola de Amazon SQS.
Importante: En general, las entidades principales de producción generan el doble del costo que las entidades principales de consumo. Para obtener más información, consulte ¿Cómo funciona el periodo de reutilización de la clave 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 obtener más información, consulte ¿Cómo puedo calcular mis costos de uso de AWS KMS? en la Guía para desarrolladores de Amazon SQS.
Conformidad
¿Amazon SQS cuenta con la certificación de PCI DSS?
Sí. Amazon SQS dispone de la certificación PCI DSS Nivel 1. Para obtener más información, consulte Conformidad con PCI.
¿Amazon SQS cumple los requisitos de 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.
Nota: Si prefiere no transmitir PHI mediante Amazon SQS (o si tiene mensajes cuyo peso sea mayor que 256 KB), también puede enviar cargas de mensajes de Amazon SQS a través de Amazon S3 con la biblioteca de clientes ampliada de Amazon SQS para Java (Amazon S3 es un servicio que cumple con los requisitos de HIPAA, excepto el uso de Amazon S3 Transfer Acceleration). Para obtener más información, consulte Utilizar la biblioteca de clientes ampliada de Amazon SQS para Java en la Guía para desarrolladores de Amazon SQS.
Límites y restricciones
¿Durante cuánto tiempo puedo conservar mis mensajes en las 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.
¿Cómo configuro Amazon SQS para que admita una retención de mensajes más prolongada?
Para configurar el periodo 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 los mensajes, consulte la Referencia sobre la API de Amazon SQS.
¿Cómo configuro el tamaño máximo de mensaje en Amazon SQS?
Para configurar el tamaño de mensaje máximo, use la consola o el método SetQueueAttributes para configurar el atributo MaximumMessageSize. Este atributo especifica el número de bytes que puede tener un mensaje de Amazon SQS. Configure el atributo entre 1024 bytes (1 KB) y 262 144 bytes (256 KB). Para obtener más información, consulte Uso de los atributos de mensajes de Amazon SQS en la Guía para desarrolladores de Amazon SQS.
Para enviar mensajes que superen los 256 KB, use la biblioteca de clientes ampliada 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.
¿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.
¿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 en tránsito para las colas estándar está limitado a una cuota de 120 000 y de 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.
¿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.
¿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 (_).
¿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.
Uso compartido de una cola
¿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.
¿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.
¿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.
¿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.
¿Amazon SQS admite el acceso anónimo?
Sí. Puede configurar una política de acceso que admita que usuarios anónimos accedan a una cola de mensajes.
¿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.
¿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 Ejemplos de políticas de Amazon SQS en la Guía para desarrolladores de Amazon SQS.
Acceso al servicio y regiones
¿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.
¿Puedo compartir mensajes entre colas en distintas regiones?
No. Cada cola de mensajes de Amazon SQS es independiente en cada región.
¿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 la página Precios de Amazon SQS.
¿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 la página Precios de Amazon SQS.
Colas de mensajes fallidos
¿Qué son las colas de mensajes fallidos?
Una cola de mensajes fallidos es una cola de Amazon SQS a la cual una cola de origen puede enviar mensajes si la aplicación consumidora de la cola de origen no puede consumir los mensajes correctamente. Las colas de mensajes fallidos facilitan el manejo de los errores de consumo de mensajes y administran el ciclo de vida de los mensajes que no se consumieron. Puede configurar una alarma para todos los mensajes entregados a una cola de mensajes fallidos, examinar registros en busca de excepciones que puedan haber causado que estos mensajes se envíen a la cola y analizar el contenido de los mensajes para diagnosticar problemas en la aplicación consumidora. Una vez que recupere su aplicación consumidora, podrá volver a dirigir los mensajes de la cola de mensajes fallidos a la cola de origen.
¿Cómo funcionan las colas de mensajes fallidos?
Cuando crea la cola de origen, Amazon SQS le permite especificar una cola de mensajes fallidos (DLQ) y la condición bajo la cual SQS debería trasladar los mensajes a ella. La condición es la cantidad de veces que un consumidor puede recibir un mensaje de la cola, definida como maxReceiveCount. Esta configuración de una cola de mensajes fallidos con una cola de origen y maxReceiveCount se conoce como política de redireccionamiento. Amazon SQS está diseñado para que, cuando ReceiveCount para un mensaje exceda maxReceiveCount para una cola, se traslade el mensaje a una cola de mensajes fallidos (con su ID de mensaje original). Por ejemplo, si la cola de origen tiene una política de redireccionamiento con maxReceiveCount establecido en el número cinco, y el consumidor de la cola de origen recibe un mensaje seis veces sin consumirlo correctamente, SQS trasladará el mensaje a la cola de mensajes fallidos.
La política de redireccionamiento administra la primera mitad del ciclo de vida de los mensajes sin consumir trasladándolos de una cola de origen a una cola de mensajes fallidos. Ahora, el redireccionamiento de la cola de mensajes fallidos a la cola de origen completa de manera eficiente el ciclo devolviendo aquellos mensajes a su cola de origen, como se muestra debajo.
¿Cómo funciona el redireccionamiento de la cola de mensajes fallidos a la cola de origen?
En primera instancia, le permite investigar una muestra de mensajes disponibles en la cola de mensajes fallidos al mostrarle los atributos de los mensajes y los metadatos relacionados. Luego, una vez que investigó los mensajes, puede devolverlos a sus colas de origen. También puede seleccionar la velocidad de redireccionamiento para configurar la rapidez con la que Amazon SQS trasladará los mensajes desde la cola de mensajes fallidos hasta la cola de origen.
¿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).