Desacoplar con servicios de mensajería de AWS

Desarrollo de aplicaciones en AWS

Ricardo Sueiras

Principal Technologist

Fundamentos de Amazon SQS

 

visión general de sqs

  • Gestiona picos de tráfico de forma independiente de los productores.
  • Cola de mensajes gestionada para mensajería asíncrona.
  • Los productores envían mensajes a una cola.
  • Los consumidores extraen mensajes de la cola.
  • Los mensajes se conservan hasta que un consumidor los toma.
  • Retención: 4 días por defecto, 14 días máximo.
  • Los consumidores consultan la cola y procesan a su propio ritmo.
Desarrollo de aplicaciones en AWS

Visibilidad de mensajes

  • Un mensaje se vuelve invisible cuando un consumidor lo lee.
  • El tiempo de visibilidad controla cuánto permanece oculto.
  • Si el procesamiento falla y no se borra el mensaje:
    • Vuelve a ser visible.
    • Se puede reprocesar.
  • Tiempo de visibilidad: 30 segundos por defecto.
  • Tiempo de visibilidad máximo: 12 horas.

 

visibilidad de mensajes

Desarrollo de aplicaciones en AWS

Tamaño de los mensajes

 

tamaño de imagen

  • Los mensajes pueden tener hasta 256KB.
  • SQS Extended Client permite mensajes más grandes.
  • Almacena la carga útil grande en Amazon S3.
  • Envía un puntero a S3 en la carga útil del mensaje.
Desarrollo de aplicaciones en AWS

Sondeo corto

  • La estrategia de sondeo afecta al coste y a la eficiencia.
  • El sondeo corto es el valor por defecto.
  • Consulta un subconjunto de servidores de SQS y devuelve de inmediato.
  • Puede devolver vacío, incluso habiendo mensajes.
  • Implica más llamadas a la API y mayor coste.

 

sondeo

Desarrollo de aplicaciones en AWS

Sondeo largo

  • El sondeo largo consulta todos los servidores de SQS.
  • Espera hasta 20 segundos un mensaje.
  • Elimina respuestas vacías innecesarias.
  • Reduce llamadas a la API y baja el coste.

 

sondeo

Desarrollo de aplicaciones en AWS

Colas Standard

  • SQS ofrece dos tipos de colas.
  • Colas Standard:
    • Entrega al menos una vez.
    • Ordenación best-effort.
    • Rendimiento casi ilimitado.

 

tipos de colas

Desarrollo de aplicaciones en AWS

Colas FIFO

 

tipos de colas

  • Colas FIFO:
    • Procesamiento exactamente una vez.
    • Orden estricto de mensajes.
    • Desduplicación integrada.
  • 300 TPS por defecto
    • Sube a 3.000 con lotes o más con modo de alto rendimiento.
  • Elige el tipo según el caso de uso:
    • Standard para escala y rendimiento.
    • FIFO para orden y desduplicación.
Desarrollo de aplicaciones en AWS

Gestionar mensajes venenosos

 

dlq

  • Las colas de cartas muertas (DLQ) guardan mensajes que fallan al procesar.
  • Un mensaje pasa a la DLQ cuando supera maxReceiveCount.
  • Evita reintentar indefinidamente un mensaje venenoso.
  • La DLQ debe ser del mismo tipo que la cola origen.
  • Mueve mensajes de vuelta a la cola origen para reprocesarlos.
Desarrollo de aplicaciones en AWS

Asegurar las colas

 

asegurar SQS

  • Cifra en tránsito con HTTPS por defecto.
  • Cifrado del lado del servidor en reposo con AWS KMS.
  • Cifra la carga útil en cliente con AWS Encryption SDK.
  • Las políticas de IAM controlan quién accede a las colas SQS.
  • Las políticas basadas en recursos dan control granular a nivel de cola.
Desarrollo de aplicaciones en AWS

Fundamentos de Amazon SNS

  • Servicio pub/sub gestionado.
  • Usa un modelo push.
  • Los publicadores envían mensajes a un tema.
    • Tamaño máximo del mensaje: 256KB.
  • Los consumidores se suscriben a temas.
  • Los suscriptores reciben mensajes pasivamente.

 

visión general de sns

Desarrollo de aplicaciones en AWS

Escala

  • Hasta 12,5 millones de suscripciones por tema.
  • Sin retención de mensajes:
    • Se pierden si un suscriptor no está disponible.
    • Usa DLQ o un suscriptor duradero (cola SQS) para no perder mensajes.
  • Distribuye un solo evento a muchos consumidores (fan-out).

 

escalado de sns

Desarrollo de aplicaciones en AWS

Filtrado de mensajes

  • SNS admite políticas de filtrado de mensajes.
  • Las suscripciones reciben solo los mensajes relevantes.
  • Sin filtro, una suscripción recibe todos los mensajes.
  • Los filtros se aplican a nivel de suscripción, no de tema.

 

filtrado

Desarrollo de aplicaciones en AWS

Lógica y evaluación de filtros

 

políticas de filtrado

  • Los filtros se definen en JSON.
  • Se comparan con atributos del mensaje.
  • Varias condiciones se evalúan como AND.
  • Varios valores dentro de una condición se evalúan como OR.
  • Se admiten muchas operaciones de filtrado:
    • Coincidencia exacta de cadena, numérica, prefijo, exclusión y rango.
Desarrollo de aplicaciones en AWS

Seguridad de SNS

 

seguridad de sns

  • Cifra datos en tránsito con HTTPS por defecto.
  • Cifrado del lado del servidor en reposo con AWS KMS.
    • Concede a SNS permiso para usar la clave de KMS.
  • Las políticas de IAM proporcionan control de acceso.
    • Regulan quién puede publicar en o suscribirse a un tema.
Desarrollo de aplicaciones en AWS

¡Vamos a practicar!

Desarrollo de aplicaciones en AWS

Preparing Video For Download...