AWS SQS: Tipos de filas y configuración para arquitecturas serverless
Clase 66 de 76 • Curso de AWS Certified Solutions Architect Associate
Resumen
Una arquitectura optimizada requiere desacoplar componentes para garantizar eficiencia y escalabilidad. AWS Simple Queue Service (SQS) es una opción ideal por ser un servicio administrado que permite guardar mensajes de manera segura y persistente, facilitando la interacción entre productores y consumidores en arquitecturas basadas en microservicios y eventos.
¿Qué tipos de filas ofrece AWS SQS?
AWS SQS presenta dos tipos principales de filas:
- Fila estándar: Ofrece llamados API prácticamente ilimitados. No garantiza orden estricto y podría duplicar mensajes. Es útil cuando el orden no es crucial.
- Fila FIFO (First In, First Out): Entrega hasta 300 transacciones API por segundo y proporciona ordenamiento estricto de los mensajes, ideal para escenarios sensibles al orden.
Cada mensaje puede almacenar hasta 256 KB de información, conservada de manera segura en múltiples zonas de disponibilidad, garantizando alta disponibilidad y durabilidad.
¿Qué es una Dead Letter Queue (DLQ)?
Una DLQ recibe mensajes que son difíciles de procesar por los consumidores regulares. Estos mensajes pueden transferirse a otra cola específica donde recursos alternativos, como funciones Lambda o contenedores, intentan descifrarlos o manejarlos adecuadamente.
¿Cuál es la diferencia entre Long Polling y Short Polling?
Estos métodos determinan cómo los consumidores recuperan información:
- Short polling: Solicitudes inmediatas a un subconjunto de servidores de SQS, que a menudo retornan respuestas rápidas, pero pueden incluir respuestas vacías.
- Long polling: Espera hasta 20 segundos por mensajes disponibles antes de responder, evitando respuestas vacías innecesarias, reduciendo costos y optimizando el rendimiento.
Se recomienda utilizar long polling para aumentar la eficiencia y reducir costes, aunque su uso dependerá del escenario específico y las necesidades de la arquitectura implementada.
¿Qué parámetros importantes puedo configurar?
AWS SQS permite personalizar varios parámetros clave:
- Visibility Time Out: Tiempo en que un mensaje queda "bloqueado" para otros consumidores mientras es leído por el primero, configurable entre 0 segundos y 12 horas (por defecto, 30 segundos).
- Periodo de retención: Cuánto tiempo permanecen los mensajes en la cola; puede configurarse desde 1 minuto hasta 14 días (por defecto, 4 días).
- Delivery Delay: Retraso intencional para entregar mensajes al consumidor.
- Políticas de seguridad y etiquetas: Permiten controlar accesos y monitorear costos, usando políticas simples o avanzadas en formato JSON.
La configuración adecuada de estos parámetros es determinante para optimizar las arquitecturas específicas a cada situación de negocio.
¿Cómo interactúa AWS SQS con otros servicios?
SQS puede integrarse fácilmente con servicios como:
- AWS SNS (notificaciones).
- AWS Lambda (procesamiento basado en eventos).
- AWS KMS (cifrado en tránsito o reposo).
- Otras herramientas como EventBridge y EC2.
Integrar estos servicios amplía las funcionalidades y mejora la automatización en las arquitecturas empresariales modernas.
Comparte tus experiencias integrando AWS SQS en tus arquitecturas serverless, ¡tus comentarios ayudarán a toda la comunidad a seguir aprendiendo!