

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon SNS でのログ記録とモニタリング
<a name="sns-logging-monitoring"></a>

Amazon SNS では、CloudTrail で API コールをログ記録し、CloudWatch でトピックをモニタリングして、メッセージングアクティビティを追跡およびモニタリングできます。これらのツールは、メッセージ配信に関するインサイトの取得、問題のトラブルシューティング、メッセージングワークフローの正常性の確保に役立ちます。このトピックでは次の内容について説明します。
+ [を使用した AWS SNS API コールのログ記録 AWS CloudTrail](logging-using-cloudtrail.md)。このログ記録によって、トピックの作成、サブスクリプションの管理、メッセージの発行など、Amazon SNS トピックで実行されたアクションを追跡できます。CloudTrail ログを分析すると、特定の API リクエストを実行したユーザーとそのリクエストの実行日時を特定できるため、Amazon SNS の使用状況の監査とトラブルシューティングに役立ちます。
+ [CloudWatch を使用した Amazon SNS のモニタリング](sns-monitoring-using-cloudwatch.md)。CloudWatch が提供するメトリクスを利用すると、Amazon SNS トピックのパフォーマンスと状態をリアルタイムで観察できます。これらのメトリクスに基づいてアラームを設定すると、配信障害やメッセージレイテンシーの増加などの異常に迅速に対応できます。このモニタリング機能により、潜在的な問題にプロアクティブに対処して、SNS ベースのメッセージングシステムの信頼性を維持できます。

# を使用した AWS SNS API コールのログ記録 AWS CloudTrail
<a name="logging-using-cloudtrail"></a>

AWS SNS は、ユーザー[AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)、ロール、または によって実行されたアクションを記録するサービスである と統合されています AWS のサービス。CloudTrail は、SNS のすべての API コールをイベントとしてキャプチャします。キャプチャされたコールには、SNS コンソールからのコールと、SNS API オペレーションへのコードのコールが含まれます。CloudTrail で収集された情報を使用して、SNS に対するリクエスト、リクエスト元の IP アドレス、リクエストの作成日時、その他の詳細を確認できます。

各イベントまたはログエントリには、誰がリクエストを生成したかという情報が含まれます。アイデンティティ情報は、以下を判別するのに役立ちます。
+ ルートユーザーまたはユーザー認証情報のどちらを使用してリクエストが送信されたか。
+ リクエストが IAM Identity Center ユーザーに代わって行われたかどうか。
+ リクエストがロールまたはフェデレーションユーザーのテンポラリなセキュリティ認証情報を使用して行われたかどうか。
+ リクエストが、別の AWS のサービスによって送信されたかどうか。

CloudTrail は、アカウントを作成する AWS アカウント と でアクティブになり、CloudTrail **イベント履歴**に自動的にアクセスできます。CloudTrail の **[イベント履歴]** では、 AWS リージョンで過去 90 日間に記録された管理イベントの表示、検索、およびダウンロードが可能で、変更不可能な記録を確認できます。詳細については、「*AWS CloudTrail ユーザーガイド*」の「[CloudTrail イベント履歴の使用](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)」を参照してください。**[イベント履歴]** の閲覧には CloudTrail の料金はかかりません。

 AWS アカウント 過去 90 日間のイベントの継続的な記録については、証跡または [CloudTrail Lake](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html) イベントデータストアを作成します。

