Amazon Simple Notification Service
Overview
Amazon SNSは、フルマネージド型のメッセージングサービス。
コンポーネント間のメッセージ通知やアラート通知に利用される。
Amazon SNSを使うと、前の処理イベントをトリガーとしてイベント通知処理による連携を実施できる。
情報管理はトピックという単位で行う。
注記
Amazon SNSにて送受信するメッセージは、暗号化による保護が可能。
注 意
以下は暗号化されないので注意が必要。
- トピック内のメタデータ(トピック名や属性など)
- メッセージのメタデータ(件名、メッセージID、タイムスタンプ、属性など)
- トピックごとのメトリクス(Cloud Watchと連携する指標値)
Publish/Subscribe モデル
- システム管理者はメッセージを管理する単位でトピックを作成し、メッセージをトピックに配信する
- そのトピックに対して配信を申し込んだ購読者がメッセージを受信する。
- メッセージの配信をトリガーとなる。
- 多数の購読者に同時にメッセージを配信する。
- また、役目を終えたトピックは手動にてトピックの削除する。
上記の工程をPublish/Subscribeモデルと呼ぶ。
- メッセージを作成して送信するクライアントのことをPublisher
- メッセージを受信する側のクライアントをSubscriber
ヒント
メールマガジンの発行者と購読者の関係をイメージすると分かりやすい
通信先は複数対応
HTTP/HTTPS、モバイル端末(iOS、Android)へのプッシュ通知などさまざまな通信プロトコルに対応している。
マルチプロトコルに対応しており、複数のプロトコルを利用して簡単に配信できる。
メッセージをプロトコルに変換する部分をAmazon SNSが行うため、通知する人はプロトコルの違いを意識することなく配信できる。
たとえば、SMS対応デバイスにテキストメッセージやSMSメッセージを送信する場合に電話番号をトピックにサブスクライブし、トピックへメッセージを配信することにより、電話番号にメッセージを直接送信できたり一度に複数の電話番号にメッセージを送信できる。
またCloudWatchと連携してシステム間や外部への通知に利用もできる。
処理順序
Amazon SNSメッセージの処理順序は通常保証されないため、処理順序を意識する処理にて不都合が出る可能性。
FIFOトピックを適用することで、処理の順序を保証できるため、Amazon SNSを用いて作成するサービスの幅が広がる。