July 31, 2025

SNS

📘 ¿Qué es SNS?

AWS Simple Notification Service (SNS) es un servicio de mensajería pub/sub (publicador/suscriptor) completamente administrado, que permite enviar mensajes a múltiples destinatarios (subscribers) de forma rápida y fiable.

Ideal para notificaciones en tiempo real, event-driven architectures y integración entre microservicios.


🧩 Modelo de funcionamiento

[Publisher] → [Topic SNS] → [N suscriptores]

✔️ Publicador:

  • Envía un mensaje al topic.

📨 Suscriptores:

  • Reciben el mensaje automáticamente, si están suscritos al topic.

🔄 Flujo general

  1. Crear un Topic SNS

  2. Suscribir destinos (subscribers)

  3. Publicar mensajes en el topic

  4. SNS entrega el mensaje a todos los suscriptores


📦 Tipos de Topics

TipoUso principal
StandardAlta disponibilidad y baja latencia
FIFOOrden estricto y sin duplicados

🔹 FIFO solo funciona con endpoints que aceptan uno a uno (no SMS o email).


🎯 Tipos de suscriptores soportados

DestinoDescripción
Amazon SQSIdeal para colas y procesamiento asíncrono
AWS LambdaEjecuta funciones automáticamente al recibir evento
HTTP/S EndpointWebhooks personalizados
Email / Email-JSONEnvía correos a destinatarios
SMS (texto)Envía notificaciones por mensaje de texto
Mobile Push (FCM, APNs)A través de SNS Platform Applications

🛠️ Componentes clave

ComponenteDescripción
TopicCanal lógico donde se publican mensajes
PublisherComponente que publica mensajes en el topic
SubscriberDestino que recibe el mensaje
MessageCuerpo del mensaje que será entregado (texto, JSON, etc.)
Filter PoliciesOpcional. Permite entregar mensajes solo si cumplen ciertos criterios

🔐 Seguridad

  • Controlada vía IAM policies:

    • sns:Publish

    • sns:Subscribe

    • sns:CreateTopic

  • Puedes definir políticas para controlar quién puede publicar/suscribirse.

  • Soporta encriptación en reposo con AWS KMS.


📊 Casos de uso

  • Notificaciones por email/SMS para alertas CloudWatch

  • Integración entre microservicios desacoplados

  • Disparo de Lambdas desde eventos externos

  • Comunicación entre aplicaciones y usuarios móviles


🧪 Ejemplo de filtro de suscripción

{
  "eventType": ["order_placed", "order_shipped"]
}

Solo se entregarán mensajes que contengan "eventType": "order_placed" o "order_shipped"


💰 Precios

UsoCosto aproximado
Primer millón de publicaciones/mes✅ Gratis
Publicación adicional💲 $0.50 por millón
SMS💲 Según país y volumen
Email✅ Gratis (límite razonable)
KMS (opcional)💲 Costos por uso de claves si se habilita

🧠 Preguntas tipo certificación

  1. ¿Cuál es el patrón de arquitectura que sigue SNS?

    • ✅ Publicador/Suscriptor (Pub/Sub)
  2. ¿Qué servicio de AWS permite enviar mensajes por SMS o email?

    • ✅ SNS
  3. ¿SNS puede invocar funciones Lambda?

    • ✅ Sí
  4. ¿Qué tipo de SNS Topic garantiza orden y sin duplicados?

    • ✅ FIFO Topic
  5. ¿Puedes filtrar qué suscriptores reciben qué mensajes?

    • ✅ Sí, con Filter Policies

🎯 Buenas prácticas

  • Usa SQS como buffer para sistemas que no toleran picos de carga.

  • Usa Filter Policies para evitar enviar mensajes irrelevantes.

  • Usa nombres descriptivos para los topics.

  • Habilita CloudWatch Logs para seguimiento de entregas.

  • Si envías mensajes críticos, combina SNS + SQS con DLQ (Dead Letter Queue).


📚 Recursos útiles