■ はじめに
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 SNS ~ AWS 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