Amazon Simple Notification Service
開発者ガイド

CloudWatch メトリクスを使用した Amazon SNS トピックのモニタリング

Amazon SNS と CloudWatch は統合されているため、個々のアクティブな Amazon SNS 通知についてメトリクスを収集、表示、分析できます。Amazon SNS に対して CloudWatch を設定すると、Amazon SNS トピック、プッシュ通知、および SMS 配信のパフォーマンスをより正確に把握できます。たとえば、NumberOfNotificationsFailed など、Amazon SNS メトリクスの指定されたしきい値に達した場合に E メール通知が送信されるように、アラームを設定することができます。Amazon SNS が CloudWatch に送信するすべてのメトリックスのリストについては、「Amazon SNS メトリックス」を参照してください。Amazon SNS プッシュ通知の詳細については、「受信者がモバイルアプリケーションの場合のユーザー通知に Amazon SNS を使用する (モバイルプッシュ)」を参照してください。

Amazon SNS トピックに対して CloudWatch で設定したメトリクスは自動的に収集され、5 分ごとに CloudWatch にプッシュされます。これらのメトリックスは、CloudWatch ガイドラインを満たすすべてのトピックで収集され、アクティブになります。トピックは、トピックでの最後のアクティビティ(つまり、任意の API 呼び出し)から最大 6 時間 CloudWatch によりアクティブと見なされます。

注記

CloudWatch でレポートされた Amazon SNS メトリクスに対して料金は発生しません。それらは Amazon SNS サービスの一部として提供されます。

Amazon SNS の CloudWatch メトリクスへのアクセス

CloudWatch コンソールで、CloudWatch の独自のコマンドラインインターフェイス (CLI) で、または CloudWatch API を使用してプログラムで、Amazon SNS のメトリクスをモニタリングできます。以下の手順は、さまざまなオプションを使用してメトリクスにアクセスする方法を示しています。

CloudWatch コンソールを使用してメトリクスを表示するには

  1. AWS マネジメントコンソール にサインインした後、 https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。

  2. [View Metrics] を選択します。

  3. [Viewing] ドロップダウンメニューから、[SNS: Topic Metrics]、[SNS: Push Notifications by Application]、[SNS: Push Notifications by Application and Platform]、または [SNS: Push Notifications by Platform] を選択して、利用できるメトリクスを表示します。

  4. 収集されたデータのグラフなどの詳細を表示するには、特定の項目を選択します。たとえば、選択されたメトリックス NumberOfMessagesPublished の以下のグラフは、6 時間の範囲を通じて 5 分間に発行された Amazon SNS メッセージの平均数を示しています。

CloudWatch CLI からメトリクスにアクセスするには

CloudWatch API からメトリクスにアクセスするには

Amazon SNS メトリクスに対して CloudWatch アラームを設定する

CloudWatch では、メトリックスのしきい値に到達したときのアラームを設定することもできます。たとえば、サンプリング期間内に指定されたしきい値に到達した場合、イベントについて知らせる E メール通知が送信されるように、メトリクス NumberOfNotificationsFailed のアラームを設定できます。

CloudWatch コンソールを使用してアラームを設定するには

  1. AWS マネジメントコンソール にサインインした後、 https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。

  2. [Alarms]、[Create Alarm] の順に選択します。これにより、[Create Alarm] ウィザードが起動します。

  3. Amazon SNS メトリクスをスクロールして、アラームを設定するメトリクスを見つけます。アラームを作成するメトリクスを選択してから、[Continue (続行)] を選択します。

  4. [Name (名前)]、[Description (説明)]、[しきい値]、[Time (時間)] のそれぞれにメトリクスの値を入力し、[Continue (続行)] を選択します。

  5. アラーム状態として [Alarm] を選択します。アラーム状態になったときに CloudWatch から E メールが届くようにするには、既存の Amazon SNS トピックを選択するか、[新しいメールトピックの作成] を選択します。[新しいメールトピックの作成] を選択した場合は、新しいトピックの名前と E メールアドレスを設定できます。このリストは、今後のアラーム用に保存され、ドロップダウンボックスに表示されます。[Continue] を選択します。

    注記

    [Create New Email Topic] を使用して新しい Amazon SNS トピックを作成する場合、メールアドレスを検証しなければ、そのアドレスで通知を受け取ることができません。E メールは、アラームがアラーム状態になったときにのみ送信されます。アラーム状態になったときに、メールアドレスの検証がまだ完了していない場合は、そのアドレスで通知を受け取ることはできません。

  6. この時点で、[アラームの作成] ウィザードで、作成するアラームを確認できます。何らかの変更を行う必要がある場合は、右側にある [Edit] リンクを使用します。希望どおりの設定になったら、[Create Alarm (アラームの作成)] を選択します。

