AWS SNSとは?SAA頻出のpub/sub通知を解説

AWS SNSとは?SAA頻出のpub/sub通知を解説

Amazon SNS の仕組みに悩むAWS初心者のイメージ
「Amazon SNSって、あのSNSのこと?」
「1回送るだけで、みんなに届くの?」
「SQSとは、どう違うの?」

その「SNS」、交流サイトのことではありません。

Amazon SNSとは、1つのお知らせを多数の宛先へ一斉に届けるサービスです。発行した通知が、登録済みの相手へまとめて飛んでいきます。この「1対多」の届き方が、使いどころも料金も試験の問われ方も決めています。

 

以下では、SNSの正体、1回の発行が複数へ分岐するファンアウトの流れ、pub/subの骨組み、近い概念のSQSとの見分け方まで順に見ていきます。AWS SAAの弾力性・回復性設計の対策にそのまま効きます。

 

1. 交流サービスではない — Amazon SNSの正体

1つの通知を多数の相手へ一斉に配るイメージ

SNSは Simple Notification Service の略で、世間で言う交流サービスのSNSとは別物です。あなたがまず押さえたいのは、「トピック」という配信の窓口にメッセージを発行すると、登録した宛先へまとめて届くという仕組みです。宛先には、メール・SMS・他のAWSサービスへの通知などを選べます。

 

身近な使い道は、サーバーに障害が出たときの管理者アラートや、注文が入ったことを複数の部署へ同時に知らせる場面です。1つの出来事をきっかけに、形の違う宛先へまとめて飛ばせるのが、SNSのうれしさになります。

 

たとえるなら、記者会見の同時通訳です。登壇者が一言話すと、その声が英語・中国語・日本語の通訳ブースへ同時に流れます。話す人はブースの数をいちいち気にしません。SNSも、トピックに1回発行すれば、購読している宛先へ同時に配られ、発行者は相手の数を意識せずに済みます。

 

2. 1回の発行が、複数へ同時に届く — ファンアウト

1回の発行が複数の購読先へ分岐して届くイメージ

SNSの「1対多」の届き方を図にしたのが、ファンアウトです。あなたが発行した1つのメッセージが、トピックを起点に複数の購読先へ枝分かれして届きます。次の図で、その分岐の様子をつかんでください。

 

発行者 トピック 配信の窓口 発行 メール通知 SQSキュー Lambda 1回の発行が、複数の購読先へ同時に分岐して届く

 

1回の発行で、トピックにぶら下がった各購読先へ同じメッセージが枝分かれして届く。これがファンアウトの核心です。購読先には、メール通知やSQSキュー、通知を受けて動くLambda、さらにEC2上のアプリなども並べられます。サーバーそのものの立て方は AWS EC2とは で押さえられます。

 

ファンアウトの要点は、発行する側が宛先を1件ずつ書かず、トピックへ送るだけで一斉配信できる点にあります。あなたが購読先を1つ足しても、発行のコードは変えずに済みます。

 

3. 発行者・トピック・購読者 — pub/subの骨組み

発行と購読のpub/subモデルのイメージ

あなたがSNSを支える考え方として出会うのが、pub/sub(パブサブ)です。publish(発行)と subscribe(購読)をまとめた言葉で、メッセージを送る側と受け取る側を、トピックという窓口でゆるくつなぎます。

 

ここで効くのが、発行する側は「誰が受け取るか」を細かく知らなくてよいという性質です。受け取り側の1つが一時的に止まっても、発行側はいつもどおりトピックへ送るだけでよく、影響が広がりにくい。この、お互いを直接名指ししない関係が、システムをゆるくつなぐ疎結合の土台になります。登場人物を整理します。

 

  • 発行者: トピックへメッセージを送る側
  • トピック: メッセージを受け取る配信の窓口
  • 購読者: トピックを登録し、メッセージを受け取る側

 

別の角度で見ると、購読者はあとから増やしたり減らしたりしやすい構造です。新しい受け取り先が欲しくなっても、トピックに購読を足すだけで広がるので、仕組みを大きく作り変えずに拡張できるのがpub/subの強みになります。

 

4. 押し出すSNS、ためるSQS — 表で見分ける

SNSとSQSを対比して見分けるイメージ

あなたが「SQSと、どう違うの?」と迷ったら、答えは届け方の向きにあります。SNSは1つのメッセージを購読者へ一斉に押し出す。SQSは箱にためて、受け取る側が1つずつ取り出す。押し出すのがSNS、ためて待つのがSQSです。表で並べて見分けてください。

 

観点 SNS SQS
届け方 一斉に押し出す 箱にためて取り出す
相手の数 多数の購読者へ同時 1つの受け手が処理
向く場面 1対多の一斉通知 ためて順に処理

 

この2つは、組み合わせても使います。SNSのトピックに複数のSQSキューを購読させると、1回の発行で各キューへ同じメッセージが配られ、処理側はそれぞれ自分のペースで取り出せる。これがファンアウト構成です。ためて取り出す側の仕組みは、AWS SQSとは でくわしく押さえられます。

 

SNSで一斉に配り、SQSで各処理側がためて取り出す。この分担で、一斉通知と取りこぼし防止を同時に成り立たせられます。SNS単体では「配って終わり」、SQSを挟むと「配ってから確実にさばく」まで届きます。

 

5. SAAでの狙われ方と、SNSかSQSかの一問

SNSとSQSを試験で選び分ける判断のイメージ

SAA(ソリューションアーキテクト アソシエイト)では、サービス同士をゆるくつなぎ、変化に強い設計が問われます。SNSは「1つの出来事を、複数の相手へまとめて知らせたい」場面で登場します。SNSとSQSを組み合わせたファンアウト構成も、定番の題材になります。あなたが問題文で迷わないよう、選び分けを1つの流れにまとめました。

 

  • 「1対多」「一斉通知」「複数の宛先へ配信」→ SNS。トピックへ発行して押し出す
  • 「ためて順に処理」「取りこぼし防止」→ SQS。箱にためて1つずつ取り出す
  • 「一斉に配ったうえで、各処理を確実にさばく」→ ファンアウト(SNS+複数SQS)

 

この3択に問題文を当てはめれば、SNSとSQSを取り違える事故が消えます。キーワードは「配る」か「ためる」か。あなたがこの一問を持っておけば、選択肢の言い回しに引っぱられずに済みます。

 

SNSは、AWS SAAの弾力性・回復性設計の領域でよく問われるサービスです。「一斉に押し出すSNS、ためて取り出すSQS」という対で覚えると、ファンアウトを含む周辺の設計問題まで一気に整理できます。

 

次のステップ

SNSが出題されるAWS SAAの全体像を先につかみたいなら、AWS SAA 試験全体概要 で、どの領域が重いかを見てから学習の順番を決めると迷いません。

知識を得点に変えたいなら、AWS SAA 弾力性・回復性設計の問題集 で、SNSによる疎結合やファンアウトの設問に手を動かして慣れておくのが確実です。