Amazon SNS とは - Amazon Simple Notification Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon SNS とは

Amazon Simple Notification Service (Amazon SNS) は、パブリッシャー (プロデューサー) からサブスクライバー (コンシューマー) へのメッセージ配信を提供するフルマネージドサービスです。発行者は、論理アクセスポイントおよび通信チャネルであるトピックにメッセージを送信することで、受信者と非同期的に通信します。

仕組み

SNS では、パブリッシャーは通信チャネルとして機能するトピックにメッセージを送信します。トピックは、さまざまなタイプのサブスクライバーへのメッセージの配信を容易にする論理アクセスポイントです。

SNS トピックのサブスクライバーは、次のようなユースケースに最適なさまざまなエンドポイントを使用してメッセージを受信できます。

  • Amazon SQS

  • Lambda

  • HTTP(S) エンドポイント

  • E メール

  • モバイルプッシュ通知

  • モバイルテキストメッセージ (SMS)

  • Amazon Data Firehose

  • サービスプロバイダー (Datadog、MongoDB、Splunk など)

SNS はApplication-to-Application (A2A) メッセージングと Application-to-Person (A2P) メッセージングの両方をサポートしているため、さまざまなアプリケーション間で、または携帯電話、E メールアドレスなどに直接メッセージを送信する柔軟性が得られます。

Amazon SNS は、Application-to-Application (A2A) エンドポイントと Application-to-Person (A2P) エンドポイントの両方で、パブリッシャーからサブスクライバーにメッセージを送信します。Lambda 関数、Amazon SQS キュー、HTTP/S エンドポイント、Amazon Kinesis Data Firehose などの A2A エンドポイントと、SMS、モバイルプッシュ通知、E メールなどの A2P エンドポイントが表示されます。これは非同期のイベント駆動型通信における Amazon SNS の柔軟性を示すものです。

Amazon SNS へアクセスする

Amazon SNS には、希望する操作方法に応じて AWS CLI、コンソール、または AWS SDKs を使用してアクセスおよび管理できます。コンソールには基本的なタスク用のグラフィカルインターフェイスが用意されていますが、 AWS CLI および SDKsには、より複雑なユースケース用の高度な設定および自動化機能が用意されています。

  • Amazon SNS コンソールは、トピックとサブスクリプションの作成、メッセージの送信と受信、イベントとログのモニタリングを行うための便利なユーザーインターフェイスを提供します。

  • AWS Command Line Interface (AWS CLI) を使用すると、Amazon SNS API に直接アクセスして、高度な設定と自動化のユースケースに対応できます。詳細については、「AWS CLIでの Amazon SNS の使用」を参照してください。

  • AWS は、さまざまな言語で SDKsを提供します。詳細については、 「SDK とツールキット」を参照してください。

一般的な Amazon SNS シナリオ

これらの一般的な Amazon SNS シナリオを使用して、スケーラブルなイベント駆動型アーキテクチャを実装し、アプリケーションとユーザー間の信頼性の高いリアルタイムの通信を確保します。

アプリケーション統合

ファンアウトシナリオでは、SNS トピックに発行されたメッセージがレプリケートされ、Firehose 配信ストリーム、Amazon SQS キュー、HTTP(S) エンドポイント、Lambda 関数などの複数のエンドポイントにプッシュされます。これで並列非同期処理が可能になります。

例えば、ある製品が注文されるたびにトピックに SNS メッセージを送信するアプリケーションを開発できます。そうすると、その SNS トピックにサブスクライブされている SQS キューは、新しい注文に関する同一の通知を受け取ります。SQS キューの 1 つに添付された Amazon Elastic Compute Cloud (Amazon EC2) サーバーインスタンスは、注文の処理や実行を処理できます。また、受信したすべての注文を分析するために、別の Amazon EC2 サーバーインスタンスをデータウェアハウスにアタッチすることもできます。

Amazon SNS のファンアウトシナリオでは、1 つのパブリッシャーから単一のメッセージが 1 つの Amazon SNS トピックに送信され、Amazon SQS キューなどの複数のエンドポイントにレプリケートされます。各 Amazon SQS キューはメッセージを Amazon EC2 インスタンスに転送します。1 つは注文処理を処理し、もう 1 つはデータ分析を実行します。これはイベント駆動型アプリケーションの並列非同期メッセージ配信を示すものです。

ファンアウトは、本番稼働用環境に送信されるデータを、テスト環境にレプリケートすることにも使用できます。前の例から発展させて、新しい受注用に同じ SNS トピックに別の SQS キューをサブスクライブすることもできます。次に、この新しい SQS キューをテスト環境に添付することで、本番稼働用環境から受け取ったデータを使用してアプリケーションの改善とテストを継続することができます。

重要

本番稼働用データをテスト環境に送信する前に、データのプライバシーとセキュリティを考慮してください。

詳細については、以下のリソースを参照してください。

アプリケーションアラート

アプリケーションおよびシステムアラートは、事前定義されたしきい値によってトリガーされた送信される通知です。Amazon SNS は、SMS および E メールを使用して、指定されたユーザーにこれらの通知を送信できます。例えば、Amazon EC2 Auto Scaling グループに対する特定の変更、Amazon S3 バケットにアップロードされた新しいファイル、Amazon CloudWatch でメトリクスしきい値に違反したなどのイベントが発生した場合、ただちに通知を受信することができます。詳細については、『Amazon CloudWatch ユーザーガイド』の「Amazon SNS 通知の設定」を参照してください。

ユーザー通知

Amazon SNS では、プッシュ E メールメッセージとテキストメッセージ (SMS メッセージ) を個人またはグループに送信できます。例えば、e コマースの注文確認をユーザー通知として送信できます。Amazon SNS を使用した SMS メッセージの送信の詳細については、「Amazon SNS を使用したモバイルテキストメッセージ」を参照してください。

モバイルプッシュ通知

モバイルプッシュ通知を使用すると、モバイルアプリケーションに直接メッセージを送信できます。例えば、Amazon SNS を使用して、アプリケーションに更新通知を送信できます。通知メッセージには、更新をダウンロードおよびインストールするためのリンクを含めることができます。Amazon SNS を使用したプッシュ通知メッセージの送信の詳細については、「Amazon SNS でモバイルプッシュ通知を送信する」を参照してください。

Amazon SNS の料金

Amazon SNS には前払いのコストはかかりません。発行するメッセージの数、配信する通知の数、およびトピックとサブスクリプションを管理するための追加の API コールに基づいてお支払いいただきます。配信料金は、エンドポイントのタイプによって異なります。Amazon SNS 無料利用枠を使用すれば、無料で始められます。詳細については、「世界各国の SMS 料金」を参照してください。