【AWS】Amazon SNS ~ 入門編 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2017/04/28/234103

の続き。

AWS EMRで失敗した際のイベント通知方法を調べていたら、
以下のサイトが見つかり、そこに
「Amazon Simple Notification Service (Amazon SNS)」と
あったので、どんなサービスか調べてみた
(似たようなサービスがあるから混乱する...)

https://aws.amazon.com/jp/premiumsupport/knowledge-center/alarm-emr-cluster-change/

より一部抜粋
~~~~~~~~~~~~~~~~~~~
CloudWatch Events のイベントを作成するときに、
Amazon Simple Notification Service (Amazon SNS) トピック
などを選択します。このターゲットは、クラスター状態の変化など、
特定のイベントが発生した場合にトリガーされます。
~~~~~~~~~~~~~~~~~~~

目次

【1】Amazon SNS (Simple Notification Service)
 0)関連用語
 1)サポートしているエンドポイントタイプ
 2)料金
【2】SNS設定の流れ
【3】他のAWSサービスとの違い
 1)AWS SQSとの違い
 2)AWS SESとの違い
【4】SNS の種類
 1)FIFO
 2)Standard

【1】Amazon SNS (Simple Notification Service)

* フルマネージド型メッセージ通知サービス

もう少し突っ込んだ説明をすると、、、

 送信側(Publisher)から送られてきたメッセージを
トピック(Topic)に格納し、
それをEmailなど様々なプロトコル(※2)により
プッシュ型で通知してくれるAWSサービス

0)関連用語

トピック(Topic)

* 通知の単位 (SNSはTopic単位で情報を管理)
 => C# などのプログラムでいうとプロジェクトみたいな感じ?

Publisher

* 通知する人(送信者)

Subscriber

* 通知される人(受信者)

cf. Subscriber = 購読者

1)サポートしているエンドポイントタイプ

https://docs.aws.amazon.com/ja_jp/sns/latest/dg/welcome.html

より抜粋 (視覚的に一部変更。上記の公式サイトの構成図が理解しやすい)
~~~~~~~~~~~~~~~~
クライアントは、
 * Amazon Kinesis Data Firehose
 * Amazon SQS
 * AWS Lambda
 * HTTP(S)
 * E メール
 * モバイルプッシュ通知
 * モバイルテキストメッセージ(SMS:Short Message Service)
など

サポートされているエンドポイントタイプを使用して
SNS トピックにサブスクライブし、公開されたメッセージを受信できます
~~~~~~~~~~~~~~~~
 => Slack に送るっていったこともできる

2)料金

* 以下の公式サイトを参照
 => そんなに大量に送信しなければ安いとは思うが
  いまいち分かりづらい。。。

https://aws.amazon.com/jp/sns/pricing/

【2】SNS設定の流れ

1)Topic を作成
2)メッセージを受け取る受信側(Subscriber)とこの Topic を紐づける

 => Topic にメッセージを送信すると、紐づけられた Subscriber に
  メッセージが Push で送信される

【3】他のAWSサービスとの違い

調べた限りな個人的なイメージで、、、

1)AWS SQSとの違い

https://qiita.com/miyuki_samitani/items/8d38c4421149d7469053

が分かりやすい。

AWS SQSは、あくまで、通知に絡んだキューイングサービス
 => SQSについては、以下の関連記事を参照のこと。

Amazon SQS ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2022/03/10/222201

2)AWS SESとの違い

* 以下の関連記事を参照のこと。

https://dk521123.hatenablog.com/entry/2021/10/14/092313

【4】キュー(Queue)の種類

SNSトピック作成時にキューとして以下の2種類どちらかを選択する

1)Standard
2)FIFO

以下のサイトに比較表。

https://cloudonaut.io/versus/messaging/sqs-fifo-vs-sns/

1)Standard

欠点

* 順番が保証されない
* メッセージが重複する可能性がある
* 呼び出し側が複数回呼んだらその呼び出し回数分実行される

2)FIFO

* FIFO (First In, Firs out; 先入れ先出し)
* Standardの欠点を解消

参考文献

https://dev.classmethod.jp/articles/amazon-sns-2017/
https://qiita.com/shiro01/items/94aad0210917422d105f
https://qiita.com/leomaro7/items/296c46ad6366a8dca28c
https://dev.classmethod.jp/articles/sqs-new-fifo/

関連記事

Amazon SNS ~ 基本編 / Email ~
https://dk521123.hatenablog.com/entry/2021/10/14/092313
Amazon SNSAWS CLI
https://dk521123.hatenablog.com/entry/2024/02/21/141346
Amazon SNS に関するトラブル
https://dk521123.hatenablog.com/entry/2022/02/03/151049
Amazon SES ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2017/04/28/234103
Apache Airflow ~ 通知あれこれ編 ~
https://dk521123.hatenablog.com/entry/2021/10/06/141323
Amazon SQS ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2022/03/10/222201