Amazon SNSでメールとSMS通知を飛ばす
AWSにはAmazon SNS(Simple Notification Service)というサービスがあります。
これはサーバーレスアーキテクチャのためのサービスで、サーバーを用意せずともアプリケーションからの通知を実装できる便利なサービスです。
使える通知プロトコルにはhttps、https、Eメール、Amazon SQS、AWS Lambda、SMS(Short Message Service)などがあります。
今回は、このAmazon SMSを使ってメールとSMSで通知を飛ばしてみようと思います。
Amazon SNSの仕組み
図は公式サイトから拝借してきたもの![](https://www.blog.danishi.net/wp-content/uploads/2019/06/product-page-diagram_SNS_how-it-works_1.53a464980bf0d5a868b141e9a8b2acf12abc503f-1024x328.png)
パブリッシャー
パブリッシャー(発行者)はメッセージを送信するシステム、マイクロサービス、その他のAWSサービスを指します。トピック
Amazon SNSを使うにはトピックを定義します。これは一方通行のチャットルームのようなものだと思えばよいでしょう。
ここにメッセージを登録することで、紐づけられたサブスクライバー(購読者)全員にメッセージが届く仕組みです。
サブスクリプション
トピックに紐づける送信先の定義です。メッセージのプロトコルと電話番号やメールアドレスをセットで登録します。
メールとSMSを送ってみる
マネジメントコンソールからAmazon SNSを開きます。![](https://www.blog.danishi.net/wp-content/uploads/2019/06/image-1024x449.png)
トピックを作成する
まずは、メッセージを送るためのトピックを作成します。サイドバーから「トピック」を選び「トピックの作成」を選択します。
![](https://www.blog.danishi.net/wp-content/uploads/2019/06/image-1-1024x242.png)
とりあえず使うだけなら、オプションはデフォルトで大丈夫です。
![](https://www.blog.danishi.net/wp-content/uploads/2019/06/image-2-1024x866.png)
サブスクリプションを作成する
トピックを作成したら、その中に送信先であるサブスクリプションを作成します。「サブスクリプションの作成」を押しましょう。
![](https://www.blog.danishi.net/wp-content/uploads/2019/12/unnamed-file-3.png)
Eメールのサブスクリプションを作成する
トピックとプロトコルを選択し、エンドポイントには送信先のEメールを入力し、「サブスクリプションの作成」を押しましょう。![](https://www.blog.danishi.net/wp-content/uploads/2019/12/unnamed-file-4.png)
![](https://www.blog.danishi.net/wp-content/uploads/2019/12/unnamed-file-5.png)
![](https://www.blog.danishi.net/wp-content/uploads/2019/12/unnamed-file-8.png)
SMSのサブスクリプションを作成する
SMSの場合は、特に認証は必要ありません。日本の携帯番号に送る場合は先頭に「+81」の国番号を付け、本来の携帯番号の先頭のゼロは取り除いて入力しましょう。
例えば「090-XXXX-YYYY」という番号なら「+8190XXXXYYYY」です。
![](https://www.blog.danishi.net/wp-content/uploads/2020/02/image-6.png)
メッセージを送信する
トピックの画面に戻り、右上の「メッセージの発行」を押します。![](https://www.blog.danishi.net/wp-content/uploads/2019/12/unnamed-file-9.png)
メッセージを作成する画面に移動します。
ここでメッセージの内容を設定します。
紐づけているサブスクリプションに一斉送信されるのですが、配信プロトコルごとにメッセージを変えることができるようになっています。
今回はEメールにもSMSにも同じ「テストメッセージ」を送ります。
![](https://www.blog.danishi.net/wp-content/uploads/2019/12/unnamed-file-10.png)
実際に送信されたメッセージがこちら。
![](https://www.blog.danishi.net/wp-content/uploads/2019/12/unnamed-file-11.png)
![](https://www.blog.danishi.net/wp-content/uploads/2019/06/IMG_2685-576x1024.png)
今回はマネジメントコンソールからやりましたが、アプリケーションから起動すればメール送信などを簡単に実装できそうですね。
では。
ディスカッション
コメント一覧
まだ、コメントがありません