Amazon Simple Notification Service (SNS) は、アプリケーション、サービス、ユーザーが非常にスケーラブルかつ柔軟な方法で通知を送信できるようにする、AWS の完全マネージド型メッセージングサービスです。 SNS は主に、パブリッシュ/サブスクライブ (pub/sub) メッセージングと、SMS、電子メール、モバイル プッシュ通知を介してユーザーに通知を直接送信するために使用されます。
SNSの主な機能
- パブリッシュ/サブスクライブ メッセージング: SNS はパブリッシュ/サブスクライブ モデルをサポートしており、トピックにパブリッシュされたメッセージは、Amazon SQS、AWS Lambda、HTTP/S エンドポイント、電子メール アドレスなどのすべてのサブスクライブ エンドポイントに配信されます。
- メッセージのフィルタリング:サブスクライバーは、メッセージ属性に基づいてメッセージをフィルタリングし、関連するメッセージのみが受信されるようにすることができます。
- ダイレクトメッセージ: SNS は、SMS、電子メール、プッシュ通知を介してモバイル デバイスとの直接通信をサポートします。
- セキュリティとアクセス制御: AWS IAM (Identity and Access Management) を使用すると、SNS トピックへのきめ細かなアクセス制御が可能になります。
- スケーラビリティと耐久性: SNS は、1 秒あたり数百万件のメッセージを処理するように設計されており、高い可用性と耐久性を保証します。
- メッセージの暗号化:AWS Key Management Service (KMS) を使用した保存時のメッセージの暗号化のサポート。
- AWS 統合: SNS は、SQS、Lambda、CloudWatch などの AWS サービスとシームレスに統合されます。
SNSのユースケース
- アプリケーションのアラートと監視:SNS は、EC2 インスタンスの障害や CloudWatch アラームなど、AWS サービスが特定の条件を満たしたときにアラートを送信できます。
- イベント駆動型マイクロサービス: SNS は、マイクロサービスが非同期に通信できるようにすることで、イベント駆動型アーキテクチャを実現します。
- ユーザー通知:アカウントの更新、プロモーション、または本人確認の目的で、ユーザーに SMS、電子メール、モバイル プッシュ通知を送信するために使用されます。
- メッセージのファンアウト: SNS はメッセージを複数の SQS キューに分散し、並列処理を実現します。
- IoTデバイスの通知:IoT デバイスとバックエンド サービス間の通信を可能にします。
Amazon SNSの仕組み
- トピックを作成します:トピックは、パブリッシャーがメッセージを送信するための論理アクセス ポイントとして機能します。
- 購読者を追加:サブスクライバー (Lambda 関数、SQS キュー、電子メール アドレスなど) がトピックに追加されます。
- リリースメッセージ:アプリケーションはトピックにメッセージを公開します。
- 購読者に渡されるもの: SNS は、プロトコル (HTTP、SQS、Lambda など) に基づいて、登録されているすべてのサブスクライバーにメッセージを配信します。
SNSの設定手順
- AWSコンソールにログインするSNS サービスに移動します。
- SNSトピックを作成します。トピックの種類 (標準または FIFO) を選択し、設定を構成します。
- 購読者を追加:電子メール、SMS、Lambda、SQS などのサブスクライバーを添付します。
- リリースメッセージ:AWS コンソール、SDK、または CLI を使用して、トピックにメッセージを公開します。
- SNSアクティビティを監視する:CloudWatch を使用して、配信ステータス、メッセージ数、その他のメトリクスを監視します。
価格
AWS SNS は、公開されたメッセージの数、メッセージの配信試行回数、およびデータ転送コストに基づいた従量課金制の料金モデルを使用します。価格は、使用されるプロトコル (SMS、電子メール、Lambda、SQS など) によって異なります。
結論は
Amazon SNS は、分散システムとエンドユーザー間の通信を簡素化する強力なメッセージングサービスです。アプリケーションアラート、イベント駆動型アーキテクチャ、直接ユーザー通知など、SNS は AWS エコシステムにおいてスケーラブルで信頼性が高く、コスト効率に優れたソリューションを提供します。

