Saltar al contenido
← Catálogo
Integración y mensajeríaIntermedio

Amazon SNS

Simple Notification Service

Mensajería de publicación y suscripción: un mensaje publicado llega a todos los interesados a la vez.

En palabras simples

Es la lista de correo del club: quien publica escribe una sola vez y el mensaje llega a todas las personas suscritas, sin que el remitente sepa quiénes son.

Cuándo aplicarlo

Cuando un mismo evento debe avisar a varios destinos a la vez, o cuando hace falta enviar notificaciones a personas por correo o SMS.

  • ▸Avisar a varios sistemas de que se registró una inscripción nueva
  • ▸Enviar las alarmas de CloudWatch por correo al equipo
  • ▸Disparar varias funciones Lambda con un mismo evento
  • ▸Repartir mensajes a varias colas de SQS con el patrón de distribución en abanico

Vocabulario mínimo

Tema (topic)
El canal al que se publica. Quien publica no sabe ni le importa quién está suscrito.
Suscripción
Cada destino conectado al tema: una cola de SQS, una función Lambda, un correo, un HTTP, un SMS.
Distribución en abanico (fan-out)
El patrón de un mensaje publicado que llega a muchos suscriptores en paralelo.
Filtro de suscripción
La regla que hace que un suscriptor reciba solo los mensajes que cumplen ciertos atributos.
Tema FIFO
La variante que garantiza orden y entrega única, a costa de menor rendimiento.

Costo y capa gratuita

Cómo se cobra
Por millón de publicaciones y por entregas realizadas, con precios distintos según el destino. Las entregas hacia SQS y Lambda son muy baratas; el SMS es, de lejos, lo más caro.
Capa gratuita
Un millón de publicaciones al mes y un millón de entregas HTTP, más 1.000 correos, de forma permanente.

Cuidado con los créditos

  • ⚠Las notificaciones por SMS se cobran por mensaje y por país: una prueba en bucle puede costar más que todo lo demás junto.
  • ⚠Suscribir una función Lambda sin filtros a un tema con mucho tráfico: se paga cada invocación, útil o no.
  • ⚠Un mensaje que falla y se reintenta muchas veces multiplica el número de entregas facturadas.

Descripción

SNS resuelve un problema de acoplamiento. Cuando ocurre algo importante — se registró una persona, se subió un archivo, terminó un proceso — suele haber varios sistemas interesados, y escribir en el código «avisa a este, luego a este otro» convierte cada sistema nuevo en un cambio de código.

Con SNS, quien produce el evento lo publica en un tema y se desentiende. Los interesados se suscriben al tema. Añadir un consumidor nuevo no toca ni una línea del productor. Es el patrón de publicación y suscripción, y es la base de las arquitecturas orientadas a eventos.

Cómo funciona

  1. Creas un tema y le das permisos de publicación a quien corresponda.
  2. Los destinos se suscriben: colas de SQS, funciones Lambda, correos, puntos HTTP, SMS.
  3. Un productor publica un mensaje una sola vez.
  4. SNS lo entrega en paralelo a todos los suscriptores, con reintentos si alguno falla.
  5. Los filtros de suscripción permiten que cada destino reciba solo lo que le interesa.

Manos a la obra

  • Crea un tema y suscribe tu correo. Confirma la suscripción desde el mensaje que llega.
  • Publica un mensaje desde la consola y compruébalo en la bandeja de entrada.
  • Suscribe además una cola de SQS al mismo tema y observa que el mensaje llega a los dos destinos.
  • Añade un filtro por atributo para que la cola reciba solo los mensajes marcados como urgentes.
  • No hagas pruebas masivas por SMS: es el canal que puede quemar créditos en minutos.

Ejemplo visual

Un evento, tres destinospublicaentregaAWS LambdapublicaAmazon SNStemaAmazon SQScola de trabajoAWS LambdaestadísticasEquipocorreo
Un evento, tres destinosCuando alguien se inscribe a un evento del club, la función de AWS Lambda publica un único mensaje en un tema de Amazon SNS. El tema lo entrega en paralelo a tres suscriptores: una cola de Amazon SQS que procesa la inscripción con calma, una segunda función Lambda que actualiza las estadísticas, y un correo que avisa al equipo organizador. El productor no sabe cuántos suscriptores hay, así que añadir uno nuevo no exige tocar su código.

La combinación de SNS con SQS — publicar en un tema que entrega a varias colas — es tan común que tiene nombre propio: distribución en abanico, y aparece en casi todos los exámenes de certificación.

Cuándo NO es la mejor opción

  • Amazon SQS — si el mensaje debe procesarlo un solo consumidor y esperar en cola hasta que pueda atenderlo.
  • Amazon EventBridge — si el enrutamiento depende del contenido del evento y hay muchas reglas distintas.
  • AWS End User Messaging — si el objetivo real es enviar SMS o notificaciones a personas a gran escala.

Se usa junto con

Aparece en certificaciones

  • AWS Certified Cloud Practitioner
  • AWS Certified Solutions Architect – Associate
  • AWS Certified Developer – Associate