Amazon SNS のアイコン

Amazon SNS

Pub/Sub 型のフルマネージドメッセージ通知サービス

何ができるか

Amazon SNS (Simple Notification Service) は、パブリッシュ/サブスクライブ (Pub/Sub) モデルのメッセージ通知サービスです。1 つのメッセージを複数のサブスクライバー (SQS キュー、Lambda 関数、HTTP エンドポイント、メール、SMS など) に同時配信できます。メッセージのファンアウト (1 対多の配信) に最適です。

どのような場面で使うか

アプリケーションのアラート通知、マイクロサービス間のイベントファンアウト、モバイルプッシュ通知、SMS による二要素認証、システム障害時のメール通知などに利用されます。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。

身近な例え

館内放送に例えられます。放送室 (パブリッシャー) からアナウンスすると、各フロアのスピーカー (サブスクライバー) に同時に届きます。特定のフロアだけに放送する (メッセージフィルタリング) ことも可能です。

SNS とは

Amazon SNS は、メッセージを複数の宛先に同時配信する Pub/Sub サービスです。トピックと呼ばれるチャネルにメッセージをパブリッシュすると、そのトピックをサブスクライブしている全ての宛先にメッセージが配信されます。SQS が 1 対 1 の通信に適しているのに対し、SNS は 1 対多の通信に適しています。

トピックの種類とフィルタリング

SNS にはスタンダードトピックと FIFO トピックがあります。スタンダードトピックはほぼ無制限のスループットを提供します。FIFO トピックはメッセージの順序保証と重複排除を提供し、SQS FIFO キューとの組み合わせで使用します。サブスクリプションフィルターポリシーを設定すると、メッセージの属性に基づいて特定のサブスクライバーにのみ配信できます。

はじめかた

SNS コンソールで「トピックの作成」を選択し、トピック名を指定します。サブスクリプションを作成してプロトコル (Email、SQS、Lambda など) とエンドポイントを指定します。AWS SDK からトピックにメッセージをパブリッシュすると、全サブスクライバーに配信されます。無料利用枠として月間 100 万パブリッシュが常時無料です。

注意点

  • スタンダードトピックではメッセージの順序保証がないため、順序が重要な場合は FIFO トピックを使用する
  • SMS 送信は国・地域によって料金が大きく異なる。大量送信の場合はコストを事前に確認すること
  • 無料利用枠として月間 100 万パブリッシュ、10 万 HTTP 配信、1,000 メール配信が常時無料

さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。