

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

# Amazon SNS とは
<a name="welcome"></a>

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

## 仕組み
<a name="how-it-works"></a>

SNS では、パブリッシャーは通信チャネルとして機能するトピックにメッセージを送信します。トピックは論理アクセスポイントとして機能し、メッセージがさまざまなプラットフォームにある複数のサブスクライバーに配信されるようにします。

SNS トピックのサブスクライバーは、次のようなユースケースに応じて、さまざまなエンドポイントを経由してメッセージを受信できます。
+ Amazon SQS
+ Lambda
+ HTTP/HTTPS エンドポイント
+ 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 エンドポイント、Data Firehose などの A2A エンドポイントと、SMS、モバイルプッシュ通知、E メールなどの A2P エンドポイントが表示されます。これは非同期のイベント駆動型通信における Amazon SNS の柔軟性を示すものです。](http://docs.aws.amazon.com/ja_jp/sns/latest/dg/images/sns-delivery-protocols.png)


## Amazon SNS へアクセスする
<a name="welcome-accessing"></a>

任意のインタラクション方法に応じて、コンソール AWS CLI、または AWS SDKs を使用して Amazon SNS にアクセスして管理できます。コンソールは基本的なタスク用のグラフィカルインターフェイスを提供しますが、 AWS CLI および SDKsはより複雑なユースケース用の高度な設定および自動化機能を提供します。
+ [Amazon SNS コンソール](https://console.aws.amazon.com/sns/v3/home)は、トピックとサブスクリプションの作成、メッセージの送信と受信、イベントとログのモニタリングを行うための便利なユーザーインターフェイスを提供します。
+  AWS Command Line Interface (AWS CLI) を使用すると、高度な設定と自動化のユースケースのために Amazon SNS API に直接アクセスできます。詳細については、「[AWS CLIでの Amazon SNS の使用](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-sns.html)」を参照してください。
+ AWS は、さまざまな言語で SDKsを提供します。詳細については、 「[SDK とツールキット](https://aws.amazon.com/getting-started/tools-sdks/)」を参照してください。

## 一般的な Amazon SNS シナリオ
<a name="sns-common-scenarios"></a>

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

### アプリケーション統合
<a name="SNSFanoutScenario"></a>

*ファンアウト*シナリオでは、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 つはデータ分析を実行します。これはイベント駆動型アプリケーションの並列非同期メッセージ配信を示すものです。](http://docs.aws.amazon.com/ja_jp/sns/latest/dg/images/sns-fanout.png)


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

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

詳細については、以下のリソースを参照してください。
+ [Firehose 配信ストリームへのファンアウト](sns-firehose-as-subscriber.md)
+ [Amazon SNS 通知の Lambda 関数へのファンアウトと自動処理](sns-lambda-as-subscriber.md)
+ [Amazon SNS 通知の Amazon SQS キューへのファンアウトと非同期処理](sns-sqs-as-subscriber.md)
+ [Amazon SNS 通知の HTTPS エンドポイントへのファンアウト](sns-http-https-endpoint-as-subscriber.md)
+ [ Amazon SNS と AWS コンピューティング、ストレージ、データベース、ネットワーキングサービスを使用したイベント駆動型コンピューティング](https://aws.amazon.com/blogs/compute/event-driven-computing-with-amazon-sns-compute-storage-database-and-networking-services/) 

### アプリケーションアラート
<a name="SNSAlertsScenario"></a>

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

### ユーザー通知
<a name="SNSPushMessaging"></a>

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

### モバイルプッシュ通知
<a name="SNSMobilePushScenario"></a>

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

## Amazon SNS の料金
<a name="welcome-pricing"></a>

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