Amazon SNS

Amazon SNSにおいて、発行者(Publisher)はメッセージを発信するアプリケーションなどです。発行者はメッセージを発行したいトピックを選択してメッセージを配信します。購読者の存在やプロトコルの種類などは意識する必要はありません。

【マネジメントコンソールからメッセージを発行する画面の例】

Amazon SNSにおいて、購読者(Subscriber)はメッセージを受け取る(購読する)アプリケーションやユーザーです。購読者は通知を得たいトピックに対してプロトコルを選択して受信登録します。

購読者(Subscriber)が行う手続き

  • 通知を受け取りたいトピックを選択する
  • 受け取りたいメッセージの形式(プロトコル)を選ぶ

Amazon Simple Notification Service(SNS)はフルマネージドのメッセージングサービスです。「メッセージ」とはシステム間を連携する通知やデータのことで、EメールやSMS、Lambda関数、Amazon SQSを通して、複数のアプリケーションやユーザーに対して同時にメッセージを配信します。Amazon SNSはプッシュ型なので、サブスクライバー(購買者)の状態に関わらずメッセージを配信します。

SNSの利用例に、Amazon CloudWatchで監視しているリソースの状態に応じてメールで通知させるケースがあります。予めSNSでトピックを作成しておき、Amazon EventBridge(CloudWatch Events)のマネジメントコンソールから作成したトピックを選択します。

SNSのユースケースには以下のようなものがあります。
○複数ユーザーに対して一斉に通知を行うケース
新サービスやメンテナンスなどのお知らせがある場合、SNSを利用して複数の購読者(ユーザー)へ一斉に通知できます。

○イベントの発生を契機にリアルタイムで処理を行いたいケース
プッシュ通知はイベントが発生したことをリアルタイムに通知できます。例えばCloudWatchで異常を検知したら即座に通知したい場合や、商品の納入や搬出などのイベントをトラッキングして次の処理を起動させたいケースなどで活用できます。

○システム内のコンポーネントを低い結合度(疎結合)で連携するケース
メッセージの発行者は、購読者がどのようなプロトコルでメッセージを受け取るのか、どんな購読者がいるのかなどを意識せずにメッセージを発行できます。新たに購読者を増やしても発行者への影響はありませんので、コンポーネント間の結合度を低く(疎結合に)システムを構築できます。

○複数のコンポーネントで並列に処理を行うシステム
1つのメッセージを複数の購読者(コンポーネント)が受信できますので、例えばユーザーの画像投稿を契機に、データベースへ登録する処理、サムネイルを作成する処理、画像を解析する処理など、独立したそれぞれの処理を並列に進めるようなシステムを実装できます。

この記事は役に立ちましたか?

もし参考になりましたら、下記のボタンで教えてください。

関連記事

コメント

この記事へのコメントはありません。