■Amazon SNS の特徴
- 完全マネージド型 pub/sub メッセージングサービスです。
- プッシュ(Push)方式のメッセージングサービスです。
- 送信側がトピックを作成して受信側をポリシー指定することで制御された非同期通信を実現することができます。
- メール受信をトリガーに Lambda 関数を起動可能です。
- ドメインやメール登録を事前申請する必要があります。
- SNS のメッセージには永続性はありません。
Pub/Subメッセージングとは
Pub/Subメッセージングが分かりにくいと思います。
- Pub/Subメッセージング ← パブリッシュ/サブスクライブ(Publish-Subscribe)方式でメッセージを送受信する。イベントを処理するサービスとイベントを生成するサービスを切り離す非同期メッセージングサービス。
Pub/Sub メッセージングとは、メッセージの送信側と受信側を結合しないことにより、非同期的に送信側から受信側にメッセージを伝達する仕組みです。
非同期という部分がポイントです。
メッセージの送信側と受信側を結合しないことにより非同期的に送信側から受信側にメッセージを送る仕組みなので、メールサーバー(Sendmail等)とメールクライアント(Outlook等)の構成に似ています。
また、送信者は対象とする受信者にあわせて「トピック」を選択してメッセージを送信し、受信者は受信したいメッセージの「トピック」を購読することにより、その受信者が必要なメッセージのみを受信します。
特定のメッセージが「トピック」により仕分けられ購読者にのみ送信される、という意味では、Pub/Sub メッセージングは、単純なメールサーバーとメールクライアントの構成ではなく、メーリングリストの仕組みに近いと言えます。
Pub/Sub メッセージングをメーリングリストに例えて解説すると以下のようになります。
- メール発信者(Sendmail) ← パブリッシャー
- メーリングリスト ← トピック
- メーリングリストの購読者(Outlook) ← サブスクライバー
正確に言えば異なると思いますが、このように考えると若干イメージが湧くと思います。
様々なメーリングリストがあって、メール受信者はどのメーリングリストに登録して情報を取得するか選択ができるということでしょうか。
■SNS と SQS の違い
- Amazon SNS ← プッシュ方式。メッセージングサービス。(メール、HTTP/HTTPS、SQS、モバイルプッシュ)
- Amazon SQS ← ポーリング方式。キューイングサービス。メッセージはプッシュしないので受信者がポーリング、またはプルする必要があります。
■Amazon SNSとAmazon SESの違い
- Amazon SNS ← メールだけではなく、スマホへの SMS 送信、スマホアプリへの PUSH 通知など可能。
- Amazon SES ← メール送信サービス。
サブスクリプションで選択できるプロトコル
サブスクリプションの作成時に以下のプロトコルが選択できます。
- Amazon Kinesis Data Fireshose
- Amazon SQS
- AWS Lambda
- E メール
- HTTP
- HTTPS
- JSON 形式のメール
- SMS
- プラットフォームアプリケーションのエンドポイント
HTTP/HTTPS
Amazon SNS は HTTP POST リクエストを送信し、通知の内容をサブスクライブしたエンドポイントに配信します。エンドポイントをサブスクライブする際は、Amazon SNS が POST リクエストをエンドポイントに送信するときに HTTP を使用するか HTTPS を使用するかを選択します。HTTPS を使用する場合は、以下に対して Amazon SNS のサポートを利用できます。
AWS Lambda
SNS をトリガーにして AWS Lambda を実行することができます。
コメント