Amazon SNS による通知サービス

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Amazon SNSとは

Amazon SNS(Simple Notification Service) は、出版(Publish)-購読型(Subscribe)モデルのメッセージ通知インフラを提供するサービスです。SNSは、他のAWSサービスと同様にAPIを持っており、トピックの作成、購読者(サブスクライバー)の登録、メッセージの発行、通知形式の設定等を行うことができます。

通知の種類

Amazon SQSは、トピックを購読する際に形式を指定することができます。現在対応している形式は以下です。

  • HTTP
  • HTTPS
  • Email
  • Email (JSON)
  • Amazon SQS

Amazon SQSに対応しているのは魅力的ですね。イベント駆動でSNSの通知が届くとSQSのキューにジョブが登録されると。このSQSをEC2からポーリングしておけばイベント駆動型の大規模分散処理システムが完成ですw。

トピックの作成

それでは順番に動作を確認してみましょう。 AWS ManagementConsoleを開いてからAmazon SNS タブを選択します。 そして、トピックを新規作成します。

トピックが新規に作成されたことを確認しましょう。

購読の登録

続いて購読者の登録を行います。通知の種類が表示されますので、今回はEmailを選択します。

Emailを選択したら、通知先のメールアドレスを指定します。

登録された購読者は、実際に配信して良いか確認メールが来ます。

Confirm subscription リンクをクリックして確定させます。

確認が成功すると以下のように表示されます。

トピックへの配信

トピックの登録と購読者の登録が完了しましたので、メッセージの配信をやってみます。SubjectはASCII文字列にしてください。Body部は8KBまでのUTF-8文字列を設定できます。

配信が完了すると、成功メッセージが表示されます。実際にメールが届いたことを確認できました。

配送の保証

Amazon SNSはメールやHTTPにてメッセージを配送しますが、これは配送の保証までしてくれるでしょうか?答えはNOです。メール送信やHTTPリクエストが確実に届くかどうかはメッセージがたどり着くまでのネットワークが全て正常に動く必要があり、AWS自身が保証することはできません。もし、配信の保証を行う必要があるならば、メールやHTTPへの通知に加えてAmazon SQSへの通知を合わせて行うことが考えられます。SNSからSQSへの通知は保証できますので、あとはステータス管理をS3やSimpleDBと組み合わせれば完璧です。

まとめ

Amazon SNSは、出版(Publish)-購読型(Subscribe)モデルのメッセージ通知インフラを提供するクラウド上のサービスであり、イベント駆動でメールやHTTPにより通知できることが分かりました。また、他のAWSサービスと組み合わせることで、より安全に安価に簡単にスケーラブルなサービスを構築できることがお分かり頂けたと思います。用法を理解して楽しく使いましょう~

参考ドキュメント

Amazon Simple Notification Service Getting Started Guide