CloudWatch を使用した Amazon SNS のモニタリング
Amazon SNS と Amazon CloudWatch は統合されているため、個々のアクティブな Amazon SNS 通知についてメトリクスを収集、表示、分析できます。Amazon SNS に対して CloudWatch を設定すると、 トピック、プッシュ通知、および SMS 配信のパフォーマンスをより正確に把握できます。例えば、NumberOfNotificationsFailed
など、Amazon SNS メトリクスの指定のしきい値に達した場合に E メール通知が送信されるよう、アラームを設定することができます。Amazon SNS が CloudWatch に送信するすべてのメトリクスのリストについては、「Amazon SNS のメトリクス」を参照してください。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 コンソールを使用してメトリクスを表示するには
-
CloudWatch コンソール
にサインインします。 -
ナビゲーションパネルで [Metrics] を選択します。
-
[All metrics] タブで [SNS] を選択し、次のいずれかのディメンションを選択します。
-
国/地域、SMS タイプ
-
電話番号
-
トピックのメトリクス
-
ディメンションの定められていないメトリクス
-
-
詳細を表示するには、特定の項目を選択します。例えば、[Topic Metrics] を選択し、[NumberOfMessagesPublished] を選択すると、6 時間の時間範囲における 1 分間の公開済み Amazon SNS メッセージの平均数が表示されます。
-
Amazon SNS の使用状況メトリクスを表示するには、[All metrics] (すべてのメトリクス) タブで [Usage] (使用率) を選択し、対象の Amazon SNS 使用率メトリクス (例:
NumberOfMessagesPublishedPerAccount
) を選択します。
Amazon SNS メトリクス用の CloudWatch メトリクスを設定する
CloudWatch では、メトリックスのしきい値に到達したときのアラームを設定することもできます。例えば、サンプリング期間内に指定されたしきい値に到達した場合、イベントについて知らせる E メール通知が送信されるように、メトリクス NumberOfNotificationsFailed のアラームを設定できます。
CloudWatch コンソールを使用してアラームを設定するには
-
AWS Management Console にサインインして、CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/
) を開きます。 -
[Alarms]、[Create Alarm] の順に選択します。これにより、[Create Alarm] ウィザードが起動します。
-
Amazon SNS メトリクスをスクロールして、アラームを設定するメトリクスを見つけます。アラームを設定するメトリクスを選択してから、[Continue] を選択します。
-
[Name]、[Description]、[Threshold]、[Time] のそれぞれにメトリクスの値を入力し、[Continue] を選択します。
-
アラーム状態として [Alarm] を選択します。アラーム状態になったときに CloudWatch から E メールが届くようにするには、既存の Amazon SNS トピックを選択するか、[新しいメールトピックの作成] を選択します。[新しいメールトピックの作成] を選択した場合は、新しいトピックの名前と E メールアドレスを設定できます。このリストは、今後のアラーム用に保存され、ドロップダウンボックスに表示されます。[Continue] (続行) をクリックします。
注記
[Create New Email Topic] を使用して新しい Amazon SNS トピックを作成する場合、メールアドレスを検証しなければ、そのアドレスで通知を受け取ることができません。E メールは、アラームがアラーム状態になったときにのみ送信されます。アラーム状態になったときに、メールアドレスの検証がまだ完了していない場合は、そのアドレスで通知を受け取ることはできません。
-
この時点で、[Create Alarm] ウィザードで、作成するアラームを確認できます。何らかの変更を行う必要がある場合は、右側にある [Edit] リンクを使用します。希望どおりの設定になったら、[Create Alarm] を選択します。
CloudWatch とアラームの使用方法の詳細については、「CloudWatch のドキュメント
Amazon SNS のメトリクス
Amazon SNS は、次のメトリクスを CloudWatch に送信します。
名前空間 | メトリクス | 説明 |
---|---|---|
AWS/SNS |
NumberOfMessagesPublished
|
Amazon SNS トピックに対して発行されたメッセージ数。 単位: カウント 有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName 有効な統計: Sum |
AWS/SNS |
NumberOfNotificationsDelivered
|
Amazon SNS トピックからそのトピックにサブスクライブしているエンドポイントに正常に配信されたメッセージ数。 配信の試行が成功するには、エンドポイントのサブスクリプションでメッセージが許可されている必要があります。サブスクリプションでメッセージが許可されるのは、a.) フィルターポリシーがないか、b.) フィルターポリシーに、メッセージに割り当てられた属性と一致する属性が含まれる場合です。サブスクリプションでメッセージが拒否された場合、配信の試行はこのメトリクスに対してカウントされません。 単位: カウント 有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName 有効な統計: Sum |
AWS/SNS |
NumberOfNotificationsFailed
|
Amazon SNS が配信に失敗したメッセージの数。 Amazon SQS、E メール、SMS、またはモバイルプッシュエンドポイントの場合、Amazon SNS がメッセージ配信の試行を停止すると、このメトリクスが 1 増分されます。HTTP または HTTPS エンドポイントの場合、失敗した配信の試行がすべて、初回試行に続く再試行を含め、このメトリクスに対してカウントされます。その他のすべてのエンドポイントの場合、メッセージが配信されないと、カウントが 1 増加します (試行回数には関係ありません)。 サブスクリプションフィルターポリシーによって拒否されたメッセージは、このメトリクスに対してカウントされません。 HTTP エンドポイントの再試行回数をコントロールできます。詳細については、「Amazon SNS メッセージ配信の再試行」を参照してください。 単位: カウント 有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName 有効な統計: Sum、Average |
AWS/SNS |
NumberOfNotificationsFilteredOut |
サブスクリプションフィルターポリシーによって拒否されたメッセージの数。メッセージの属性がポリシーの属性と一致しない場合、フィルターポリシーによってメッセージは拒否されます。 単位: カウント 有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName 有効な統計: Sum、Average |
AWS/SNS |
NumberOfNotificationsFilteredOut-MessageAttributes |
属性ベースのフィルタリングのサブスクリプションフィルターポリシーによって拒否されたメッセージの数。 単位: カウント 有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName 有効な統計: Sum、Average |
AWS/SNS |
NumberOfNotificationsFilteredOut-MessageBody |
ペイロードベースのフィルタリングのサブスクリプションフィルターポリシーによって拒否されたメッセージの数。 単位: カウント 有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName 有効な統計: Sum、Average |
AWS/SNS |
NumberOfNotificationsFilteredOut-InvalidAttributes |
メッセージの属性が無効であるため (例えば属性の JSON 形式が正しくないため)、サブスクリプションフィルターポリシーによって拒否されたメッセージの数。 単位: カウント 有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName 有効な統計: Sum、Average |
AWS/SNS |
NumberOfNotificationsFilteredOut-NoMessageAttributes |
メッセージに属性がないため、サブスクリプションフィルターポリシーによって拒否されたメッセージの数。 単位: カウント 有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName 有効な統計: Sum、Average |
AWS/SNS |
NumberOfNotificationsFilteredOut-InvalidMessageBody |
メッセージ本文がフィルタリングに対して無効であるため (JSON メッセージ本文が無効であるなど)、サブスクリプションフィルターポリシーによって拒否されたメッセージの数。 単位: カウント 有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName 有効な統計: Sum、Average |
AWS/SNS |
NumberOfNotificationsRedrivenToDlq
|
デッドレターキューに移動されたメッセージの数。 単位: カウント 有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName 有効な統計: Sum、Average |
AWS/SNS |
NumberOfNotificationsFailedToRedriveToDlq
|
デッドレターキューに移動できなかったメッセージの数。 単位: カウント 有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName 有効な統計: Sum、Average |
AWS/SNS |
PublishSize
|
発行されたメッセージのサイズ。 単位: バイト 有効なディメンション: アプリケーション、PhoneNumber、プラットフォーム、TopicName 有効な統計: Minimum、Maximum、Average、Count |
AWS/SNS |
SMSMonthToDateSpentUSD |
今月の始めから今日までの SMS メッセージの送信料金。 今月の始めから今日までの料金がアカウントの毎月の SMS 使用限度に近付いたことがわかるように、このメトリクスにアラームを設定できます。Amazon SNS が、SMS メッセージを送信するとこの限度を超えるコストが発生すると判断する場合、数分以内に SMS メッセージの発行を停止します。 SMS の毎月の使用料限度の設定の詳細、または AWS に対して限度の引き上げをリクエストする方法については、「Amazon SNS の SMS メッセージプリファレンスを設定する」を参照してください。 単位: USD 有効なディメンション: なし 有効な統計: Sum |
AWS/SNS |
SMSSuccessRate
|
正常な SMS メッセージ配信のレート 単位: カウント 有効なディメンション: 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 メッセージのメッセージタイプのフィルター。プロモーションまたはトランザクションがあります。 |
Amazon SNS 使用率メトリクス
Amazon Simple Notification Service は、以下の使用状況メトリクスを CloudWatch に送信します。
名前空間 |
サービス |
メトリクス |
リソース |
タイプ |
説明 |
---|---|---|---|---|---|
AWS/使用 | SNS | ResourceCount |
NumberOfMessagesPublishedPerAccount |
リソース |
|
AWS/使用 | SNS | ResourceCount |
ApproximateNumberOfTopics |
リソース |
|
AWS/使用 | SNS | ResourceCount |
ApproximateNumberOfFilterPolicies |
リソース |
|
AWS/使用 | SNS | ResourceCount |
ApproximateNumberOfPendingSubscriptions |
リソース |
|
AWS/使用 | SNS | CallCount |
|
API |
|