CloudWatch を使用した Amazon SNS のモニタリング - Amazon Simple Notification Service

CloudWatch を使用した Amazon SNS のモニタリング

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

注記

CloudWatch を使用して Amazon SNS トピック用に設定するメトリクスは、自動的に収集され、1 分間隔で CloudWatch にプッシュ通知されます。これらのメトリックスは、CloudWatch ガイドラインを満たすすべてのトピックで収集され、アクティブになります。CloudWatch は、トピックの最後のアクティビティ (つまり、任意の API コール) から最大 6 時間、そのトピックをアクティブと見なします。

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

Amazon SNS 用の CloudWatch メトリクス

Amazon SNS のメトリクスは CloudWatch の独自のコマンドインターフェイス (CLI) を使用して、あるいはプログラムによって CloudWatch API を使用してモニタリングできます。次の手順は、AWS Management Console を使用してメトリクスにアクセスする方法を示しています。

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

  1. CloudWatch コンソールにサインインします。

  2. ナビゲーションパネルで [Metrics] を選択します。

  3. [All metrics] タブで [SNS] を選択し、次のいずれかのディメンションを選択します。

    • 国/地域、SMS タイプ

    • 電話番号

    • トピックのメトリクス

    • ディメンションの定められていないメトリクス

  4. 詳細を表示するには、特定の項目を選択します。例えば、[Topic Metrics] を選択し、[NumberOfMessagesPublished] を選択すると、6 時間の時間範囲における 1 分間の公開済み Amazon SNS メッセージの平均数が表示されます。

Amazon SNS メトリクス用の CloudWatch メトリクスを設定する

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

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

  1. AWS Management Console にサインインして、CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

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

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

  4. [Name]、[Description]、[Threshold]、[Time] のそれぞれにメトリクスの値を入力し、[Continue] を選択します。

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

    注記

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

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

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

Amazon SNS のメトリクス

Amazon SNS は、次のメトリクスを CloudWatch に送信します。

メトリクス 説明
NumberOfMessagesPublished

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

単位: Count

有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName

有効な統計: Sum

NumberOfNotificationsDelivered

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

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

単位: Count

有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName

有効な統計: Sum

NumberOfNotificationsFailed

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

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

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

HTTP エンドポイントの再試行回数をコントロールできます。詳細については、「Amazon SNS メッセージ配信の再試行」を参照してください。

単位: Count

有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName

有効な統計: Sum、Average

NumberOfNotificationsFilteredOut

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

単位: Count

有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName

有効な統計: Sum、Average

NumberOfNotificationsFilteredOut-InvalidAttributes

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

単位: Count

有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName

有効な統計: Sum、Average

NumberOfNotificationsFilteredOut-NoMessageAttributes

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

単位: Count

有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName

有効な統計: Sum、Average

NumberOfNotificationsRedrivenToDlq

デッドレターキューに移動されたメッセージの数。

単位: Count

有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName

有効な統計: Sum、Average

NumberOfNotificationsFailedToRedriveToDlq

デッドレターキューに移動できなかったメッセージの数。

単位: Count

有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName

有効な統計: Sum、Average

PublishSize

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

単位: Bytes

有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName

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

SMSMonthToDateSpentUSD

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

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

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

単位: USD

有効なディメンション: PhoneNumber

有効な統計: Maximum

SMSSuccessRate

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

単位: Count

有効なディメンション: PhoneNumber

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

Amazon SNS メトリクスのディメンション

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

ディメンション

説明

Application

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

Application,Platform

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

Country

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

PhoneNumber

SMS を電話番号に直接公開するときに、電話番号にフィルターをかけます (トピックなし)。

Platform

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

TopicName

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

SMSType

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