O que é o SNS?
O Amazon Simple Notification Service (SNS) é um serviço de mensagens pub/sub (publicar/assinar) totalmente gerenciado. Um publicador envia uma mensagem para um tópico, e o SNS entrega essa mensagem para todos os assinantes daquele tópico simultaneamente.
Enquanto o SQS é para processamento assíncrono ponto-a-ponto, o SNS é para fan-out — uma mensagem para muitos destinos ao mesmo tempo.
Modelo Pub/Sub
Publisher (CloudWatch Alarm, S3, App)
│
│ publica mensagem
▼
[ Tópico SNS ]
│
├──▶ E-mail (equipe de ops)
├──▶ SMS (celular do admin)
├──▶ Lambda (processar automaticamente)
├──▶ SQS (enfileirar para workers)
└──▶ HTTP/HTTPS (webhook externo)
Tipos de assinantes (subscribers)
| Tipo | Uso típico |
|---|---|
| E-mail / E-mail-JSON | Alertas para equipes de operações |
| SMS | Notificações urgentes no celular |
| Lambda | Processamento automático do evento |
| SQS | Fan-out para múltiplas filas (padrão SNS+SQS) |
| HTTP/HTTPS | Webhooks para sistemas externos |
| Mobile Push | Notificações em apps iOS/Android |
Padrão SNS + SQS (Fan-out)
O padrão mais comum no exame: um evento publica no SNS, que distribui para múltiplas filas SQS. Cada fila tem seu próprio consumidor processando de forma independente.
Upload no S3
│
▼
[ Tópico SNS ]
│
├──▶ SQS Fila A ──▶ Lambda (gerar thumbnail)
├──▶ SQS Fila B ──▶ EC2 (análise de conteúdo)
└──▶ SQS Fila C ──▶ Lambda (atualizar banco)
Tipos de tópico
- Standard Topic: alta escala, entrega pelo menos uma vez, ordem não garantida.
- FIFO Topic: ordem garantida, exatamente uma vez. Só pode ter filas SQS FIFO como assinantes.
Casos de uso
- Alertas do CloudWatch (CPU alta → SNS → e-mail + SMS + Lambda)
- Notificar múltiplos sistemas quando um pedido é criado
- Enviar push notifications para apps mobile
- Fan-out de eventos S3 para múltiplos processadores
- Alertas de billing e segurança da conta AWS
SNS vs SQS
| SNS | SQS | |
|---|---|---|
| Modelo | Push (entrega imediata) | Pull (consumidor busca) |
| Destinatários | Múltiplos simultâneos | Um consumidor por vez |
| Persistência | Não — entrega ou perde | Sim — até 14 dias |
| Palavra-chave | Fan-out, notificação | Desacoplamento, fila |
🎯 Pontos importantes para o exame CLF-C02
- SNS = pub/sub — um publicador, múltiplos assinantes simultâneos
- Palavra-chave no exame: "notificar múltiplos sistemas" → SNS
- Padrão SNS + SQS (fan-out) é muito cobrado — distribui para múltiplas filas
- SNS é push — entrega imediata. Sem persistência: se não entregou, perdeu
- Assinantes: e-mail, SMS, Lambda, SQS, HTTP, mobile push
- CloudWatch Alarms usam SNS para enviar alertas — combinação clássica no exame
- FIFO Topic só aceita SQS FIFO como assinante
