Amazon SNSについて調べたので、まとめたいと思います。
Amazon SNSとは
概要
Amazon Simple Notification Serviceの略です。
配信者(パブリッシャー)から受信者(サブスクライバー)へのメッセージ配信を提供します。
パブリッシャーは「トピック」にメッセージを送信することでサブスクライバーにメッセージを送信します。トピックとは、一または複数のサブスクライバーにメッセージを提供するための場所(アクセスポイント)です。
SNSを使うことで、一または複数のサブスクライバーに対してメッセージを非同期で送信できます。
通信方式
SNSは、以下の2つの通信方式をサポートしています:
- Application to Application(A2A)
- アプリからアプリに通知します。通知先としては、Amazon SQSキュー、Lambda関数、HTTP/Sエンドポイントなどが挙げられます。詳細はこちらをご参照ください。
- Application to Person(A2P)
- アプリから個人(ユーザー)に通知します。通知方法としては、モバイルテキストメッセージング(SMS)、モバイルプッシュ通知、Eメール通知などが挙げられます。詳細はこちらをご参照ください。
FIFOおよび標準トピック
トピックには以下の2種類があります:
- FIFO(First in First out)
- メッセージがトピックに送信されるのと同じ順番で配信されます
- 配信メッセージが重複しません
- 標準
- メッセージの配信順序が保証されません
- メッセージが重複して配信される可能性があります
費用
こちらをご参照ください。
チュートリアル
コンソールから操作
コンソールを使った操作(チュートリアル)についてはドキュメントがわかりやすいので、そちらをご参照ください。
AWS CLIから操作
トピックの作成
create-topic
コマンドを使用します。
標準トピック
aws sns create-topic --name my-topic
FIFOトピック
aws sns create-topic --name my-topic.fifo --attributes FifoTopic=true
サブスクリプションの作成
sns subscribe
コマンドを使用します。
次の例では、emailプロトコルとnotification-endpointのEメールアドレスを指定します。
aws sns subscribe --topic-arn arn:aws:sns:us-west-2:123456789012:my-topic --protocol email --notification-endpoint saanvi@example.com
メッセージの発行
sns publish
コマンドを使用します。
次の例は、「Hello World!」というメッセージを指定されたトピックのサブスクライバー全員に送信します。
aws sns publish --topic-arn arn:aws:sns:us-west-2:123456789012:my-topic --message "Hello World!"
トピックからサブスクリプションを解除する
sns unsubscribe
コマンドを使用し、サブスクリプションARNを指定します。
aws sns unsubscribe --subscription-arn arn:aws:sns:us-west-2:123456789012:my-topic:1328f057-de93-4c15-512e-8bb22EXAMPLE
トピックの削除
sns delete-topic
コマンドを指定します。
aws sns delete-topic --topic-arn arn:aws:sns:us-west-2:123456789012:my-topic
トピックの一覧の確認
sns list-topics
コマンドを使用します。
aws sns list-topics
まとめ
本記事ではAmazon SNSについてまとめました。
コンソール、CLIを使った操作については試したのですが、SDK、terraform等を使った操作はまだ試していません。これらを試してまとめたいと思います。
コメント