Amazon SNS(Simple Notification Service) について
はじめに
特定のサービスにメッセージを送信するためのサービスとして、AWS より提供されている Amazon Simple Notification Service というサービスがあります。サーバーを用意する必要がなく、初期費用も一切かからず、かつ、ソフトウェアのインストールや設定等も行わずに使用できるこのサービスの特徴についてまとめていきます。
Amazon Simple Notification Service とは
Amazon Simple Notification Service (SNS) は、クライアントに対するメッセージの配信および送信を管理するフルマネージド型のウェブサービスです。メッセージの発行者(あるいはシステム)は、トピックという論理アクセスポイントにメッセージを作成して送信することで、トピックに紐づけられた受信者に対してメッセージが非同期に一括で届けられる仕組みです。
メッセージを受け取るクライアントがサポートされているプロトコルは以下の通りです。
Amazon SNS の特徴
他にも似たようなサービス(Amazon SQS 等)がある中、Amazon SNS を使用する利点は何か。Amazon SNS の特徴として以下の点が挙げられます。
- ・プッシュ型の配信
- メッセージ発行者のトリガーでメッセージが配信されるため、ポーリングにより更新を定期的に確認する必要性がなく、メッセージ配信に即時性があります。
- ・複数のプロトコルに対応
- 上記にあるようにマルチプロトコルをサポートしており、これらのプロトコルを使ってメッセージを一斉送信することができます。
- ・低コスト
- Amazon SNS のメッセージは冗長化されていてロストされにくいように設計されているにも関わらず、前払い料金のない従量課金型で非常に低価格で提供されています。
- ・シンプルな API
- シンプルな API であり、アプリケーションとの統合も容易に行うことができます。
- ・シンプルな設定環境の提供
- ウェブベースの AWS マネジメントコンソールにより、簡単に使用することが可能です。
- トピックを作成する
AWS アカウント内で一意のトピック名、表示名(省略可能)を設定してトピックの作成を行います。トピックが作成されることで一意の ARN(Amazon リソース名) が割り当てられ、以降そのトピックに対するアクションはこの一意のトピック ARN を参照します。 - サブスクリプションを作成する
トピックとプロトコルを選択し、エンドポイントを定義します。選択するプロトコルによって、エンドポイントに設定する情報は異なります。(例:HTTP/HTTPS → URL、Eメール → メールアドレス、SMS → 電話番号、など) - トピックにメッセージを発行する
Amazon SNS はそのトピックに紐付けされているサブスクリプションを照合し、メッセージを各エンドポイントに一斉に送信します。
Amazon SNS の使用手順
AWS マネジメントコンソールを使用して、下記の手順を行います。
まとめ
Amazon SNS の特徴についてまとめました。Amazon SNS はシンプルな使用方法でイベント通知やアプリケーションのモニタリング、即時性が必要な情報更新、モバイルアプリケーション、通知を必要とするその他あらゆるアプリケーションなど、非常に幅広いニーズに対応できる便利なサービスです。それゆえ利用シーンも多様にあるため、しっかりと特徴を把握して使いこなしていきたいです。
<注釈>
※1 … Amazon SQS とは
Amazon SQS は、サービス間でのメッセージのやり取りを管理するフルマネージド型のメッセージキューイングサービスです。SQS を使用することで、マイクロサービス、分散システム、およびサーバーレスアプリケーションの切り離しとスケーリングを行うことができます。Amazon SNS とは異なり、メッセージの送受信を行う際に同時に利用可能な各コンポーネントを必要としないのが特徴です。
※2 … AWS Lambda とは
AWS Lambda は、AWS が提供するサーバーレスコンピューティングサービスです。ユーザーはサーバーを用意することなく、コードを実行できる環境を使用することができます。