一斉通知からファンアウトまで!Amazon SNSで実現する「伝える」設計の極意

AWS

「サーバーに異常が発生したら、即座に管理者のメールとスマホに通知したい」
「1つのイベントをきっかけに、複数の異なる処理(LamdaやSQSなど)を同時に走らせたい」

そんな、情報の「プッシュ型配信」を一手に引き受けてくれるのがAmazon SNS(Simple Notification Service)です。

私は模擬試験で「注文確定時に、メール送信と在庫更新、更に分析用データの保存を同時に行いたい」という問題に出会い、どうやってそれらをバラバラのサービスに伝えるか悩みました。正解は、SNSを使ってメッセージを複数の宛先に「ファンアウト(扇状に広げる)」することだったんです。

Amazon SNSの基本:トピックとサブスクリプション

SNSの仕組みは、非常にシンプルです。

  • トピック
    メッセージの通り道(チャンネル)のようなものです。
  • パブリッシャー
    メッセージをトピックに送る側(EC2、CloudWatchアラームなど)。
  • サブスクライバー
    トピックからメッセージを受け取る側(メール、SMS、Lamda、SQS、HTTPエンドポイントなど)。

一度トピックにメッセージを投げれば、そこに登録(サブスクライブ)している全ての宛先に、一瞬でコピーが届けられます。

試験の重要テクニック「ファンアウト(Fan-out)」

SAA試験で最も頻出するのが、この「ファンアウト」構成です。

SNSの後ろに複数のAmazon SQSキューをぶら下げることで、1つのイベントから「配送処理用キュー」と「ポイント計算用キュー」に同じデータを流し、それぞれを独立して並列処理させることができます。

これにより、前回のSQSの記事で紹介した「疎結合」な設計が、更に強力なものになります。

【比較表】SNS vs SQS(どっちがどっち?)

似ているようで役割が違う、この2つの使い分けを整理しましょう。

特徴Amazon SNSAmazon SQS
通信方式プッシュ型(送る)プル型(受取側が取りに行く)
宛先複数の宛先に同時送信1つのメッセージを1つのワーカーが処理
永続性宛先が不在だと消える(リトライはある)メッセージをキューに貯めておける
役割「通知・配信」のハブ「バッファ・疎結合」の行列

試験で役立つ!キーワード判別法

メッセージングの問題で、以下の言葉があればAmazon SNSが正解の最有力候補です。

  • 「一斉通知(Fan-out」
  • 「プッシュ通知、SMS、Eメールの配信」
  • 「複数の異なるサービス(SQS、Lamdaなど)へ同時にメッセージを送信」
  • 「トピックベースのメッセージング」

今回の学び:攻略の格言

「一対多で配るならSNS。プッシュで一気にファンアウトして、後続のSQSやLamdaへバトンを繋げ!」

あとがき:一歩ずつ、合格へ

最後まで読んでいただき、ありがとうございました!

SNSを使うと、システムがまるで生き物のように、あちこちでリアウタイムに連動し始めるのが面白いですよね。単に「メールを送る道具」としてだけでなく、「サービス同士のコミュニケーションを円滑にするハブ」として捉えると、設計の幅がグンと広がります。

それでは、次回の記事でお会いしましょう!