8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

AWSサービス解説シリーズ #1 AmazonSNS ①Amazon SNSの概要と基本概念

Posted at

はじめに

自分の勉強したことの記録も兼ねて書いていきます。例のごとくいつ飽きるかわからないのになぜかシリーズものにしてしまいましたが、頑張って続けます。
中身としては以下を想定しています。

  • 公式ドキュメントからの引用8割
  • 理解しにくい所の補足1割
  • ネットの海から見つけてきた面白いと思った実装パターン1割

シリーズ1回目はAmazon SNS(Simple Notification Service)です。
それでは早速やっていきます。

Amazon SNSの概要

Amazon Simple Notification Service (Amazon SNS) は、配信者から受信者 (または生産者から消費者) へのメッセージ配信を提供するマネージドサービスです。発行者は、論理アクセスポイントおよび通信チャネルであるトピックにメッセージを送信することで、受信者と非同期的に通信します。クライアントは SNS トピックをサブスクライブし、Amazon Data Firehose、Amazon SQS、HTTP、E メール AWS Lambda、モバイルプッシュ通知、モバイルテキストメッセージ (SMS) など、サポートされているエンドポイントタイプを使用して公開されたメッセージを受信できます。

スクリーンショット 2024-07-11 11.49.22.png

基本概念・用語の整理

メッセージ

Amazon SNSで扱う「メッセージ」とは、配信者が受信者に送信する情報の単位を指します。具体的な内容はユースケースによって異なりますが、以下のようなものが含まれます。

  • テキストメッセージ
    SMSやEメールの本文として送信されるシンプルなテキストデータ。
  • JSONペイロード
    APIやサービス間でデータをやり取りするための構造化されたJSON形式のデータ。
  • 通知メッセージ
    モバイルアプリにプッシュ通知として送信される短いメッセージ。
  • イベント情報
    システムイベントやアラート情報を通知するためのデータ。

トピック(Topic)

メッセージの配信を管理するための論理的なアクセスポイントおよび通信チャネルです。配信者はトピックにメッセージを送信し、受信者はそのトピックをサブスクライブすることでメッセージを受信します。各トピックは一意の名前を持ち、特定のメッセージ配信ルールやポリシーが設定できます。

サブスクライブ

特定のトピックに対して受信者(サブスクライバー)がメッセージを受信するように登録することです。

配信者(Publisher, Producer)

メッセージを作成し、SNSトピックに送信する役割を担うエンティティを指します。具体的には、アプリケーションやシステムコンポーネント、あるいは特定のイベントに応じてメッセージを生成する自動化されたスクリプトやサービスが該当します。

受信者(Subscriber, Consumer)

SNSトピックにサブスクライブし、送信されたメッセージを受け取るエンティティを指します。具体的には、Amazon SQSキュー、AWS Lambda関数、HTTPエンドポイント、Eメールアドレス、モバイルデバイス(プッシュ通知やSMS)などが含まれます。受信者は、トピックに配信されたメッセージを処理したり、ユーザーに通知を送ったりする役割を担います。

Amazon SNSを使うと何が嬉しいのか

Amazon SNSを使うと、メッセージの配信がとても簡単かつ効率的になります。これがなぜ嬉しいのかを理解するために、まずSNSがない場合の問題点をいくつか見てみましょう。

  • 自前実装の手間とコスト
    メッセージ配信システムを自前で実装するには、多くの時間とコストがかかります。特に、信頼性の高い配信を実現するためには、メッセージのキューイングや再試行、エラー処理などの機能を自分で作り込む必要があります。

  • スケーラビリティの問題
    大量のメッセージを効率よく配信するためには、システムのスケーラビリティを確保する必要があります。自前で実装した場合、このスケーラビリティを確保するのは非常に難しいです。

  • 多様な配信方法のサポート
    メールやSMS、モバイルプッシュ通知など、さまざまな配信方法をサポートするには、それぞれの方法に対応した実装が必要です。これも非常に手間がかかります。

これらをはじめとした、メッセージ送受信周りの色々を一挙に担ってくれるのが、Amazon SNSというわけです。

おわりに

次回下記参考にしつつ、より詳細な機能について見ていきます。

参考資料

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?