・Amazon Simple Notification Service(SNS)】
プッシュ型のメッセージングサービス。システムの状態に変化があった際のシステム管理者への通知や不特定多数のユーザーへの定期的なメッセージ配信などを、EメールやSMS(Short Message Service)、Amazon SQSを通してユーザーやアプリケーションに対して通知。
利用できる通知方法(プロトコル)には、Eメール、HTTP/HTTPSやモバイル(iOS、Android)端末へのプッシュ通知など。またAmazon SQSへキューを登録したり、AWS Lambdaと連携してLambda関数を呼び出すといった使い方もあります。
メッセージの発行者は、プロトコルやメッセージの通知先(購読者)の存在などを意識せずにメッセージを発行できるため、複数のアプリケーション間を低い結合度(疎結合)で連携することができます。
SNSにおける情報の単位は「トピック」で管理。
トピック所有者(トピックオーナー)が作成したトピックに対して、「発行者(Publisher:パブリッシャ)」がメッセージを発行。メッセージの受信者は「購読者(Subscriber:サブスクライバ)」といい、得たい情報のトピックを選択して受信登録。
・発行者(Publisher)
発行者(Publisher)は、Amazon SNSにおけるメッセージを発信するアプリケーションなど。発行者はメッセージを発行したいトピックを選択してメッセージを配信します。購読者の存在やプロトコルの種類などは意識する必要はありません。
・購読者(Subscriber)
メッセージを受け取る(購読する)アプリケーションやユーザー。購読者は通知を得たいトピックに対してプロトコルを選択して登録
■トピックの種類
SNSでトピックを作成する際には「FIFO(First In First Out)」または「標準(スタンダード)」のいずれかを選択します。
「FIFO」を選択すると、「標準」の機能である暗号化やフィルタリング機能などに加えて、メッセージが順序付けられてAmazon SQSのFIFOキューへ配信されます(FIFOトピックを選択した場合、プロトコルに指定できるのはSQSのみです)。また、FIFOトピックではメッセージの重複排除機能を有効化できます。標準トピックではメッセージの配信は「少なくとも1回」であるのに対して、重複排除を有効にすると、メッセージは必ず1回だけ配信されるようになります。
FIFOトピックは、イベントが発生した順番通りに処理したい場合や、処理が重複してはいけないようなケースで利用。