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 大量データのストリーム処理

基礎から学ぶなら関連書籍が手がかりになる。

関連用語