このチュートリアルでは、Amazon Simple Notification Service (SNS) と Amazon Simple Queue Service (SQS) を使用してファンアウトメッセージングシナリオを実装します。このシナリオでは、メッセージが複数の受信者に "プッシュ" されるため、更新の定期的な確認やポーリングが必要なくなり、受信登録者によるメッセージの並列/非同期処理を可能にします。
これを説明するために、ここでは、オンラインストアで注文が行われるたびに Amazon SNS メッセージをトピックに送信するクラウドネイティブのアプリケーションを開発していると仮定します。このトピックをサブスクライブしている各 Amazon SQS キューでは、新しい注文について同じ通知を受け取ります。
このチュートリアルで使用する AWS のサービスは AWS 無料利用枠の適用内です。
AWS でファンアウトイベント通知を送信するには、アカウントが必要です
今すぐ無料アカウントを作成するAWS 無料利用枠では、Amazon Simple Notification Service で 1,000,000 件の発行、Amazon Simple Queue Service で 1,000,000 件のリクエストを無料でご利用いただけます。
ここをクリックすると、AWS マネジメントコンソールが新しいブラウザウィンドウで開くため、このステップバイステップガイドを開いたままで操作できます。画面が読み込まれたら、ユーザー名とパスワードを入力して作業を開始します。検索バーに「notification」と入力し、[Simple Notification Service] を選択してサービスのコンソールを開きます。
このステップでは、Amazon SNS トピックを作成します。トピックは、メッセージを送信し、通知をサブスクライブするための通信チャネルです。この例では、オンラインストアで新しい注文が行われるたびに、サンプルの e コマースアプリケーションによってメッセージが Amazon SNS トピックにプッシュされます。
Amazon SNS でトピックを作成したので、今度は、トピックをサブスクライブする Amazon SQS キューを作成します。
複数のキューで 1 つのトピックをサブスクライブすると、メッセージがそのトピックにプッシュされるたびに各キューに同じ通知が送信されます。これらのキューにアタッチされたサービスでは、注文を並列/非同期で処理できます。
例えば、キューのいずれかにアタッチされた Amazon EC2 サーバーインスタンスで注文の処理またはフルフィルメントを行い、受け取ったすべての注文を分析するために、別のサーバーインスタンスをデータウェアハウスにアタッチできます。
このチュートリアルでは、簡単にするために EC2 インスタンスをキューにアタッチしません。
a.ここをクリックして、Amazon SQS コンソールを新しいブラウザウィンドウで開きます。SQS のランディングページが表示されたら、[今すぐ始める] をクリックします。それ以外の場合、次のステップに進みます。
2 つの Amazon SQS キューを作成したので、この 2 つのキューで新しい注文の通知をブロードキャストする Amazon SNS トピックをサブスクライブする必要があります。
b.[トピックへサブスクライブする] ダイアログボックスが表示されます。[トピックの選択] ドロップダウンの一覧から [New-Orders] Amazon SNS トピックを選択します。
SNS トピックは、Amazon SQS キューを作成したときと同じアカウントを使用して作成しているため、リストに表示されます。別のアカウントを使用して SNS トピックを作成した場合、トピック ARN を使用してサブスクライブできます。詳細については、Amazon SNS のドキュメントを参照してください。
[トピックリージョン] はそのままにし、[サブスクライブ] をクリックします。
キューでトピックをサブスクライブするようになりました。このステップでは、架空の e コマースアプリケーションで注文の詳細に関するメッセージをトピックにプッシュし、新しい注文をシミュレートします。
新しいメッセージが発行されると、Amazon SNS から、トピックをサブスクライブしているすべてのエンドポイントにそのメッセージが配信されます。このようなファンアウトシナリオでは、Amazon SQS キューがエンドポイントになります。
このステップでは、トピックからキューに送信されたメッセージを表示して、キューで新しい注文の通知を受け取ったことを確認します。
このステップでは、このチュートリアルで作成したリソース (トピックサブスクリプション、トピック、キュー) を削除します。料金が発生しないように、使用していないリソースは削除することがベストプラクティスです。
Amazon SNS と Amazon SQS を使用してファンアウトシナリオを実装しました。Amazon SNS と Amazon SQS を共に使用して、イベントの即時通知が必要なアプリケーションにメッセージを配信したり、後で他のアプリケーションで処理するために Amazon SQS キューでメッセージを保持したりすることができるようになりました。
Amazon Simple Notification Service と Amazon Simple Queue Service を使用してメッセージファンアウト通知を実装する方法を習得したので、以下のいずれかをクリックして、AWS でのクラウドメッセージングについてさらに詳しく学習しましょう。
詳細を確認する
アマゾン ウェブ サービス (AWS) でのメッセージトピックの機能、コンポーネント、ユースケースに関する概要を確認しましょう。Amazon SNS ウェブページにアクセスする »
掘り下げる
クラウドからすぐに通知を送信し、アプリケーション、エンドユーザー、デバイスで通知を受信する方法を確認しましょう。ドキュメントを読む »
実際の事例を見る
Capital One のようなお客様が Amazon SQS と Amazon SNS をどのように使用して、アプリケーションを疎結合化し、スケールしているかをご覧ください。オンラインセミナーを見る »