**CloudTrail 証跡**  
*証跡*により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。を使用して作成されたすべての証跡 AWS マネジメントコンソール はマルチリージョンです。 AWS CLIを使用する際は、単一リージョンまたは複数リージョンの証跡を作成できます。アカウント AWS リージョン 内のすべての でアクティビティをキャプチャするため、マルチリージョン証跡を作成することをお勧めします。単一リージョンの証跡を作成する場合、証跡の AWS リージョンに記録されたイベントのみを表示できます。証跡の詳細については、「*AWS CloudTrail ユーザーガイド*」の「[AWS アカウントの証跡の作成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)」および「[組織の証跡の作成](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-trail-organization.html)」を参照してください。  
証跡を作成すると、進行中の管理イベントのコピーを 1 つ無料で CloudTrail から Amazon S3 バケットに配信できますが、Amazon S3 ストレージには料金がかかります。CloudTrail の料金の詳細については、「[AWS CloudTrail の料金](https://aws.amazon.com/cloudtrail/pricing/)」を参照してください。Amazon S3 の料金に関する詳細については、「[Amazon S3 の料金](https://aws.amazon.com/s3/pricing/)」を参照してください。

**CloudTrail Lake イベントデータストア**  
*[CloudTrail Lake]* を使用すると、イベントに対して SQL ベースのクエリを実行できます。CloudTrail Lake は、行ベースの JSON 形式の既存のイベントを [Apache ORC](https://orc.apache.org/) 形式に変換します。ORC は、データを高速に取得するために最適化された単票ストレージ形式です。イベントは、*イベントデータストア*に集約されます。イベントデータストアは、[高度なイベントセレクタ](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-concepts.html#adv-event-selectors)を適用することによって選択する条件に基づいた、イベントのイミュータブルなコレクションです。どのイベントが存続し、クエリに使用できるかは、イベントデータストアに適用するセレクタが制御します。CloudTrail Lake の詳細については、 *AWS CloudTrail ユーザーガイド*の[AWS CloudTrail 「Lake の使用](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html)」を参照してください。  
CloudTrail Lake のイベントデータストアとクエリにはコストがかかります。イベントデータストアを作成する際に、イベントデータストアに使用する[料金オプション](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-manage-costs.html#cloudtrail-lake-manage-costs-pricing-option)を選択します。料金オプションによって、イベントの取り込みと保存にかかる料金、および、そのイベントデータストアのデフォルトと最長の保持期間が決まります。CloudTrail の料金の詳細については、「[AWS CloudTrail の料金](https://aws.amazon.com/cloudtrail/pricing/)」を参照してください。

## CloudTrail の SNS データイベント
<a name="cloudtrail-data-events"></a>

[データイベント](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events)では、リソース上またはリソース内で実行されるリソースオペレーション (Amazon S3 オブジェクトの読み取りまたは書き込みなど) についての情報が得られます。これらのイベントは、データプレーンオペレーションとも呼ばれます。データイベントは、多くの場合、高ボリュームのアクティビティです。デフォルトでは、CloudTrail はデータイベントをログ記録しません。CloudTrail **[イベント履歴]** にはデータイベントは記録されません。

追加の変更がイベントデータに適用されます。CloudTrail の料金の詳細については、「[AWS CloudTrail の料金](https://aws.amazon.com/cloudtrail/pricing/)」を参照してください。

CloudTrail コンソール、または CloudTrail CloudTrail API オペレーションを使用して AWS CLI、SNS リソースタイプのデータイベントを記録できます。データイベントをログに記録する方法の詳細については、「*AWS CloudTrail ユーザーガイド*」の「[AWS マネジメントコンソールを使用したデータイベントのログ記録](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events-console)」および「[AWS Command Line Interfaceを使用したデータイベントのログ記録](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#creating-data-event-selectors-with-the-AWS-CLI)」を参照してください。

次の表に、データイベントをログ記録できる SNS リソースタイプを示します。**データイベントタイプ (コンソール)** 列には、CloudTrail コンソールの**[データイベントタイプ]**リストから選択する値が表示されます。**resources.type 値**列には、 AWS CLI または CloudTrail APIs を使用して高度なイベントセレクタを設定するときに指定する `resources.type`値が表示されます。**CloudTrail に記録されたデータ API** 列には、リソースタイプの CloudTrail にログ記録された API コールが表示されます。


| データイベントタイプ (コンソール) | resources.type 値 | CloudTrail にログ記録されたデータ API | 
| --- | --- | --- | 
| SNS トピック |  [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html)  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sns/latest/dg/logging-using-cloudtrail.html) | 
| SNS プラットフォームエンドポイント |  AWS::SNS::PlatformEndpoint  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sns/latest/dg/logging-using-cloudtrail.html)  | 

**注記**  
SNS リソースタイプ `AWS::SNS::PhoneNumber` は、CloudTrail によってログ記録されません。

`eventName`、`readOnly`、および `resources.ARN` フィールドでフィルタリングして、自分にとって重要なイベントのみをログに記録するように高度なイベントセレクタを設定できます。オブジェクトの詳細については、「*AWS CloudTrail API リファレンス*」の「[https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html)」を参照してください。

データイベントのログ記録の詳細については、CloudTrail ユーザーガイド」の「 を使用したデータイベントのログ記録 AWS マネジメントコンソール 」および AWS CLI 「 を使用したデータイベントのログ記録」を参照してください。

## CloudTrail の SNS 管理イベント
<a name="cloudtrail-management-events"></a>

[管理イベント](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html#logging-management-events)は、 のリソースで実行される管理オペレーションに関する情報を提供します AWS アカウント。これらのイベントは、コントロールプレーンオペレーションとも呼ばれます。CloudTrail は、デフォルトで管理イベントをログ記録します。

AWS SNS は、次の SNS コントロールプレーンオペレーション*を管理イベント*として CloudTrail に記録します。
+ `[AddPermission](https://docs.aws.amazon.com/sns/latest/api/API_AddPermission.html)`
+ `[CheckIfPhoneNumberIsOptedOut](https://docs.aws.amazon.com/sns/latest/api/API_CheckIfPhoneNumberIsOptedOut.html)`
+ `[ConfirmSubscription](https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html)`
+ `[CreatePlatformApplication](https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html)`
+ `[CreatePlatformEndpoint](https://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html)`
+ `[CreateSMSSandboxPhoneNumber](https://docs.aws.amazon.com/sns/latest/api/API_CreateSMSSandboxPhoneNumber.html)`
+ `[CreateTopic](https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html)`
+ `[DeleteEndpoint](https://docs.aws.amazon.com/sns/latest/api/API_DeleteEndpoint.html)`
+ `[DeletePlatformApplication](https://docs.aws.amazon.com/sns/latest/api/API_DeletePlatformApplication.html)`
+ `[DeleteSMSSandboxPhoneNumber](https://docs.aws.amazon.com/sns/latest/api/API_DeleteSMSSandboxPhoneNumber.html)`
+ `[DeleteTopic](https://docs.aws.amazon.com/sns/latest/api/API_DeleteTopic.html)`
+ `[GetDataProtectionPolicy](https://docs.aws.amazon.com/sns/latest/api/API_GetDataProtectionPolicy.html)`
+ `[GetEndpointAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetEndpointAttributes.html)`
+ `[GetPlatformApplicationAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetPlatformApplicationAttributes.html)`
+ `[GetSMSAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSMSAttributes.html)`
+ `[GetSMSSandboxAccountStatus](https://docs.aws.amazon.com/sns/latest/api/API_GetSMSSandboxAccountStatus.html)`
+ `[GetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetSubscriptionAttributes.html)`
+ `[GetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_GetTopicAttributes.html)`
+ `[ListEndpointsByPlatformApplication](https://docs.aws.amazon.com/sns/latest/api/API_ListEndpointsByPlatformApplication.html)`
+ `[ListOriginationNumbers](https://docs.aws.amazon.com/sns/latest/api/API_ListOriginationNumbers.html)`
+ `[ListPhoneNumbersOptedOut](https://docs.aws.amazon.com/sns/latest/api/API_ListPhoneNumbersOptedOut.html)`
+ `[ListPlatformApplications](https://docs.aws.amazon.com/sns/latest/api/API_ListPlatformApplications.html)`
+ `[ListSMSSandboxPhoneNumbers](https://docs.aws.amazon.com/sns/latest/api/API_ListSMSSandboxPhoneNumbers.html)`
+ `[ListSubscriptions](https://docs.aws.amazon.com/sns/latest/api/API_ListSubscriptions.html)`
+ `[ListSubscriptionsByTopic](https://docs.aws.amazon.com/sns/latest/api/API_ListSubscriptionsByTopic.html)`
+ `[ListTagsForResource](https://docs.aws.amazon.com/sns/latest/api/API_ListTagsForResource.html)`
+ `[ListTopics](https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html)`
+ `[OptInPhoneNumber](https://docs.aws.amazon.com/sns/latest/api/API_OptInPhoneNumber.html)`
+ `[PutDataProtectionPolicy](https://docs.aws.amazon.com/sns/latest/api/API_PutDataProtectionPolicy.html)`
+ `[RemovePermission](https://docs.aws.amazon.com/sns/latest/api/API_RemovePermission.html)`
+ `[SetEndpointAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetEndpointAttributes.html)`
+ `[SetPlatformApplicationAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetPlatformApplicationAttributes.html)`
+ `[SetSMSAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetSMSAttributes.html)`
+ `[SetSubscriptionAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetSubscriptionAttributes.html)`
+ `[SetTopicAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetTopicAttributes.html)`
+ `[Subscribe](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html)`
+ `[TagResource](https://docs.aws.amazon.com/sns/latest/api/API_TagResource.html)`
+ `[Unsubscribe](https://docs.aws.amazon.com/sns/latest/api/API_Unsubscribe.html)`
+ `[UntagResource](https://docs.aws.amazon.com/sns/latest/api/API_UntagResource.html)`
+ `[VerifySMSSandboxPhoneNumber](https://docs.aws.amazon.com/sns/latest/api/API_VerifySMSSandboxPhoneNumber.html)`

**注記**  
Amazon Web Services にログインしていない状態 (非認証モード) で、[https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html](https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html) または [https://docs.aws.amazon.com/sns/latest/api/API_Unsubscribe.html](https://docs.aws.amazon.com/sns/latest/api/API_Unsubscribe.html) アクションのいずれかが呼び出された場合、そのアクションは CloudTrail に記録されません。例えば、E メール通知内のリンクを選択して、あるトピックへの保留中のサブスクリプションを確認したとき、`ConfirmSubscription` アクションが非認証モードで呼び出されたとします。この場合、`ConfirmSubscription` アクションは CloudTrail に記録されません。

## SNS イベントの例
<a name="cloudtrail-event-examples"></a>

各イベントは任意の送信元からの単一のリクエストを表し、リクエストされた API オペレーション、オペレーションの日時、リクエストパラメータなどに関する情報を含みます。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、イベントは特定の順序で表示されません。

次は、**`ListTopics`**、`CreateTopic`、および `DeleteTopic` の各アクションを示す CloudTrail イベントの例です。

```
{
  "Records": [
    {
      "eventVersion": "1.02",
      "userIdentity": {
        "type": "IAMUser",
        "userName": "Bob",
        "principalId": "EX_PRINCIPAL_ID",
        "arn": "arn:aws:iam::123456789012:user/Bob",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE"
      },
      "eventTime": "2014-09-30T00:00:00Z",
      "eventSource": "sns.amazonaws.com",
      "eventName": "ListTopics",
      "awsRegion": "us-west-2",
      "sourceIPAddress": "127.0.0.1",
      "userAgent": "aws-sdk-java/unknown-version",
      "requestParameters": {
        "nextToken": "ABCDEF1234567890EXAMPLE=="
      },
      "responseElements": null,
      "requestID": "example1-b9bb-50fa-abdb-80f274981d60",
      "eventID": "example0-09a3-47d6-a810-c5f9fd2534fe",
      "eventType": "AwsApiCall",
      "recipientAccountId": "123456789012"
    },
    {
      "eventVersion": "1.02",
      "userIdentity": {
        "type": "IAMUser",
        "userName": "Bob",
        "principalId": "EX_PRINCIPAL_ID",
        "arn": "arn:aws:iam::123456789012:user/Bob",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE"
      },
      "eventTime": "2014-09-30T00:00:00Z",
      "eventSource": "sns.amazonaws.com",
      "eventName": "CreateTopic",
      "awsRegion": "us-west-2",
      "sourceIPAddress": "127.0.0.1",
      "userAgent": "aws-sdk-java/unknown-version",
      "requestParameters": {
        "name": "hello"
      },
      "responseElements": {
        "topicArn": "arn:aws:sns:us-west-2:123456789012:hello-topic"
      },
      "requestID": "example7-5cd3-5323-8a00-f1889011fee9",
      "eventID": "examplec-4f2f-4625-8378-130ac89660b1",
      "eventType": "AwsApiCall",
      "recipientAccountId": "123456789012"
    },
    {
      "eventVersion": "1.02",
      "userIdentity": {
        "type": "IAMUser",
        "userName": "Bob",
        "principalId": "EX_PRINCIPAL_ID",
        "arn": "arn:aws:iam::123456789012:user/Bob",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE"
      },
      "eventTime": "2014-09-30T00:00:00Z",
      "eventSource": "sns.amazonaws.com",
      "eventName": "DeleteTopic",
      "awsRegion": "us-west-2",
      "sourceIPAddress": "127.0.0.1",
      "userAgent": "aws-sdk-java/unknown-version",
      "requestParameters": {
        "topicArn": "arn:aws:sns:us-west-2:123456789012:hello-topic"
      },
      "responseElements": null,
      "requestID": "example5-4faa-51d5-aab2-803a8294388d",
      "eventID": "example8-6443-4b4d-abfd-1b867280d964",
      "eventType": "AwsApiCall",
      "recipientAccountId": "123456789012"
    }
  ]
}
```

以下の例は、`Publish` アクションを示す CloudTrail イベントエントリです。

```
{
  "eventVersion": "1.09",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "EX_PRINCIPAL_ID",
    "arn": "arn:aws:iam::123456789012:user/Bob",
    "accountId": "123456789012",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
    "sessionContext": {
      "sessionIssuer": {
        "type": "Role",
        "principalId": "AKIAIOSFODNN7EXAMPLE",
        "arn": "arn:aws:iam::123456789012:role/Admin",
        "accountId": "123456789012",
        "userName": "ExampleUser"
      },
      "attributes": {
        "creationDate": "2023-08-21T16:44:05Z",
        "mfaAuthenticated": "false"
      }
    }
  },
  "eventTime": "2023-08-21T16:48:37Z",
  "eventSource": "sns.amazonaws.com",
  "eventName": "Publish",
  "awsRegion": "us-east-1",
  "sourceIPAddress": "192.0.2.0",
  "userAgent": "aws-cli/1.29.16 md/Botocore#1.31.16 ua/2.0 os/linux#5.4.250-173.369.amzn2int.x86_64 md/arch#x86_64 lang/python#3.8.17 md/pyimpl#CPython cfg/retry-mode#legacy botocore/1.31.16",
  "requestParameters": {
    "topicArn": "arn:aws:sns:us-east-1:123456789012:ExampleSNSTopic",
    "message": "HIDDEN_DUE_TO_SECURITY_REASONS",
    "subject": "HIDDEN_DUE_TO_SECURITY_REASONS",
    "messageStructure": "json",
    "messageAttributes": "HIDDEN_DUE_TO_SECURITY_REASONS"
  },
  "responseElements": {
    "messageId": "0787cd1e-d92b-521c-a8b4-90434e8ef840"
  },
  "requestID": "0a8ab208-11bf-5e01-bd2d-ef55861b545d",
  "eventID": "bb3496d4-5252-4660-9c28-3c6aebdb21c0",
  "readOnly": false,
  "resources": [
    {
      "accountId": "123456789012",
      "type": "AWS::SNS::Topic",
      "ARN": "arn:aws:sns:us-east-1:123456789012:ExampleSNSTopic"
    }
  ],
  "eventType": "AwsApiCall",
  "managementEvent": false,
  "recipientAccountId": "123456789012",
  "eventCategory": "Data",
  "tlsDetails": {
    "tlsVersion": "TLSv1.2",
    "cipherSuite": "ECDHE-RSA-AES128-GCM-SHA256",
    "clientProvidedHostHeader": "sns.us-east-1.amazonaws.com"
  }
}
```

以下の例は、`PublishBatch` アクションを示す CloudTrail イベントエントリです。

```
{
  "eventVersion": "1.09",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "EX_PRINCIPAL_ID",
    "arn": "arn:aws:iam::123456789012:user/Bob",
    "accountId": "123456789012",
    "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
    "sessionContext": {
      "sessionIssuer": {
        "type": "Role",
        "principalId": "AKIAIOSFODNN7EXAMPLE",
        "arn": "arn:aws:iam::123456789012:role/Admin",
        "accountId": "123456789012",
        "userName": "ExampleUser"
      },
      "attributes": {
        "creationDate": "2023-08-21T19:20:49Z",
        "mfaAuthenticated": "false"
      }
    }
  },
  "eventTime": "2023-08-21T19:22:01Z",
  "eventSource": "sns.amazonaws.com",
  "eventName": "PublishBatch",
  "awsRegion": "us-east-1",
  "sourceIPAddress": "192.0.2.0",
  "userAgent": "aws-cli/1.29.16 md/Botocore#1.31.16 ua/2.0 os/linux#5.4.250-173.369.amzn2int.x86_64 md/arch#x86_64 lang/python#3.8.17 md/pyimpl#CPython cfg/retry-mode#legacy botocore/1.31.16",
  "requestParameters": {
    "topicArn": "arn:aws:sns:us-east-1:123456789012:ExampleSNSTopic",
    "publishBatchRequestEntries": [
      {
        "id": "1",
        "message": "HIDDEN_DUE_TO_SECURITY_REASONS"
      },
      {
        "id": "2",
        "message": "HIDDEN_DUE_TO_SECURITY_REASONS"
      }
    ]
  },
  "responseElements": {
    "successful": [
      {
        "id": "1",
        "messageId": "30d68101-a64a-5573-9e10-dc5c1dd3af2f"
      },
      {
        "id": "2",
        "messageId": "c0aa0c5c-561d-5455-b6c4-5101ed84de09"
      }
    ],
    "failed": []
  },
  "requestID": "e2cdf7f3-1b35-58ad-ac9e-aaaea0ace2f1",
  "eventID": "10da9a14-0154-4ab6-b3a5-1825b229a7ed",
  "readOnly": false,
  "resources": [
    {
      "accountId": "123456789012",
      "type": "AWS::SNS::Topic",
      "ARN": "arn:aws:sns:us-east-1:123456789012:ExampleSNSTopic"
    }
  ],
  "eventType": "AwsApiCall",
  "managementEvent": false,
  "recipientAccountId": "123456789012",
  "eventCategory": "Data",
  "tlsDetails": {
    "tlsVersion": "TLSv1.2",
    "cipherSuite": "ECDHE-RSA-AES128-GCM-SHA256",
    "clientProvidedHostHeader": "sns.us-east-1.amazonaws.com"
  }
}
```

CloudTrail レコードの内容については、「*AWS CloudTrail ユーザーガイド*」の「[CloudTrail record contents](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html)」を参照してください。

# CloudWatch を使用した Amazon SNS のモニタリング
<a name="sns-monitoring-using-cloudwatch"></a>

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

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

## Amazon SNS 用の CloudWatch メトリクス
<a name="view-cloudwatch-metrics"></a>

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

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

1. [CloudWatch コンソール](https://console.aws.amazon.com/cloudwatch)にサインインします。

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

1. [**All metrics**] タブで [**SNS**] を選択し、次のいずれかのディメンションを選択します。
   + **国/地域、SMS タイプ**
   + **電話番号**
   + **トピックのメトリクス**
   + **ディメンションの定められていないメトリクス**

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

1. Amazon SNS の使用状況メトリクスを表示するには、**[All metrics]** (すべてのメトリクス) タブで **[Usage]** (使用率) を選択し、**対象の Amazon SNS 使用率メトリクス** (例: `NumberOfMessagesPublishedPerAccount`) を選択します。

## Amazon SNS メトリクス用の CloudWatch メトリクスを設定する
<a name="SNS_AlarmMetrics"></a>

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

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

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) で CloudWatch コンソールを開きます。

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

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

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

1. アラーム状態として [**Alarm**] を選択します。アラーム状態になったときに CloudWatch から E メールが届くようにするには、既存の Amazon SNS トピックを選択するか、[**新しいメールトピックの作成**] を選択します。[**新しいメールトピックの作成**] を選択した場合は、新しいトピックの名前と E メールアドレスを設定できます。このリストは、今後のアラーム用に保存され、ドロップダウンボックスに表示されます。[**続行**] をクリックしてください。
**注記**  
[**Create New Email Topic**] を使用して新しい Amazon SNS トピックを作成する場合、メールアドレスを検証しなければ、そのアドレスで通知を受け取ることができません。E メールは、アラームがアラーム状態になったときにのみ送信されます。アラーム状態になったときに、メールアドレスの検証がまだ完了していない場合は、そのアドレスで通知を受け取ることはできません。

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

CloudWatch とアラームの使用方法の詳細については、「[CloudWatch のドキュメント](https://aws.amazon.com/documentation/cloudwatch)」を参照してください。

## Amazon SNS のメトリクス
<a name="sns-metrics"></a>

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 メッセージ配信の再試行](sns-message-delivery-retries.md)」を参照してください。 **単位**: カウント **有効なディメンション:** アプリケーション、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 メッセージプリファレンスを設定する](sms_preferences.md)」を参照してください。 **単位:** USD **有効なディメンション:** なし **有効な統計:** Sum  | 
| AWS/SNS |  SMSSuccessRate  |  正常な SMS メッセージ配信のレート **単位**: カウント **有効なディメンション:** PhoneNumber **有効な統計:** Sum、Average、Data Samples  | 

## Amazon SNS メトリクスのディメンション
<a name="sns-metric-dimensions"></a>

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 使用率メトリクス
<a name="sns-usage-metrics"></a>

Amazon Simple Notification Service は、以下の使用状況メトリクスを CloudWatch に送信します。


|  名前空間  |  サービス  | メトリクス | [リソース]  | タイプ | 説明 | 
| --- | --- | --- | --- | --- | --- | 
| AWS/使用 | SNS | ResourceCount | NumberOfMessagesPublishedPerAccount | [リソース]  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sns/latest/dg/sns-monitoring-using-cloudwatch.html)  | 
| AWS/使用 | SNS | ResourceCount | ApproximateNumberOfTopics | [リソース]  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sns/latest/dg/sns-monitoring-using-cloudwatch.html)  | 
| AWS/使用 | SNS | ResourceCount | ApproximateNumberOfFilterPolicies | [リソース]  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sns/latest/dg/sns-monitoring-using-cloudwatch.html)  | 
| AWS/使用 | SNS | ResourceCount | ApproximateNumberOfPendingSubscriptions | [リソース]  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sns/latest/dg/sns-monitoring-using-cloudwatch.html)  | 
| AWS/使用 | SNS | CallCount |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sns/latest/dg/sns-monitoring-using-cloudwatch.html)  | API |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sns/latest/dg/sns-monitoring-using-cloudwatch.html)  | 