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の仕組み
図は公式サイトから拝借してきたものパブリッシャー
パブリッシャー(発行者)はメッセージを送信するシステム、マイクロサービス、その他のAWSサービスを指します。トピック
Amazon SNSを使うにはトピックを定義します。これは一方通行のチャットルームのようなものだと思えばよいでしょう。
ここにメッセージを登録することで、紐づけられたサブスクライバー(購読者)全員にメッセージが届く仕組みです。
サブスクリプション
トピックに紐づける送信先の定義です。メッセージのプロトコルと電話番号やメールアドレスをセットで登録します。
メールとSMSを送ってみる
マネジメントコンソールからAmazon SNSを開きます。トピックを作成する
まずは、メッセージを送るためのトピックを作成します。サイドバーから「トピック」を選び「トピックの作成」を選択します。
名前を付けてトピックを作成します。
とりあえず使うだけなら、オプションはデフォルトで大丈夫です。
サブスクリプションを作成する
トピックを作成したら、その中に送信先であるサブスクリプションを作成します。「サブスクリプションの作成」を押しましょう。
Eメールのサブスクリプションを作成する
トピックとプロトコルを選択し、エンドポイントには送信先のEメールを入力し、「サブスクリプションの作成」を押しましょう。サブスクリプションを作成すると送信先の検証が行われ、設定したメールアドレスに認証確認メールが飛んできます。
「Confirm subscription」を押すとAWSのサイトに飛ばされ認証が成功します。
SMSのサブスクリプションを作成する
SMSの場合は、特に認証は必要ありません。日本の携帯番号に送る場合は先頭に「+81」の国番号を付け、本来の携帯番号の先頭のゼロは取り除いて入力しましょう。
例えば「090-XXXX-YYYY」という番号なら「+8190XXXXYYYY」です。
メッセージを送信する
トピックの画面に戻り、右上の「メッセージの発行」を押します。メッセージを作成する画面に移動します。
ここでメッセージの内容を設定します。
紐づけているサブスクリプションに一斉送信されるのですが、配信プロトコルごとにメッセージを変えることができるようになっています。
今回はEメールにもSMSにも同じ「テストメッセージ」を送ります。 右下の「メッセージの発行」を押すとメッセージが送信されます。
実際に送信されたメッセージがこちら。
今回はマネジメントコンソールからやりましたが、アプリケーションから起動すればメール送信などを簡単に実装できそうですね。
では。
ディスカッション
コメント一覧
まだ、コメントがありません