Colas SQS Standard frente a FIFO
Compare las colas Standard, orientadas al máximo rendimiento, con las colas FIFO, orientadas al procesamiento ordenado y exactamente una vez, y elija el tipo adecuado.
Colas SQS Standard frente a FIFO es una lección gratuita de Cloud & IT Cert Prep en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cloud & IT Cert Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.
Por qué son importantes las colas de mensajes
Las colas de mensajes desacoplan a los productores de los consumidores: un productor envía un mensaje a la cola sin esperar a que un consumidor lo procese. El consumidor procesa los mensajes a su propio ritmo. Este patrón evita que los productores rápidos saturen a los consumidores lentos, permite escalar cada nivel de forma independiente y proporciona un búfer persistente si el consumidor no está disponible temporalmente. Amazon SQS es el servicio de colas de mensajes totalmente administrado y de alta disponibilidad de AWS.
Características de las colas estándar de SQS
Las colas estándar ofrecen un rendimiento ilimitado (transacciones por segundo prácticamente ilimitadas). Garantizan la entrega al menos una vez: en casos excepcionales, un mensaje puede entregarse más de una vez (debido a la infraestructura distribuida). El orden de los mensajes se establece mediante el principio de mejor esfuerzo: por lo general, los mensajes se entregan en el orden en que se enviaron, pero no está garantizado. Las colas estándar son ideales cuando el rendimiento es fundamental y el consumidor puede gestionar duplicados ocasionales y entregas fuera de orden.
# Create a Standard queue
aws sqs create-queue \
--queue-name 'OrderProcessingQueue'
# Send a message
aws sqs send-message \
--queue-url 'https://sqs.us-east-1.amazonaws.com/123456789012/OrderProcessingQueue' \
--message-body 'OrderId-12345'Características de las colas FIFO de SQS
Las colas FIFO (First-In, First-Out) garantizan el procesamiento exactamente una vez y un orden estricto de los mensajes. Los mensajes se entregan exactamente en el orden en que se envían. Las colas FIFO admiten hasta 300 transacciones por segundo (3.000 con procesamiento por lotes). Los nombres de las colas FIFO deben terminar en .fifo. Use colas FIFO cuando el orden y la semántica de procesamiento exactamente una vez sean fundamentales: transacciones financieras, procesamiento de pedidos de comercio electrónico y actualizaciones de inventario.
# Create a FIFO queue
aws sqs create-queue \
--queue-name 'OrderProcessingQueue.fifo' \
--attributes '{
"FifoQueue": "true",
"ContentBasedDeduplication": "true"
}'Grupos de mensajes en colas FIFO
Las colas FIFO utilizan identificadores de grupo de mensajes para dividir el orden dentro de la cola. Los mensajes con el mismo identificador de grupo se entregan en orden; los mensajes con identificadores de grupo diferentes pueden procesarse en paralelo. Por ejemplo, use customerId como identificador de grupo: los pedidos de cada cliente se procesan secuencialmente, mientras que los pedidos de clientes diferentes se procesan de forma simultánea. Esto permite aplicar la semántica FIFO con escalabilidad horizontal entre consumidores.
aws sqs send-message \
--queue-url 'https://sqs.us-east-1.amazonaws.com/123456789012/Orders.fifo' \
--message-body 'Order details here' \
--message-group-id 'customer-789' \
--message-deduplication-id 'order-uuid-abc123'Eliminación de duplicados en colas FIFO
Las colas FIFO evitan el procesamiento duplicado de mensajes mediante un identificador de eliminación de duplicados. Si se envían dos mensajes con el mismo identificador dentro de un intervalo de eliminación de duplicados de 5 minutos, el segundo se descarta silenciosamente. Puede proporcionar explícitamente un identificador de eliminación de duplicados (MessageDeduplicationId) o activar la eliminación de duplicados basada en el contenido, en cuyo caso SQS calcula automáticamente un hash SHA-256 del cuerpo del mensaje para usarlo como identificador de eliminación de duplicados. La eliminación de duplicados basada en el contenido es más sencilla, pero requiere cuerpos de mensaje únicos.
Retención y límites de tamaño de los mensajes
SQS retiene los mensajes durante un período configurable: mínimo de 1 minuto y máximo de 14 días (4 días de forma predeterminada). Los mensajes que no se consumen dentro del período de retención se eliminan automáticamente. El tamaño máximo de un mensaje es de 256 KB. Para cargas útiles más grandes, use la SQS Extended Client Library o almacene la carga útil en S3 y envíe únicamente la referencia al objeto de S3 en el mensaje de SQS. Las colas estándar y FIFO comparten estos límites.
Recepción y eliminación de mensajes
Los consumidores sondean la cola mediante receive-message. Después de recibirlo, el mensaje pasa a estar invisible (oculto para los demás consumidores) durante el período de tiempo de espera de visibilidad. El consumidor debe procesar el mensaje y después eliminarlo explícitamente mediante el identificador de recepción antes de que expire el tiempo de espera. Si el consumidor se bloquea o no lo elimina a tiempo, el mensaje vuelve a aparecer y otro consumidor puede procesarlo, lo que permite la entrega al menos una vez en las colas estándar.
RECEIPT=$(aws sqs receive-message \
--queue-url 'https://...' \
--query 'Messages[0].ReceiptHandle' --output text)
# Process message, then delete it
aws sqs delete-message \
--queue-url 'https://...' \
--receipt-handle "$RECEIPT"Comparación del rendimiento en la práctica
Las colas estándar son adecuadas para generar miniaturas de imágenes, enviar correos electrónicos de notificación y procesar registros: cargas de trabajo en las que los duplicados pueden gestionarse de forma idempotente y el orden no importa. Las colas FIFO son necesarias para procesar transferencias bancarias (débito antes que crédito), actualizar carritos de comercio electrónico (añadir el artículo antes de finalizar la compra) y ejecutar pasos de flujos de trabajo en los que el paso 2 debe seguir al paso 1. En la mayoría de las arquitecturas de alto rendimiento, las colas estándar son la opción predeterminada; cambie a FIFO solo cuando el orden o la entrega exactamente una vez sean requisitos estrictos.
Procesamiento por lotes para mejorar el rendimiento y reducir costes
SQS cobra por cada solicitud a la API. Use operaciones por lotes para enviar, recibir y eliminar hasta 10 mensajes por llamada a la API, lo que reduce los costes hasta 10 veces. Las colas FIFO admiten el modo de alto rendimiento (que permite el procesamiento por lotes), con un límite de 3.000 mensajes por segundo mediante lotes de 10. En producción, use siempre send-message-batch y delete-message-batch para minimizar los costes de las llamadas a la API.
aws sqs send-message-batch \
--queue-url 'https://...' \
--entries '[
{"Id": "msg1", "MessageBody": "Order-001"},
{"Id": "msg2", "MessageBody": "Order-002"},
{"Id": "msg3", "MessageBody": "Order-003"}
]'Políticas de acceso a las colas
Las colas de SQS se protegen mediante políticas basadas en recursos (políticas de cola) que controlan quién puede enviar mensajes a la cola o recibirlos de ella. Esto es fundamental cuando se permite el acceso entre cuentas o cuando SNS publica en una cola de SQS. El acceso de Lambda a SQS se controla mediante la política de IAM del rol de ejecución de Lambda (sqs:ReceiveMessage, sqs:DeleteMessage, sqs:GetQueueAttributes). Aplique siempre el principio de mínimo privilegio: no conceda a un consumidor más permisos que los necesarios para recibir y eliminar mensajes.
Elección entre Standard y FIFO: guía de decisión
Plantéese estas preguntas para elegir: (1) ¿Importa el orden? Si es así → FIFO. (2) ¿Se requiere un procesamiento exactamente una vez? Si es así → FIFO. (3) ¿Se necesita un rendimiento superior a 3.000 TPS? Si es así → Standard (FIFO tiene un límite de 3.000 TPS con procesamiento por lotes). (4) ¿Los consumidores pueden gestionar duplicados? Si es así → Standard es más sencilla y económica. Para el examen SAA-C03, las palabras clave de FIFO son: 'ordering', 'exactly-once', 'sequential', 'deduplication'. Las palabras clave de Standard son: 'high throughput', 'best effort', 'at-least-once'.
Comprobación rápida
Compruebe su comprensión de los conceptos de AWS Solutions Architect (SAA-C03) de esta lección.
Resumen de la lección
En esta lección ha aprendido que las colas estándar ofrecen un rendimiento ilimitado, entrega al menos una vez y ordenación basada en el mejor esfuerzo, por lo que son adecuadas para cargas de trabajo de gran volumen que toleran duplicados; las colas FIFO garantizan un procesamiento exactamente una vez y un orden estricto de los mensajes mediante identificadores de grupo de mensajes e identificadores de eliminación de duplicados, con un límite de 3.000 TPS mediante procesamiento por lotes; y la elección entre ambas depende de si el orden y la eliminación de duplicados son requisitos estrictos. A continuación, exploraremos el tiempo de espera de visibilidad, las colas de mensajes no entregados y el sondeo largo.
Preguntas frecuentes
¿La lección «Colas SQS Standard frente a FIFO» es gratis?
Sí — el texto completo de «Colas SQS Standard frente a FIFO» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cloud & IT Cert Prep, actualiza a CoddyKit PRO. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.
¿Qué aprenderé en «Colas SQS Standard frente a FIFO»?
Compare las colas Standard, orientadas al máximo rendimiento, con las colas FIFO, orientadas al procesamiento ordenado y exactamente una vez, y elija el tipo adecuado. Practicas Cloud & IT Cert Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Cloud & IT Cert Prep?
No se requiere experiencia previa. Cloud & IT Cert Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Colas SQS Standard frente a FIFO»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Cloud & IT Cert Prep?
Sí. Cada lección de Cloud & IT Cert Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Colas SQS Standard frente a FIFO
- Tiempo de espera de visibilidad, DLQ y long polling
- Temas de SNS y arquitectura fan-out
- Filtrado de mensajes de SQS e integración de SNS + SQS