Amazon SNS (Simple Notification Service) は、AWS が提供するフルマネージドのプッシュ型メッセージングサービスです。アプリケーションからメッセージを発行し、それを即座にサブスクライバーや他のアプリケーションに配信することができます。
Amazon SNS とは?
Amazon SNS は、「パブリッシュ/サブスクライブ」 (pub/sub) メッセージングパラダイムに従い、通知は「プッシュ」メカニズムを使用してクライアントに配信されます。これにより、新しい情報や更新を定期的にチェックしたり、「ポーリング」したりする必要がなくなります。
Amazon SNS は、モバイルデバイス (iPhone、iPad、Android、Kindle Fire など) やインターネットに接続されたスマートデバイスへのプッシュ、他の分散サービスへのプッシュを簡単かつ費用対効果の高い方法で実現します。また、モバイルデバイスに直接クラウド通知をプッシュするだけでなく、Eメール、Amazon Simple Queue Service (SQS) キュー、または任意の HTTP エンドポイントにも通知を配信できます。メッセージが失われないように、Amazon SNS に発行されたすべてのメッセージは、複数のアベイラビリティーゾーンに冗長的に保存されます。
Amazon SNS のメリット
Amazon SNS には、以下のようなメリットがあります。
- スケーラブル: 非常にスケーラブルで柔軟性があり、アプリケーションはいつでも無制限の数のメッセージを発行できます。
- シンプル: ほとんどの場合、開発者は CreateTopic、Subscribe、Publish の 3 つの API のみを使用して Amazon SNS を使い始めることができます。より高度な機能を提供する追加の API も用意されています。
- 柔軟性: Amazon SNS を使用すると、アプリケーションとさまざまなデバイスのエンドユーザーは、モバイルプッシュ通知 (Apple、Google、Kindle Fire デバイス)、HTTP/HTTPS、Eメール/Email-JSON、SMS、Amazon SQS キュー、または AWS Lambda 関数を介して通知を受信できます。
- 費用対効果: 事前の開発作業が最小限で済み、メンテナンスや管理のオーバーヘッドがなく、従量課金制であるため、開発者はアプリケーションに強力な通知システムを簡単に組み込むことができます。
- 高可用性: Amazon SNS は、Amazon の実績のあるネットワークインフラストラクチャとデータセンター内で実行されるため、アプリケーションが必要とするたびにトピックを使用できます。メッセージが失われないように、Amazon SNS に発行されたすべてのメッセージは、複数のサーバーとデータセンターに冗長的に保存されます。
Amazon SNS のユースケース
Amazon SNS は、以下のようなユースケースで使用できます。
- アプリケーションの統合: Amazon SNS を使用すると、アプリケーションをモダナイズし、開発、デプロイ、および保守が容易な、より小さく独立したコンポーネントに分割できます。アプリケーションに pub/sub イベント駆動型アーキテクチャを活用することで、パフォーマンスと信頼性が向上し、各コンポーネントを個別にスケーリングできます。
- アプリケーションアラート: Amazon SNS は、アプリケーションやシステムのイベントをトリガーとして、SMS や E メールで指定したユーザーに通知を送信できます。例えば、Amazon EC2 Auto Scaling グループへの特定の変更、Amazon S3 バケットにアップロードされた新しいファイル、Amazon CloudWatch でのメトリクスのしきい値違反が発生した場合に、すぐに通知を受け取ることができます。
- ユーザー通知: Amazon SNS は、個人またはグループにプッシュ E メールメッセージとテキストメッセージ (SMS メッセージ) を送信できます。例えば、E コマースの注文確認をユーザー通知として送信できます。
- モバイルプッシュ通知: モバイルプッシュ通知を使用すると、モバイルアプリに直接メッセージを送信できます。例えば、Amazon SNS を使用して、更新通知をアプリに送信できます。通知メッセージには、更新をダウンロードしてインストールするためのリンクを含めることができます。
Amazon SNS の機能
Amazon SNS には、以下のような機能があります。
- トピック: トピックとは、メッセージを配信するための論理的なアクセスポイントおよび通信チャネルです。Amazon SNS には、標準トピックと FIFO トピックの 2 種類があります。標準トピックは、メッセージの順序付けと重複が重要でない場合に多くのシナリオで使用できます。FIFO トピックは、操作とイベントの順序が重要な場合や、重複が許容されない場合に、アプリケーション間のメッセージングを強化するように設計されています。
- メッセージの配信: Amazon SNS は、Amazon SQS、HTTP/S、E メール、SMS、AWS Lambda などの複数のトランスポートプロトコルを介したメッセージ配信をサポートしています。また、リージョン間およびアカウント間のメッセージ配信もサポートしています。
- メッセージのフィルタリング: デフォルトでは、各サブスクライバーはトピックに発行されたすべてのメッセージを受信します。メッセージのサブセットを受信するには、サブスクライバーがトピックサブスクリプションにフィルターポリシーを割り当てる必要があります。
- メッセージの耐久性: Amazon SNS は、発行されたメッセージを地理的に離れた複数のサーバーおよびデータセンターに保存することで、メッセージの耐久性を提供します。サブスクライブされたエンドポイントが使用できない場合、Amazon SNS は配信再試行ポリシーを実行します。配信再試行ポリシーが終了する前に配信されないメッセージを保持するために、デッドレターキューを作成することもできます。
- メッセージの暗号化: Amazon SNS は、AWS KMS によって提供される暗号化キーを使用して、Amazon SNS トピックに保存されているメッセージの内容を保護するための暗号化されたトピックを提供します。また、Amazon SNS と仮想プライベートクラウド (VPC) 間にプライベート接続を確立することもできます。
- メッセージのデータ保護: Amazon SNS のメッセージデータ保護は、システムやアプリケーションによって記録された機密データを検出し、保護するのに役立ちます。この機能は、定義したポリシーに基づいて、ML とパターンマッチングを使用して、ログに含まれる機密情報を自動的に識別し、マスクします。
- メッセージのアーカイブと再生: Amazon SNS は、Amazon S3 バケット、Amazon Redshift テーブルなどの分析エンドポイントに通知を送信できる Firehose 配信ストリームを SNS トピックにサブスクライブするなど、複数の方法でメッセージをアーカイブできます。さらに、Amazon SNS FIFO トピックは、トピックオーナーがトピック内にメッセージを保存 (またはアーカイブ) できるノーコードのインプレースメッセージアーカイブとして、メッセージのアーカイブと再生をサポートしています。その後、トピックのサブスクライバーは、アーカイブされたメッセージをサブスクライブされたエンドポイントに取得 (または再生) できます。
Amazon SNS を使い始めるには
Amazon SNS を使い始めるには、AWS アカウントを作成し、Amazon SNS トピックを作成する必要があります。AWS では、新規ユーザー向けに無料利用枠を提供しているため、一定期間は無料で Amazon SNS を利用できます。また、AWS の公式ドキュメントやチュートリアルなども充実しており、初心者でも簡単に Amazon SNS を使い始めることができます。
まとめ
Amazon SNS は、スケーラブルで、柔軟性があり、費用対効果の高いプッシュ型メッセージングサービスです。アプリケーションの統合、アプリケーションアラート、ユーザー通知、モバイルプッシュ通知など、さまざまなユースケースに対応しており、多くの企業や組織で利用されています。
コメント