クラウドサービス
Amazon SNS
1 つのメッセージを多数の購読者へ一斉プッシュ。複数の処理を同時につなぐファンアウト構成の中核を担う、Amazon SNS の Pub/Sub メッセージ配信。
中級SAA-C03DVA-C02SAP-C02信頼性運用上の優秀性
最終更新: 2026-07-28公式ドキュメント
3つの要点
TL;DR- 1つの通知を登録した全員へ一斉にプッシュ配信するPub/Sub。
- 送信側は宛先を意識せず疎結合に同報。配信数で課金。
- 確実に処理するなら SNS→複数SQS のファンアウトが鉄板。
解決する課題
- 1つのイベントを複数システムへ同報したい
- 送信側は宛先を意識せず疎結合に通知したい
- 障害アラートや通知をメール/SMSで飛ばしたい
主要概念と用語
- トピック: 配信の単位(ここへ publish する)
- サブスクライバー: 標準トピックではLambda / SQS / HTTP(S) / Email / SMS など
- ファンアウト: SNS → 複数のSQS へ同報して並列処理
- フィルタポリシー: 属性で購読者ごとに振り分け
- FIFOトピック: 購読先はSQS標準キューまたはFIFOキュー。LambdaはSQS経由で起動
仕様・制限・クォータ
- プッシュ型(購読者へ送る)
- トピックへの publish を多数のサブスクライバーへ配信
- 標準トピックは多様なプロトコル、FIFOトピックはSQS標準/FIFOキューへ配信
内部の仕組み
publishされたメッセージは、トピックに紐づく対象サブスクライバーへプッシュされます。標準トピックはSQS、Lambda、HTTP(S)、メール、SMSなどへ直接配信できます。FIFOトピックの購読先はSQS標準/FIFOキューだけで、Lambda処理はSQSをイベントソースにします。ファンアウト(SNS→複数SQS)では各SQSがバッファ・再試行・DLQを提供し、処理系を独立にスケールできます。
横にスクロール
SNS + SQS が鉄板
「同報したい」かつ「各処理を確実に」なら SNS → 複数SQS のファンアウト。SNSで配り、SQSで受け止める。
設計パターン / ベストプラクティス
- ファンアウト(SNS→複数SQS→各ワーカー)
- フィルタポリシーでトピックを集約しつつ振り分け
- アラート通知(CloudWatchアラーム→SNS→メール/SMS/Chatbot)
運用・監視・トラブルシュート
- 配信失敗はサブスクライバー側のエラー/権限を確認、DLQを設定
- メトリクス:
NumberOfMessagesPublishedNumberOfNotificationsFailed
コスト
- publish/配信数で課金。SMSは別料金
セキュリティ
- IAM/トピックポリシーでアクセス制御
- 保存時暗号化(KMS)、配信先はHTTPS等
Well-Architected の観点
- 信頼性: 同報+(SQS併用で)リトライ
- 運用上の優秀性: アラート/イベント連携の標準部品
試験で問われるポイント
頻出
- Pub/Sub・プッシュ・1対多=SNS(プル・1対1はSQS)
- 同報して確実に処理=SNS + 複数SQS(ファンアウト)
- アラート通知の宛先として頻出
SNS ミニ確認テスト第 1 問 / 全 3 問
1つのイベントを複数の処理系へ同時に配信(ファンアウト)したい。
関連サービス・比較
| 観点 | SNS | SQS |
|---|---|---|
| モデル | Pub/Sub(1対多) | キュー(1対1) |
| 配信 | プッシュ | プル(ポーリング) |
| 用途 | 同報・ファンアウト・通知 | バッファ・疎結合処理 |
ハンズオン / CLI例
# トピック作成 → SQSをサブスクライブ(ファンアウト) → publish
aws sns create-topic --name orders
aws sns subscribe --topic-arn "$TOPIC" --protocol sqs --notification-endpoint "$QUEUE_ARN"
aws sns publish --topic-arn "$TOPIC" --message '{"orderId":"123"}'
AWS Service
Amazon SNSを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
アプリ統合
比較で見る軸
クラウド: AWS / カテゴリ: アプリ統合 / 難易度: intermediate
導入後に効く点
送信側は宛先を意識せず疎結合に同報。配信数で課金。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
数字・仕様の読み方
- クラウド
- AWS
- カテゴリ
- アプリ統合
- 難易度
- intermediate
- 関連資格
- SAA-C03 / DVA-C02 / SAP-C02
- 設計柱
- reliability / operational
判断チェックリスト
- 自社の用途が「アプリ統合 / reliability」に近いか確認する。
- 強みである「1つの通知を登録した全員へ一斉にプッシュ配信するPub/Sub。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。
他クラウドの同等サービス
役割が近いサービスです。設計の置き換えや比較検討の参考に。