AWS Certified Cloud Practitioner
Post 20 of 25
80%
Complete
AWS Cloud Practitioner #20: SNS, SQS y Messaging
Aprende SNS (pub/sub), SQS (queues), diferencias entre ambos y cuándo usar cada servicio de messaging.
Recommended Prerequisites
For the best learning experience, we recommend reading these posts first:
🎯 Lo que Aprenderás Hoy
- Explicar SNS (Simple Notification Service)
- Comprender SQS (Simple Queue Service)
- Diferenciar SNS vs. SQS
- Identificar patrones de mensajería
- Combinar SNS + SQS (fanout pattern)
Amazon SNS (Simple Notification Service)
¿Qué es? Pub/Sub messaging service (publish/subscribe).
Model: 1 publisher → Many subscribers
Publisher:
Application publica mensaje a SNS Topic
Subscribers:
- Email
- SMS
- HTTP/HTTPS endpoints
- Lambda functions
- SQS queues
- Mobile push notifications
Ejemplo:
Order placed → SNS Topic "OrdersCreated"
Subscribers:
- Email a admin
- SMS a customer
- Lambda para inventory update
- SQS queue para analyticsCreating Topic
# Create SNS topic
aws sns create-topic --name OrdersCreated
# Subscribe email
aws sns subscribe \
--topic-arn arn:aws:sns:us-east-1:123456789012:OrdersCreated \
--protocol email \
--notification-endpoint admin@empresa.com
# Publish message
aws sns publish \
--topic-arn arn:aws:sns:us-east-1:123456789012:OrdersCreated \
--message "New order #1234 created" \
--subject "Order Notification"
# All subscribers receive message instantlyUse Cases
1. Notifications:
CloudWatch Alarm → SNS → Email/SMS
"EC2 CPU > 80%"
2. Fan-out:
1 event → Multiple systems
Order → Email + SMS + Inventory + Analytics
3. Mobile push:
Backend → SNS → iOS/Android app
"Your package shipped"
4. Webhooks:
Event → SNS → HTTP endpoint
External system integrationAmazon SQS (Simple Queue Service)
¿Qué es? Message queue service (producer/consumer).
Model: Producer → Queue → Consumer
Producer: Sends messages to queue
Queue: Stores messages
Consumer: Polls queue, processes messages
Example:
User uploads video → SQS queue "VideoProcessing"
Worker instances poll queue → Process video → Delete message
Benefits:
✅ Decoupling (producer/consumer independent)
✅ Buffering (handle traffic spikes)
✅ Reliability (messages persisted)Queue Types
1. Standard Queue
Características:
✅ Unlimited throughput
✅ At-least-once delivery (puede duplicar)
✅ Best-effort ordering (no guarantee)
✅ Cheaper
Use when:
- High throughput needed
- Duplicates OK
- Order doesn't matter
Example:
Log aggregation
Email sending (duplicates filtered by recipient)2. FIFO Queue
Características:
✅ Exactly-once processing (no duplicates)
✅ Strict ordering (FIFO)
✅ 300 messages/sec (3000 with batching)
✅ Slightly more expensive
Use when:
- Order critical
- No duplicates allowed
Example:
Financial transactions
Order processing (avoid duplicate charges)
Queue name must end with .fifoSending/Receiving
# Send message
aws sqs send-message \
--queue-url https://sqs.us-east-1.amazonaws.com/123456789012/VideoQueue \
--message-body "Process video: video123.mp4"
# Receive message
aws sqs receive-message \
--queue-url https://sqs.us-east-1.amazonaws.com/123456789012/VideoQueue
# Message returned:
{
"MessageId": "abc-123",
"ReceiptHandle": "xyz-789", # Para delete
"Body": "Process video: video123.mp4"
}
# Process message
process_video("video123.mp4")
# Delete message (acknowledge)
aws sqs delete-message \
--queue-url https://sqs.us-east-1.amazonaws.com/123456789012/VideoQueue \
--receipt-handle xyz-789
# Si no delete → Message reappears después de visibility timeoutVisibility Timeout
Problem:
Consumer 1 receives message → Processing...
Consumer 2 también recibe mismo message (duplicate processing)
Solution: Visibility Timeout
Flow:
1. Consumer receives message
2. Message hidden for visibility timeout (default: 30s)
3. Consumer processes
4. Consumer deletes message
5. Si consumer falla → Message reappears después de timeout
Config: 1 second - 12 hoursDead Letter Queue (DLQ)
Problem:
Message fails processing repeatedly (poison message)
Solution: DLQ
Setup:
Main queue: VideoQueue
DLQ: VideoQueue-DLQ
Max receives: 3
Flow:
Message processed → Fails → Back to queue (1)
Message processed → Fails → Back to queue (2)
Message processed → Fails → Back to queue (3)
Exceeds max → Moved to DLQ
Investigate DLQ manually, fix issuesSNS vs. SQS
| Aspecto | SNS | SQS |
|---|---|---|
| Pattern | Pub/Sub | Queue |
| Delivery | Push (instant) | Pull (polling) |
| Subscribers | Multiple | Single consumer |
| Use case | Notifications, fan-out | Job processing, decoupling |
| Persistence | No (instant delivery) | Yes (until deleted) |
| Ordering | No guarantee | FIFO queue guarantee |
Use SNS when:
✅ Múltiples sistemas deben recibir mismo event
✅ Real-time notifications
✅ Broadcasting
Use SQS when:
✅ Decouple producer/consumer
✅ Buffer traffic spikes
✅ Process messages at your pace
✅ Retry logic needed
Ejemplo SNS:
Order created → Notify email, SMS, inventory (all at once)
Ejemplo SQS:
Video uploaded → Queue → Workers process (one by one)Fan-Out Pattern (SNS + SQS)
Combine para max flexibility:
Architecture:
Order Service
↓
SNS Topic "OrdersCreated"
├→ SQS Queue "EmailQueue" → Email Worker
├→ SQS Queue "InventoryQueue" → Inventory Service
└→ SQS Queue "AnalyticsQueue" → Analytics Service
Beneficios:
✅ SNS broadcasts a todos
✅ Each SQS queue buffers independientemente
✅ Each service processes at own pace
✅ Retry logic per queue
✅ No message loss (SQS persistence)
Setup:
1. Create SNS topic
2. Create múltiples SQS queues
3. Subscribe each queue to topic
4. Consumers poll their queuesPricing
SNS
Requests:
$0.50 per 1M requests (publish)
Notifications:
- Email: $2 per 100K
- SMS: $0.00645 per SMS (US)
- HTTP: $0.60 per 1M
- Lambda/SQS: $0
Free Tier:
1M requests/month
100K HTTP deliveries
1K email notificationsSQS
Requests:
$0.40 per 1M requests (Standard)
$0.50 per 1M requests (FIFO)
Data transfer:
Free dentro de region
Free Tier:
1M requests/month (always free)
Example:
10M messages/month:
(10M - 1M free) × $0.40/1M = $3.60/monthBest Practices
SNS:
✅ Use topics para different event types
✅ Filter policies (subscribers solo reciben relevant messages)
✅ Enable encryption at rest
✅ Monitor delivery failures
SQS:
✅ Set appropriate visibility timeout (>processing time)
✅ Use DLQ para failed messages
✅ Batch operations (SendMessageBatch)
✅ Long polling (reduces empty receives)
✅ FIFO solo cuando strictly needed (overhead)
SNS + SQS:
✅ Fan-out pattern para reliability
✅ Each service independent
✅ Retry logic aislado📝 Preparación para el Examen
Puntos Clave
SNS:
- 📌 Pub/Sub: 1 publisher → many subscribers
- 📌 Push: Instant delivery
- 📌 Subscribers: Email, SMS, HTTP, Lambda, SQS
- 📌 Use case: Notifications, broadcasting
SQS:
- 📌 Queue: Producer → queue → consumer
- 📌 Pull: Consumer polls
- 📌 Types: Standard (high throughput) vs. FIFO (ordered)
- 📌 Use case: Decoupling, buffering
Fan-Out:
- 📌 SNS + SQS: Broadcast + reliable processing
- 📌 Pattern: SNS topic → multiple SQS queues
Preguntas de Práctica
Pregunta 1:
Una aplicación necesita enviar notificaciones a email, SMS y Lambda cuando order es creada. ¿Qué servicio usar?
A) SQS B) SNS C) S3 D) CloudWatch
Respuesta: B) SNS
SNS (Pub/Sub) permite broadcast a múltiples subscribers (email, SMS, Lambda) simultáneamente.
SQS es queue (single consumer por message).
Pregunta 2:
¿Qué SQS queue type garantiza exactly-once processing y ordering?
A) Standard Queue B) FIFO Queue C) Both D) Neither
Respuesta: B) FIFO Queue
FIFO garantiza:
- Exactly-once processing (no duplicates)
- Strict ordering (FIFO)
Standard queue: at-least-once (puede duplicar), best-effort ordering.
🎓 Resumen
- SNS: Pub/Sub, instant delivery, multiple subscribers
- SQS: Queue, pull-based, decoupling
- Standard: High throughput, at-least-once
- FIFO: Ordered, exactly-once, slower
- Fan-Out: SNS + SQS para broadcast + reliability
⏭️ Próximo Post
Post #21: CloudFormation - Infrastructure as Code
Tags: #AWS #CloudPractitioner #SNS #SQS #Messaging #Queues #PubSub #Certification
Related Articles
AWS Cloud Practitioner #1: De Servidores Físicos a la Nube
Aprende qué es cloud computing y las diferencias entre IaaS, PaaS y SaaS con una metodología bottom-up que construye tu conocimiento paso a paso.
AWS Cloud Practitioner #2: Infraestructura Global AWS - Regions, AZs y Edge Locations
Descubre cómo AWS distribuye su infraestructura globalmente y aprende a elegir la región correcta para tus aplicaciones usando metodología bottom-up.
AWS Cloud Practitioner #3: Superpoderes de la Nube - Elasticity, Scalability y HA
Comprende las ventajas clave de cloud computing: elasticity, scalability, high availability y agility. Aprende cómo AWS implementa estos conceptos.
AWS Cloud Practitioner #4: Well-Architected Framework - Los 6 Pilares
Aprende los 6 pilares del AWS Well-Architected Framework: Operational Excellence, Security, Reliability, Performance Efficiency, Cost Optimization y Sustainability.