AWSのpub/sub機能の仕組みを解説!特徴から設定方法までご紹介します


AWS pub/sub とは
AWS(Amazon Web Service)のpub/subメッセージングとは、AWSが提供しているSNSサービス:Amazon Simple Notification Service(SNS)上で稼働するメッセージングの通信方式です。
pub(パブリッシャー)/sub(サブスクライバー)自体はメッセージング機能を発動させるためのコンポーネント(部品)です。
本記事では、このpub/subメッセージングの概要・特徴・使い方についてご紹介いたします。
そもそもpub/subとは?
pubとは「Publish:パブリッシュ(出版)」の略で、subとは「Subscribe:サブスクライブ(購読)」の略です。
この仕組みは、例えば「メールマガジンの出版と購読」を想像してみるとわかりやすいです。
メールマガジンを送る側が「パブリッシュ(出版)」、メールマガジンを受け取る側が「サブスクライブ(購読)」と考えることができます。
このように「pub/sub」の仕組みは日常で利用されている仕組みと言えます。
AWS pub/subメッセージングとは?
AWSにおけるpub/subメッセージングとは、サーバーレス&マイクロサービスアーキテクチャ(複数のビジネスロジックを組み合わせるシステム設計)で使用される通信の形式で、主にAmazon Simple Notification Serviceで使われています。
AWS pub/subメッセージング機能は、「トピック」と呼ばれる論理アクセスポイントにメッセージがパブリッシュされると、そのトピックと紐づくすべてのサブスクライバーへパブリッシュされたメッセージが発信される機能です。サブスクライバーは、すぐにそのメッセージを受信することができます。
pub/subメッセージングが実装されるトピックとは?
「トピック」とは、論理アクセスポイント(通信チャネルとして機能するもの)です。
パブリッシャーのメッセージ送信先/各サブスクライバーへメッセージをプッシュするアクセスポイント、と捉えるとイメージしやすいでしょう。
このトピックという概念は、pub/subの特徴を知る上で抑えておくと理解が進みやすいでしょう。例えば、1通のSMSメッセージを複数の電話番号に送信したいとき、トピックに複数の電話番号を登録することで、全員に通知を送信することができます。
1リクエスト(pub/パブリッシュ)でトピックに紐付けられた購読者(sub/サブスクライバー)全員に通知をするイメージです。
さらに「エンドポイント」と呼ばれる個別のサブスクライバーへ個別に通知を送ることも可能です。
Amazon Simple Notification Serviceとは?
pub/subメッセージングが使われているAWSのAmazon Simple Notification Service(SNS)とは、アプリケーションから各種通知ができるメッセージ通知プラットフォームのことです。
ユーザーが何かを行ったタイミング/イベントで通知を発信することができます。
例えば、イベント駆動型アーキテクチャ上でのpub/subメッセージングを想像するとわかりやすいでしょう。
イベント駆動型アーキテクチャとは、通販Webサイトのショッピングカートに商品が追加されたり、決済されたときなど、何らかのイベントによってステータスが変化・更新されたことをトリガーに発動するシステム設計です。
商品が発送されたタイミングや自動車保険の見積りがリクエストされたタイミング・フリマアプリで商品が購入されたタイミングなどさまざまなイベントをトリガーに、通知・一斉告知をすることが可能です。
AWS pub/subメッセージングの特徴とは?
AWSでのpub/subメッセージングは、サービスの1機能として提供されているため設定ベースで通知機能を手軽に実装できる点が特徴です。
例えば、前述の「トピック」を定義し、送信先(購読者)をグルーピングすることで、一斉送信することが可能です。
以下では、その特徴の詳細をご紹介いたします。
AWS pub/subの特徴
AWSのpub(パブリッシャー)とsub(サブスクライバー)は切り離されており、互いの存在を認識していません。
パブリッシャーはトピックにメッセージを送信するのみで完結しており、後続のサブスクライバーに影響を及ぼしません。またサブスクライバーも、自身が紐づけられた特定のトピックからメッセージを受信するため、パブリッシャーを認識していません。
メッセージはすぐに配信されるか、トピックに紐づくすべてのサブスクライバーにプッシュされます。
以下ではさらに細かい特徴について解説いたします。
プッシュ配信
プッシュ配信とは、パブリッシュされたメッセージが即座にサブスクライバーへ通知される機能のことです。
pub(パブリッシャー)が発行したメッセージがトピックに公開されると、非同期イベント通知を即座にプッシュします。メッセージが利用可能になると、サブスクライバーに通知されます。
複数の配信プロトコルに対応
AWSのpub/subは、HTTP、HTTPS、Amazon SQSキューなど、Eメール以外のプロトコルをサポートしています。
これにより、モバイルへのPUSH通知だけでなく、Eメール/SMSへの通知など、各プロトコルに縛られない通知が可能です。
ファンアウト
AWSのpub/subにおけるファンアウト(非同期イベント通知)とは、メッセージがトピックに送信され、このとき複製されたメッセージを複数のエンドポイントにプッシュすることで発生します。
これにより並列処理が可能になります。
フィルタリング機能
AWSのpub/subでは、フィルタリング機能により、メッセージフィルタリングポリシーを作成できます。
これにより、sub(サブスクライバー)は、トピックに投稿されたすべてメッセージを受信するのではなく、関心のある通知のみを受信することができるようになります。
セキュリティの高さ
転送中のメッセージは暗号化され、セキュリティが確保されています。
メッセージトピックは、コンテンツを発行(発信)しようとするアプリケーションを認証&暗号化されたエンドポイントを使用し、メッセージを発信します。
AWS pub/subの実装の仕方
AWS pub/subの実装はトピックに設定していきます。
以下では、トピックでの実装イメージについて簡単に説明いたします。
トピックへの実装は2つの方法があります。
・トピックへのメッセージの送信(コンソール):開発コンソールより設定
・トピックへのメッセージの送信(AWS SDKs):コードに実装
以下はコンソールを使った設定方法の概要を説明いたします。
トピックへのメッセージの送信 (コンソール)より実装する方法
1.まずはパブリッシュされたメッセージの発信先となるトピック(アクセスポイント)を作成します。
【設定方法】
コンソールのナビゲーションパネルで「トピック」を選択し、[Topics] ページの[Create new topic] より作成します。
2.SMS のサブスクリプションをトピックに追加し、トピックから発信されるサブスクライバー(受信先)を設定します。
【設定方法】
実際のサブスクリプション先(電話番号やEメールアドレス)を実装します。[Topics] ページで、トピック ARN(Amazon Resource Name)を選択し、トピックの詳細ページで、[サブスクリプションの作成] を選択します。
[Protocol] で、[SMS] を選択し、[エンドポイント] に、メッセージを送信する電話番号を入力します。
3.実際にメッセージをパブリッシュしてみましょう
トピックにメッセージを発行することで、サブスクライブされているすべての電話番号やEメールアドレスにメッセージが配信されることを確認してみましょう。
AWS pub/subの仕組みを活用しよう!
クラウドサービスにおいて、各アプリケーションは、開発、展開、保守を容易にするため分散されています。pub/subメッセージングは、これらの分散アプリケーションにイベント通知を非同期で行える機能です。
pub/subモデルは、各アプリのパフォーマンス・拡張性を向上させながら、イベント駆動型アーキテクチャにてメッセージングの並列処理を可能にします。
是非ともこの機能を使い、SNSの活用にお役立てください。
この記事の監修者・著者

- AWSパートナー/Salesforce認定コンサルティングパートナー 認定企業
-
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。
・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
最新の投稿
- 2024-12-27営業インタビュー情報共有の活性化の中心に。SP企画部の新たな取り組み
- 2024-07-01営業インタビュー最短で当日にご提案可能。 OPE営業の対応が早い3つの理由
- 2024-07-01営業インタビュー研修見学ツアーが高評価!「お客様のOPEに対する期待を高め、継続に貢献できればと思います。」
- 2024-07-01営業インタビュー信頼関係を構築し、エンジニアの長期就業へ

- 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
- すぐに採用したいが、応募がぜんぜん集まらない
オープンアップITエンジニアをご検討ください!
当社のITエンジニア派遣サービスは
- 派遣スピードが速い!(最短即日)
- 4,500名のエンジニアから貴社にマッチした人材を派遣
- 正社員雇用も可能
こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。