SNS と SQS
AWS のメッセージングサービスで、SNS がパブリッシュ/サブスクライブ、SQS がメッセージキューを提供する
AWSメッセージング
SNS と SQS とは
SNS (Simple Notification Service) はパブリッシュ/サブスクライブ型のメッセージングサービス、SQS (Simple Queue Service) はメッセージキューサービスである。SNS は「1 対多」の通知、SQS は「1 対 1」の非同期処理に使う。
SNS vs SQS
| 観点 | SNS | SQS |
|---|---|---|
| モデル | Pub/Sub (1 対多) | キュー (1 対 1) |
| 配信 | プッシュ (即座に配信) | プル (コンシューマーが取得) |
| 永続化 | なし (配信のみ) | あり (最大 14 日保持) |
| 用途 | 通知、ファンアウト | 非同期処理、バッファリング |
SNS + SQS ファンアウト
[注文サービス] → [SNS トピック] → [SQS: 在庫更新] → [Lambda: 在庫処理]
→ [SQS: メール送信] → [Lambda: メール処理]
→ [SQS: 分析] → [Lambda: 分析処理]
1 つのイベントを複数のコンシューマーに配信する。各 SQS キューが独立して処理するため、1 つが失敗しても他に影響しない。
デッドレターキュー (DLQ)
処理に失敗したメッセージを DLQ に退避し、後で調査・再処理する。
EventBridge との使い分け
| サービス | 用途 |
|---|---|
| SNS + SQS | シンプルなファンアウト、非同期処理 |
| EventBridge | イベントのフィルタリング、ルーティング |
| Kinesis | 大量データのストリーム処理 |
基礎から学ぶなら関連書籍が手がかりになる。