Saltar al contenido
aprendeaws.dev

Módulo 9 · Eventos, colas y mensajería/Lección 56

SNS: notificaciones y publicación/suscripción

Un mensaje, muchos destinatarios: correos, SMS, colas y funciones reciben lo mismo al mismo tiempo.

Al terminar podrás

  • →Explicar el modelo publicación/suscripción
  • →Combinar SNS y SQS en abanico (fan-out)
  • →Elegir entre SNS y SES para enviar correos

Amazon Simple Notification Service (SNS) entrega un mismo mensaje a muchos destinatarios a la vez. Quien envía publica una sola vez en un tema; todos los que están suscritos reciben su copia. Es el modelo de publicación/suscripción, o pub/sub.

Temas y suscripciones

Un tema es un canal con nombre, como pedidos-creados. Los publicadores envían mensajes al tema. Las suscripciones dicen a dónde va cada copia. Un tema puede tener muchas suscripciones de tipos distintos:

Tipo de suscripciónPara qué se usa
Amazon SQSGuardar el mensaje en una cola para procesarlo despuésLa combinación más común
AWS LambdaEjecutar una función con cada mensaje
HTTP o HTTPSLlamar a un webhook de otro sistema
Correo electrónicoAvisos simples a personasCada dirección debe confirmar la suscripción
SMSMensajes de texto a teléfonos
Notificaciones push móvilesLlegar a apps de iOS y Android
Amazon Data FirehoseLlevar los mensajes a un almacén para análisis

Un uso típico: una alarma de CloudWatch publica en un tema de SNS cuando la CPU se dispara, y el equipo de guardia recibe un correo y un SMS.

Fan-out: un mensaje, muchas colas

El patrón más importante de SNS es el fan-out (abanico). Cuando se crea un pedido, la tienda publica una vez en el tema. Tres colas de SQS están suscritas: una para facturación, otra para inventario y otra para envíos. Cada sistema procesa su copia a su ritmo.

  1. 1

    La tienda publica una vez

    Envía «pedido 1234 creado» al tema pedidos-creados.
  2. 2

    SNS copia el mensaje

    Entrega una copia a cada suscripción, al mismo tiempo.
  3. 3

    Cada cola guarda su copia

    Facturación, inventario y envíos tienen el mensaje en su propia cola de SQS.
  4. 4

    Cada sistema procesa por su cuenta

    Si envíos está caído, su cola guarda el mensaje. Facturación e inventario siguen sin enterarse.

SNS aporta el reparto a muchos; SQS aporta la durabilidad y el ritmo propio. Juntos, agregar un cuarto sistema es tan simple como crear otra cola y suscribirla al tema, sin tocar la tienda.

Filtrar mensajes

No todos los suscriptores quieren todo. Con una política de filtro en la suscripción, cada una recibe solo los mensajes que le interesan, según sus atributos o su contenido. Por ejemplo, la cola de envíos internacionales solo recibe pedidos con pais distinto al local. Así evitas crear un tema por cada caso y que cada consumidor descarte lo que no le sirve.

SNS o SES para enviar correos

CriterioAmazon SNSAmazon SES
Qué esServicio de notificaciones pub/subServicio de envío de correo electrónico
DestinatariosDirecciones que confirmaron la suscripción a un temaCualquier dirección: clientes, usuarios, listas
ContenidoTexto simple, el mismo para todosCorreos con diseño, plantillas y personalización
Úsalo paraAlertas operativas al equipoCorreos transaccionales (confirmaciones, recuperación de contraseña) y de marketing

Para enrutar eventos con reglas más ricas y recibir eventos de servicios de AWS o de terceros, sigue con EventBridge. Repasa las colas en SQS.

Quiz

Pon a prueba lo que aprendiste

0 de 5 correctas · 5 sin responder

  1. 1.Cuando se registra un usuario, cuatro sistemas deben recibir el aviso y procesarlo de forma independiente. ¿Qué arquitectura usas?

  2. 2.¿Qué servicio usa una empresa para enviar correos de confirmación de compra con diseño propio a sus clientes?

  3. 3.¿Cuál de estos NO es un tipo de suscripción de SNS?

  4. 4.Una suscripción solo debe recibir los mensajes de pedidos mayores a cierto valor. ¿Qué usas?

  5. 5.El equipo de operaciones quiere un correo y un SMS cuando una alarma de CloudWatch se dispara. ¿Qué servicio conecta la alarma con ellos?