メインコンテンツまでスキップ

Amazon Simple Notification Service

Overview

Amazon SNSは、フルマネージド型のメッセージングサービス。
コンポーネント間のメッセージ通知やアラート通知に利用される。
Amazon SNSを使うと、前の処理イベントをトリガーとしてイベント通知処理による連携を実施できる。
情報管理はトピックという単位で行う。

注記

Amazon SNSにて送受信するメッセージは、暗号化による保護が可能。

注意

以下は暗号化されないので注意が必要。

  1. トピック内のメタデータ(トピック名や属性など)
  2. メッセージのメタデータ(件名、メッセージID、タイムスタンプ、属性など)
  3. トピックごとのメトリクス(Cloud Watchと連携する指標値)

Publish/Subscribe モデル

  1. システム管理者はメッセージを管理する単位でトピックを作成し、メッセージをトピックに配信する
  2. そのトピックに対して配信を申し込んだ購読者がメッセージを受信する。
  3. メッセージの配信をトリガーとなる。
  4. 多数の購読者に同時にメッセージを配信する。
  5. また、役目を終えたトピックは手動にてトピックの削除する。

上記の工程をPublish/Subscribeモデルと呼ぶ。

  • メッセージを作成して送信するクライアントのことをPublisher
  • メッセージを受信する側のクライアントをSubscriber
ヒント

メールマガジンの発行者と購読者の関係をイメージすると分かりやすい

通信先は複数対応

HTTP/HTTPS、モバイル端末(iOS、Android)へのプッシュ通知などさまざまな通信プロトコルに対応している。
マルチプロトコルに対応しており、複数のプロトコルを利用して簡単に配信できる。 メッセージをプロトコルに変換する部分をAmazon SNSが行うため、通知する人はプロトコルの違いを意識することなく配信できる。
たとえば、SMS対応デバイスにテキストメッセージやSMSメッセージを送信する場合に電話番号をトピックにサブスクライブし、トピックへメッセージを配信することにより、電話番号にメッセージを直接送信できたり一度に複数の電話番号にメッセージを送信できる。
またCloudWatchと連携してシステム間や外部への通知に利用もできる。

処理順序

Amazon SNSメッセージの処理順序は通常保証されないため、処理順序を意識する処理にて不都合が出る可能性。
FIFOトピックを適用することで、処理の順序を保証できるため、Amazon SNSを用いて作成するサービスの幅が広がる。