CloudWatch とアラームの使用方法の詳細については、CloudWatch のドキュメントを参照してください。

Amazon SNS メトリックス

Amazon SNS は以下のメトリックスを CloudWatch に送信します。

メトリクス 説明

NumberOfMessagesPublished

Amazon SNS トピックに対して発行されたメッセージ数。

単位: Count

有効な統計: Sum

NumberOfNotificationsDelivered

Amazon Amazon SNS トピックからそのトピックにサブスクライブしているエンドポイントに正常に配信されたメッセージ数。

配信の試行が成功するには、エンドポイントのサブスクリプションでメッセージが許可されている必要があります。サブスクリプションでメッセージが許可されるのは、a) フィルタポリシーがない場合、または b) メッセージに割り当てられた属性と一致する属性がそのフィルタポリシーに含まれている場合です。サブスクリプションでメッセージが拒否された場合、配信の試行はこのメトリクスに対してカウントされません。

単位: Count

有効な統計: Sum

NumberOfNotificationsFailed

Amazon SNS が配信に失敗したメッセージの数。

Amazon SQS、E メール、SMS、またはモバイルプッシュエンドポイントの場合、Amazon SNS がメッセージ配信の試行を停止すると、このメトリクスが 1 増分されます。HTTP または HTTPS エンドポイントの場合、失敗した配信の試行がすべて、初回試行に続く再試行を含め、このメトリクスに対してカウントされます。その他のすべてのエンドポイントの場合、メッセージが配信されないと、カウントが 1 増加します (試行回数には関係ありません)。

サブスクリプションフィルタポリシーによって拒否されたメッセージは、このメトリクスに対してカウントされません。

HTTP エンドポイントの再試行回数をコントロールできます。詳細については、「HTTP/HTTPS エンドポイントに対する Amazon SNS 配信再試行ポリシーの設定」を参照してください。

単位: Count

有効な統計: Sum、Average

NumberOfNotificationsFilteredOut

サブスクリプションフィルタポリシーによって拒否されたメッセージの数。メッセージの属性がポリシーの属性と一致しない場合、フィルタポリシーによってメッセージは拒否されます。

単位: Count

有効な統計: Sum、Average

NumberOfNotificationsFilteredOut-NoMessageAttributes

メッセージに属性がないため、サブスクリプションフィルタポリシーによって拒否されたメッセージの数。

単位: Count

有効な統計: Sum、Average

NumberOfNotificationsFilteredOut-InvalidAttributes

メッセージの属性が無効であるため、たとえば属性の JSON 形式が正しくないため、サブスクリプションフィルタポリシーによって拒否されたメッセージの数。–

単位: Count

有効な統計: Sum、Average

PublishSize

発行されたメッセージのサイズ。

単位: Bytes

有効な統計: Minimum、Maximum、Average、Count

SMSMonthToDateSpentUSD

今月の始めから今日までの SMS メッセージの送信料金。

このメトリクスにアラームを設定すると、今月の始めから今日までの料金が、アカウントの毎月の SMS 使用限度に近付いたときに、それを知ることができます。Amazon SNS が、SMS メッセージを送信するとこの限度を超えるコストが発生すると判断した場合、数分以内に SMS メッセージの発行が停止されます。

SMS の毎月の使用料制限の設定の詳細、または AWS に対して制限の引き上げをリクエストする方法については、「SMS メッセージプリファレンスの設定」を参照してください。

単位: USD

有効な統計: Maximum

SMSSuccessRate

正常な SMS メッセージ配信のレート

単位: Count

有効な統計: Sum、Average、Data Samples

Amazon Simple Notification Service メトリクスのディメンション

Amazon Simple Notification Service は以下のディメンションを CloudWatch に送信します。

ディメンション

説明

Application

アプリケーションオブジェクトのフィルタ。APNS や FCM など、サポートされるプッシュ通知サービスの 1 つに登録されているアプリケーションやデバイスを表す。

Application,Platform

アプリケーションおよびプラットフォームオブジェクトのフィルタ。プラットフォームオブジェクトは、APNS や FCM など、サポートされるプッシュ通知サービスで使用される。

Country

SMS メッセージの宛先国またはリージョンのフィルタ。国またはリージョンは、ISO 3166-1 alpha-2 コードで表されます。

Platform

APNS や FCM などのプッシュ通知サービスで使用されるプラットフォームオブジェクトのフィルタ。

TopicName

Amazon SNS トピック名のフィルタ。

SMSType

SMS メッセージのメッセージタイプのフィルタ。プロモーションまたはトランザクションがあります。