⚡ 可用性・障害対応:SNSの使いどころ

目次

1. 結論

Amazon SNS (Simple Notification Service) は、「システムの伝言板(放送局)」です。あるサービスで起きたことを他の複数のサービスへ「通知」します。送り手と受け手を直接繋がない(疎結合にする)ことで、一方のシステムが故障したり、処理が遅れたりしても、他方に影響を与えない「弾力性」のある構成を可能にします。

2. SAAで出やすいポイント

  • パブ/サブモデル: 「パブリッシャー(発行者)」がトピックにメッセージを送り、「サブスクライバー(購読者)」がそれを受け取る。
  • ファンアウト (Fan-out): 1つのSNSメッセージを、複数のSQSキュー、Lambda、HTTPエンドポイントなどへ同時にコピーして配信する。
  • サーバーレス: 管理・スケーリングはAWSが行うため、非常に高い可用性と耐久性(メッセージは複数のAZに保存される)を持つ。
  • メッセージフィルタリング: 購読者ごとに「この条件に合うメッセージだけ送ってほしい」というフィルタを設定可能。
  • 多様な配信先: メール(Email)、SMS、モバイルプッシュ通知、Lambda、SQS、Kinesis Data Firehoseなど。

3. キーワードでの判断

問題文のキーワード 疑うべきサービス/機能 判断理由
「複数のサービスに同時に通知を送信」 SNS ファンアウト 1対多の配信
「疎結合なアーキテクチャの構築」 SNS サービス間の直接依存を排除
「モバイルデバイスへのプッシュ通知」 SNS モバイルプッシュ機能

4. ひっかけポイント

  • SNS vs SQS:
    • SNS: 「プッシュ」型。今すぐ全員に送る。メッセージはすぐ消える(購読者がいないと届かない)。
    • SQS: 「プル」型。相手が取りに来るまで貯めておく。メッセージは数日間残る。
  • 高スループット: 非常に高いスループットに対応できるが、順序保証が必要な場合は「SNS FIFOトピック」を選択する必要がある。

5. 覚え方

  • 「町内放送のスピーカー」。
  • 役場(パブリッシャー)が放送(トピック)すると、町中の家(サブスクライバー)に一斉に届く。誰も聞いていなくても放送は流れるし、特定の家だけ放送を切る(フィルタリング)こともできるイメージ。

6. 関連サービス

サービス名 関連する理由
SQS SNSの後ろにSQSを置く「SNS+SQSファンアウト」はSAAの超頻出構成。
CloudWatch アラームが発生した際の通知先としてSNSが指定される。
Lambda SNSイベントをトリガーにカスタムロジック(修復作業など)を実行する。

7. Obsidian管理メモ

  • 復習ポイント: SNSからSQSへの配信には、SQS側のアクセスポリシーでSNSからの書き込みを許可する必要がある点に注意。
  • 関連ノート: メッセージングサービス比較

8. HTMLファイル名

amazon-sns-messaging-and-pub-sub.html

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次