その他サービス ・
Amazon SNS とは?プッシュ型 Pub/Sub と Fan-out パターン
SNS は AWS のプッシュ型 Pub/Sub メッセージングサービス。1 つのメッセージを 複数のサブスクライバー(SQS / Lambda / Email / SMS / HTTP / モバイル PUSH)に 同時配信する Fan-out パターンの中核。SQS との...
プッシュ型のメッセージング・通知サービス。1 メッセージを多数のサブスクライバーに配信する Pub/Sub。
1. 概要(端的に)
SNS は AWS のプッシュ型 Pub/Sub メッセージングサービス。1 つのメッセージを 複数のサブスクライバー(SQS / Lambda / Email / SMS / HTTP / モバイル PUSH)に 同時配信する Fan-out パターンの中核。SQS との組合せで強力なイベント駆動アーキテクチャを構築できる。
2. 何ができるか
- メッセージブロードキャスト:1 → N 配信
- 多様な配信先:SQS / Lambda / Email / SMS / HTTP/HTTPS / モバイル PUSH
- 2 種のトピック:Standard / FIFO
- メッセージフィルタリング:サブスクライバー別の条件
- 暗号化:KMS
- DLQ:失敗メッセージの隔離
主な配信先
- Email:人間への通知
- SMS:携帯メール / SMS
- SQS:Fan-out パターン
- Lambda:サーバーレス処理
- HTTP/HTTPS:Webhook
- モバイル PUSH:iOS / Android プッシュ通知
3. 特徴
| 観点 | 特徴 |
|---|---|
| 追加料金 | パブリッシュ + 配信先別料金 |
| 無料枠 | 月 100 万パブリッシュ |
| メッセージ最大サイズ | 256 KB |
| 保持 | 配信即時消費(保管なし) |
| 配信 | 少なくとも 1 回 |
vs SQS / EventBridge
| 観点 | SNS | SQS | EventBridge |
|---|---|---|---|
| モデル | Pub/Sub | Queue | Event Bus |
| 保管 | なし | あり | あり(一時) |
| 配信 | プッシュ | プル(ポーリング) | プッシュ |
| 用途 | 通知・Fan-out | 非同期処理 | イベント駆動 |
4. 仕組み
SNS は トピックを中心にした Pub/Sub モデル。プロデューサーがトピックにメッセージをパブリッシュすると、すべてのサブスクライバーに自動配信される。
動作の流れ
- トピック作成
- サブスクライバー登録(Email / SQS / Lambda 等)
- プロデューサーが Publish
- SNS が全サブスクライバーへ即時配信
- サブスクライバーが受信処理
Fan-out パターン
[1 トピック]
├ サブスクライバー A: SQS(注文処理)
├ サブスクライバー B: SQS(在庫管理)
├ サブスクライバー C: Lambda(メール送信)
└ サブスクライバー D: HTTPS Webhook
→ 1 メッセージで複数処理を並列起動。
5. ユースケース
ユースケース 1:CloudWatch Alarm 通知
障害アラート → SNS → Email / SMS。
ユースケース 2:Fan-out(SNS → 複数 SQS)
注文発生 → SNS → 注文/在庫/会計/メール の各 SQS。
ユースケース 3:マイクロサービスのイベント連携
DB 変更 → SNS → 複数の関連サービスに通知。
ユースケース 4:モバイルプッシュ通知
iOS / Android アプリへの通知。
6. 関連用語
- SQS — Fan-out の主要相方
- Lambda — SNS トリガー
- EventBridge — より高度な代替
7. 関連サイト
AWS 公式
🎓 試験での出題傾向
| 試験 | 重要度 | 主な出題パターン |
|---|---|---|
| CLF | 高 | Pub/Sub の概念 |
| SAA | 高 | Fan-out パターン、SQS との組合せ |
| DVA | 高 | サブスクライバー実装 |
| SOA | 中 | 通知運用 |