floci#Part03_SNSを試しましょう!_JP

こちらは新しい記事シリーズでflociを利用しAWSの勉強を進めたいと思います。第3話はSNSの仕組み、そしてSQSと組み合わせの動作を一緒に見てみましょう。

Reference Link

http://soup01.com/ja/category/cloud-ja/floci/

SNS(Simple Notification Service)?

SNSとは、1つのメッセージを複数の宛先に同時配信するサービスです。

SNSの重要な概念

次はSNSの重要な言葉を説明します。

Topic(トピック)

メッセージの配信先をまとめるグループ。1つのTopicに複数のSubscriberを登録できます。

Subscription(サブスクリプション)

TopicとSubscriberの紐付け。誰がそのTopicのメッセージを受け取るかを定義します。

Publisher(パブリッシャー)

メッセージを送信する側。

Subscriber(サブスクライバー)

メッセージを受信する側。SQS、Lambda、HTTPなどが対応しています。

基本操作

これからは基本操作を作成します。

Topicを作成

最初に下記のコメントでTopic cnc-001-statusを作成します。

aws sns create-topic \
–name cnc-001-status

Topicの一覧確認

下記のコメントで現在存在してるTopicをリストアップします。

aws sns list-topics

Subscriptionの追加

次はキューを作成します。

aws sqs create-queue \
–queue-name cnc-001-queue

aws sns subscribe \
–topic-arn arn:aws:sns:us-east-1:000000000000:cnc-001-status \
–protocol sqs \
–notification-endpoint arn:aws:sqs:us-east-1:000000000000:cnc-001-queue

複数のSubscription

SNSの検証は1対1だと効果がみえませんので、複数のSQSを作成し検証していきます。

SNS Topic (cnc-001-status)

↙ ↓ ↘

cnc-001 cnc-001 cnc-001

-queue -log -alert

(1回の送信で3つ全部に届く)

複数のキュー作成

aws sqs create-queue –queue-name cnc-001-log
aws sqs create-queue –queue-name cnc-001-alert

Topic cnc-001-status SNS Subscription

aws sns subscribe \
–topic-arn arn:aws:sns:us-east-1:000000000000:cnc-001-status \
–protocol sqs \
–notification-endpoint arn:aws:sqs:us-east-1:000000000000:cnc-001-alert

aws sns subscribe \
–topic-arn arn:aws:sns:us-east-1:000000000000:cnc-001-status \
–protocol sqs \
–notification-endpoint arn:aws:sqs:us-east-1:000000000000:cnc-001-log

メッセージ送信

SNS メッセージを送信します。

aws sns publish \
–topic-arn arn:aws:sns:us-east-1:000000000000:cnc-001-status \
–message “CNC-001: 異常検知!”

メッセージ受信

そして複数のキューにも同時にメッセージ受信されました。

aws sqs receive-message –queue-url http://localhost:4566/000000000000/cnc-001-queue
aws sqs receive-message –queue-url http://localhost:4566/000000000000/cnc-001-log
aws sqs receive-message –queue-url http://localhost:4566/000000000000/cnc-001-alert

シェアする

  • このエントリーをはてなブックマークに追加

フォローする