見出し画像

【AWS】 SNS解説

AWS SNS(Amazon Simple Notification Service)

クラウドベースのメッセージングサービスです。このサービスはフルマネージド型で、特に設定やサーバーのメンテナンスについての心配をする必要がなく、開発者や企業が効率的にメッセージ配信システムを構築できます。A主な役割は、アプリケーション間、またはアプリケーションからエンドユーザーへのメッセージ通信を容易にすることです。


主要機能と特徴

AWS SNSは非常にスケーラブルで、小規模な使用から大規模な企業レベルのアプリケーションまで対応できる設計となっています。例えば、数百台のデバイスを持つスタートアップから、世界中に拡散された何百万ものエンドポイントを持つ大企業まで、どんな規模のユーザーにも対応可能です。

多様なエンドポイントへの対応
AWS SNSは、モバイルプッシュ通知、SMS、Eメール、さらにはAWS Lambda、HTTP/HTTPSエンドポイントといったAWS内の他のサービスへの通知など、多岐にわたる配信方法をサポートしています。これにより、異なる用途とニーズに応じた通知システムを柔軟に構築することができます。

パブリッシュ/サブスクライブモデルの採用
パブリッシャーが特定の「トピック」にメッセージを発行し、サブスクライバーがそのトピックを購読することでメッセージを受け取るというモデルを採用しています。
これをアプリケーションとエンドユーザーの関係で説明すると、アプリケーションが情報の発行者(パブリッシャー)となり、エンドユーザーがその情報を受け取る側(サブスクライバー)となります。
これは、メッセージの発行者と受信者が直接的なつながりを持たなくても、効率的に情報を共有できる方式です。

簡単な管理とオートメーション
AWSの管理コンソールまたはAPIを通じて、トピックの作成、サブスクリプションの管理、通知の送信といった作業を行うことができます。また、AWS CloudWatchと連携して自動的にアラートを送信するなど、オートメーションの設定も可能です。


イベントの送信先

HTTP/HTTPS

HTTPまたはHTTPSプロトコルを使用してWebサーバーや任意のHTTPエンドポイントにメッセージを送信します。これにより、Webアプリケーションがリアルタイムで通知を受け取り処理することができます。

Email

指定されたメールアドレスに通知を電子メール形式で送信します。通常、情報共有やアラート通知に使われ、ユーザーや管理者がメールを通じて直接情報を受け取ることができます。

SMS

指定された携帯電話番号に短いメッセージサービス(SMS)を通じてテキストメッセージを送信します。特に緊急の通知や幅広い層に迅速に情報を伝える必要がある場合に有効です。

Mobile Push

スマートフォンやタブレットなどのモバイルデバイスにプッシュ通知を送信します。各種モバイルプラットフォーム(iOS, Android, Amazon Device Messaging)に対応しており、アプリケーションがバックグラウンドにあるときでもユーザーに直接情報を届けることが可能です。

AWS Lambda

AWS Lambda関数をトリガーして実行します。メッセージを受け取ると、その内容に基づいて自動的に処理やタスクを実行するLambda関数を起動することができます。

Amazon SQS

メッセージをAmazon Simple Queue Service(SQS)のキューに送信します。これにより、メッセージを非同期でキューに蓄積し、後続の処理システムが順番に処理を行うことが可能になります。


トピック

トピックは、AWS SNSにおけるメッセージのカテゴリーまたはチャネルです。トピックを作成することで、特定の内容に関するメッセージを一箇所に集約し、そのトピックに興味を持つサブスクライバー(受信者)がメッセージを受け取れるようになります。トピックは、特定の議題やイベントを中心にメッセージのやり取りを行うための仮想のハブのようなものと考えることができます。

サブスクリプション

サブスクリプションは、特定のトピックを購読するアクションです。ユーザーやシステムがトピックにサブスクライブすると、そのトピックにパブリッシュされるすべての新しいメッセージを受け取ることができるようになります。サブスクリプションは、メッセージを受け取る方法を指定することもできます。

データの保管

セキュリティを確保するために、AWSのキーマネジメントサービス(KMS)を用いた暗号化機能(サーバサイド)がある。この暗号化機能により、SNSトピックに送信されたすべてのメッセージが自動的に暗号化され、安全に保管されます。
KMSは、暗号化キーの生成、管理、使用ポリシーの設定を通じて、データの機密性と整合性を高めます。暗号化されたメッセージは、認証されたユーザーやサービスのみがアクセス可能であり、これにより不正アクセスやデータ漏洩のリスクを大幅に低減できます。

暗号化されないもの

自動的に暗号化されるのは、メッセージの内容、つまりトピックにパブリッシュされたデータです。しかし、SNSの利用において暗号化されない情報もいくつか存在する。

メタデータ(トピック名やタイムスタンプ)、ログ情報、サブスクリプション詳細、および設定情報はデフォルトで暗号化されません。これらの情報はシステムの運用や管理に必要であり、暗号化すると処理が困難になるためです。


ログ

SNS で行われる操作(トピックの作成、サブスクリプションの追加、メッセージの発行など)の API コールが CloudTrail によって自動的に記録されます。
AWS CloudTrail は、AWS アカウント内で行われる API コールやアクティビティの記録を提供するサービスです。










































よろしければサポートお願いします!よりいい情報を発信します。