buto > /dev/null

だいたい急に挑戦してゴールにたどり着かずに飽きる日々です

AWSメッセージキュー SNS

AWS資格試験の模擬テストにメッセージキューが頻出するけど違いが分からない、覚えられないのでまとめておく。

AWS複数種類のメッセージキュー(MQ)が提供されているから1つずつ覚えていきます!

メッセージキューってなに??

メールやSMSメッセージ通知をする時にメッセージ作成アプリ→配信アプリに橋渡しをするキュー

メッセージキューって名前だけどメッセージ配信以外のアプリ間データ連携に利用されている

直接アプリ同士で連携してもいいけど、大量データだとアプリサーバに負荷が掛かっちゃうのでMQはよく使われるらしい

キューなので渡されたデータから処理されていく(先入先出)

Amazon SNSとは

f:id:butorisa:20220214232645p:plain

サービスアイコンは左側から入ったデータがフィルタされて複数に流れるような

Amazon Simple Notification Serviceって名前の通り通知(SMS・プッシュ通知)によく使われる

SNSスマホにメッセージ送信

f:id:butorisa:20220214235359p:plain

トピック(後述)のタイプをスタンダードにするとSMS・プッシュ通知などのメッセージ通知ができ

FIFOにするとSQSのみ選択できた(こちらはアプリ間データ連携に使う時に選択するっぽい)

トピックを作成しなくても左メニューSMSを選択して電話番号を登録

ワンタイムパスワードで認証後、テストSMSが送信できる

f:id:butorisa:20220214235047p:plain

今度はスタンダードタイプのトピックから送ってみる

トピックを選択してSMS送信をサブスクリプションに設定すると、こんなメッセージが届いた(一番下)

f:id:butorisa:20220215000402p:plain

トピックから送信するとメッセージの先頭に「トピック名>」って付くみたい

アプリからSMS通知するには

携帯電話に発行する - Amazon Simple Notification Service

公式ドキュメントにコードから電話番号を動的に渡してAmazon SNSからSMS通知できるみたい

あらかじめトピックを作っておかなくてもSMSが送れるように見える

Amazon SNS トピックを作成する - Amazon Simple Notification Service

トピックは配信先のグループなので「メッセージ配信+配信内容を分析するRedshiftにデータ登録」を実現したい時に

トピックのサブスクリプションにSMS通知、kinesisFirehorseを登録してあげればトピックでメッセージ発行をすると

SMS通知が届き、一方ではFirehorse経由でRedshiftにデータが登録されました〜となる