

# Amazon RDS DB インスタンスでの、イベント、ログ、およびストリーミングのモニタリング
<a name="CHAP_Monitor_Logs_Events"></a>

Amazon RDS データベースおよびその他の AWS ソリューションをモニタリングする場合、目標は次の条件を維持することです。
+ 信頼性
+ 利用可能な状況
+ パフォーマンス
+ セキュリティ

「[Amazon RDS インスタンスでのメトリクスのモニタリング](CHAP_Monitoring.md)」では、メトリクスを使用してインスタンスをモニタリングする方法について説明します。完全なソリューションでは、データベースイベント、ログファイル、およびアクティビティストリーミングもモニタリングする必要があります。AWS には、次のモニタリングツールが用意されています。
+ *Amazon EventBridge* は、アプリケーションをさまざまなソースのデータに簡単に接続できるようにするサーバーレスイベントバスサービスです。EventBridge は、お客様独自のアプリケーション、Software-as-a-Service (SaaS) アプリケーション、および AWS サービスから受け取るリアルタイムデータをストリームとして配信します。EventBridge では、データは AWS Lambda などのターゲットにルーティングされます。これにより、サービスで発生したイベントをモニタリングし、イベント駆動型アーキテクチャを構築できます。詳細については、「[Amazon EventBridge ユーザーガイド](https://docs.aws.amazon.com/eventbridge/latest/userguide/)」を参照してください。
+ *Amazon CloudWatch Logs* を使用すると、Amazon RDS インスタンス、AWS CloudTrail、およびその他のソースからのログファイルをモニタリングして保存し、それらにアクセスすることができます。Amazon CloudWatch Logs は、ログファイル内の情報をモニタリングし、特定のしきい値が満たされたときに通知します。高い耐久性を備えたストレージにログデータをアーカイブすることもできます。詳細については、「[Amazon CloudWatch Logs ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/)」を参照してください。
+ *AWS CloudTrail* は、AWS アカウントによって行われた、またはそのアカウントに代わって実行された API コールと関連イベントをキャプチャします。次に、CloudTrailは指定した Amazon S3 バケットにログファイルを渡します。AWS を呼び出したユーザーとアカウント、呼び出し元の IP アドレス、および呼び出しの発生日時を特定できます。詳細については、[AWS CloudTrailユーザーガイド](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)を参照してください。
+ *データベースアクティビティストリーム*は、Amazon RDS の機能であり、DB インスタンス内のアクティビティのストリームをほぼリアルタイムで提供します。Amazon RDS は、アクティビティを Amazon Kinesis データストリーミングにプッシュします。Kinesis ストリーミングが自動的に作成されます。Kinesis から、Amazon Data Firehose や AWS Lambda などの AWS サービスを設定して、ストリーミングを消費し、データを保存できます。

**Topics**
+ [Amazon RDS コンソールでのログ、イベント、およびストリーミングの表示](logs-events-streams-console.md)
+ [Amazon RDS イベントのモニタリング](working-with-events.md)
+ [Amazon RDS ログファイルのモニタリング](USER_LogAccess.md)
+ [AWS CloudTrail での Amazon RDS API コールのモニタリング](logging-using-cloudtrail.md)
+ [データベースアクティビティストリームを使用した Amazon RDS のモニタリング](DBActivityStreams.md)
+ [Amazon GuardDuty RDS Protection による脅威のモニタリング](guard-duty-rds-protection.md)

# Amazon RDS コンソールでのログ、イベント、およびストリーミングの表示
<a name="logs-events-streams-console"></a>

Amazon RDS が AWS のサービス と統合し、RDS コンソールでログ、イベント、およびデータベースアクティビティストリーミングに関する情報を表示できるようになりました。

 RDS DB インスタンスの **[ログとイベント]** タブで、次の情報が表示されます。
+ **[Amazon CloudWatch alarms]** (Amazon CloudWatch アラーム) – DB インスタンス用に設定したメトリクスアラームがすべて表示されます。アラームを設定していない場合は、RDS コンソールでアラームを作成できます。詳細については、「[Amazon CloudWatch を使用した Amazon RDS メトリクスのモニタリング](monitoring-cloudwatch.md)」を参照してください。
+ **[Recent events]** (最近のイベント) – RDS DB インスタンスのイベント (環境の変更) の概要が表示されます。詳細については、「[Amazon RDS イベントの表示](USER_ListEvents.md)」を参照してください。
+ **[Logs]** (ログ) – DB インスタンスによって生成されたデータベースログファイルが表示されます。詳細については、「[Amazon RDS ログファイルのモニタリング](USER_LogAccess.md)」を参照してください。

**[Configuration]** (設定) タブには、データベースアクティビティストリーミングに関する情報が表示されます。

**RDS コンソールで、 DB インスタンスのログ、イベント、およびストリームを表示するには**

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

1. ナビゲーションペインで、**データベース** を選択します。

1. モニタリングする DB インスタンスの名前を選択します。

   [Database] (データベース) ページが表示されます。次の例は、`orclb` という名前の Oracle データベースを示しています。  
![\[[Monitoring] (モニタリング) タブが表示された [Database] (データベース) ページ\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/oracle-with-monitoring-tab.png)

1. [**ログとイベント**] を選択します。

   [Logs & events] (ログとイベント) セクションが表示されます。  
![\[[Logs & events] (ログとイベント) タブが表示された [Database] (データベース) ページ\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/oracle-logs-and-events-subpage.png)

1. [**設定**] を選択します。

   次の例は、DB インスタンスのデータベースアクティビティストリームのステータスを示しています。  
![\[拡張モニタリング\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/oracle-das.png)

# Amazon RDS イベントのモニタリング
<a name="working-with-events"></a>

*イベント*は環境の変更を示します。これは、AWS 環境、SaaS パートナーサービスやアプリケーション、カスタムアプリケーションまたはサービスのいずれかです。RDS イベントの説明については、「[ Amazon RDS イベントカテゴリとイベントメッセージ](USER_Events.Messages.md)」を参照してください。

**Topics**
+ [Amazon RDS のイベントの概要](#rds-cloudwatch-events.sample)
+ [Amazon RDS イベントの表示](USER_ListEvents.md)
+ [Amazon RDS イベント通知の操作](USER_Events.md)
+ [Amazon RDS イベントでトリガーするルールの作成](rds-cloud-watch-events.md)
+ [Amazon RDS イベントカテゴリとイベントメッセージ](USER_Events.Messages.md)

## Amazon RDS のイベントの概要
<a name="rds-cloudwatch-events.sample"></a>

*RDS イベント*は、Amazon RDS 環境における変更を示します。例えば、、DB インスタンスの状態が保留から実行に変わると Amazon RDS はイベントを生成します。Amazon RDS は、EventBridge に対してほぼリアルタイムでイベントを配信します。

**注記**  
Amazon RDS は、ベストエフォートベースでイベントを発行します。通知イベントの順序または存在に依存するプログラムは、順序が正しくないか、または欠落している可能性があるため、作成しないことをお勧めします。

Amazon RDS は、次のリソースに関連するイベントを記録します。
+ DB インスタンス

  DB インスタンスイベントのリストについては、「[DB インスタンスイベント](USER_Events.Messages.md#USER_Events.Messages.instance)」を参照してください。
+ DB パラメータグループ

  DB パラメータグループイベントのリストについては、「[DB パラメータグループイベント](USER_Events.Messages.md#USER_Events.Messages.parameter-group)」を参照してください。
+ DB セキュリティグループ

  DB セキュリティグループイベントのリストについては、「[DB セキュリティグループイベント](USER_Events.Messages.md#USER_Events.Messages.security-group)」を参照してください。
+ DB スナップショット

  DB スナップショットイベントのリストについては、「[DB スナップショットイベント](USER_Events.Messages.md#USER_Events.Messages.snapshot)」を参照してください。
+ RDS Proxy イベント

  RDS Proxy イベントのリストについては、「[RDS Proxy イベント](USER_Events.Messages.md#USER_Events.Messages.rds-proxy)」を参照してください。
+ ブルー/グリーンデプロイイベント

  ブルー/グリーンデプロイイベントのリストについては、「[ブルー/グリーンデプロイイベント](USER_Events.Messages.md#USER_Events.Messages.BlueGreenDeployments)」を参照してください。

この情報には以下が含まれます。
+ リクエストの日付と時刻
+ イベントのソース名とソースタイプ
+ イベントに関連付けられたメッセージ。
+ イベント通知には、メッセージが送信されたときのタグが含まれ、イベントが発生した時点のタグが反映されない場合があります

# Amazon RDS イベントの表示
<a name="USER_ListEvents"></a>

Amazon RDS リソースの次のイベント情報を取得できます:
+ リソース名
+ リソースタイプ
+ イベントの時刻
+ イベントのメッセージの概要

イベントには、AWS マネジメントコンソール の以下の部分でアクセスできます。
+ 過去 24 時間のイベントを示す **[イベント]** タブ。
+ **[データベース]** タブの **[ログとイベント]** セクションの **[最近のイベント]** テーブル。過去 2 週間のイベントを表示できます。

また、[describe-events](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-events.html) AWS CLI コマンドまたは [DescribeEvents](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEvents.html) RDS API オペレーションを使用してイベントを取得することもできます。AWS CLI または RDS API を使用してイベントを表示する場合は、最大で過去 14 日間のイベントを取得できます。

**注記**  
イベントを長期間保存する必要がある場合は、Amazon RDS イベントを EventBridge に送信できます。詳細については、「[Amazon RDS イベントでトリガーするルールの作成](rds-cloud-watch-events.md)」を参照してください。

Amazon RDS イベントの説明については、「[ Amazon RDS イベントカテゴリとイベントメッセージ](USER_Events.Messages.md)」を参照してください。

AWS CloudTrail を使用してリクエストパラメータを含むイベントの詳細情報にアクセスするには、「[CloudTrail のイベント](logging-using-cloudtrail.md#service-name-info-in-cloudtrail.events)」を参照してください。

## コンソール
<a name="USER_ListEvents.CON"></a>

**過去 24 時間のすべての Amazon RDS イベントを表示するには**

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

1. ナビゲーションペインの **[Events]** (イベント) を選択します。

   使用できるイベントがリストに表示されます。

1. (オプション) 検索語を入力して、結果をフィルタリングします。

   次の例は、文字 **stopped** によってフィルタリングされたイベントのリストを示しています。  
![\[DB イベントのリスト\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/ListEvents.png)

## AWS CLI
<a name="USER_ListEvents.CLI"></a>

過去 1 時間に生成されたすべてのイベントを表示するには、[describe-events](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-events.html) をパラメータを指定せずに呼び出します。

```
aws rds describe-events
```

次の出力例は、DB インスタンスが停止したことを示しています。

```
{
    "Events": [
        {
            "EventCategories": [
                "notification"
            ], 
            "SourceType": "db-instance", 
            "SourceArn": "arn:aws:rds:us-east-1:123456789012:db:testinst", 
            "Date": "2022-04-22T21:31:00.681Z", 
            "Message": "DB instance stopped", 
            "SourceIdentifier": "testinst"
        }
    ]
}
```

過去 10080 分間 (7 日間) のすべての Amazon RDS イベントを表示するには、[describe-events](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-events.html) AWS CLI コマンドを呼び出し、`--duration` パラメータを `10080` に設定します。

```
1. aws rds describe-events --duration 10080
```

次の例は、DB インスタンス *testtest-instance* について、指定された時間範囲内のイベントを示しています。

```
aws rds describe-events \
    --source-identifier test-instance \
    --source-type db-instance \
    --start-time 2022-03-13T22:00Z \
    --end-time 2022-03-13T23:59Z
```

次の出力例は、バックアップのステータスを示しています。

```
{
    "Events": [
        {
            "SourceType": "db-instance",
            "SourceIdentifier": "test-instance",
            "EventCategories": [
                "backup"
            ],
            "Message": "Backing up DB instance",
            "Date": "2022-03-13T23:09:23.983Z",
            "SourceArn": "arn:aws:rds:us-east-1:123456789012:db:test-instance"
        },
        {
            "SourceType": "db-instance",
            "SourceIdentifier": "test-instance",
            "EventCategories": [
                "backup"
            ],
            "Message": "Finished DB Instance backup",
            "Date": "2022-03-13T23:15:13.049Z",
            "SourceArn": "arn:aws:rds:us-east-1:123456789012:db:test-instance"
        }
    ]
}
```

## API
<a name="USER_ListEvents.API"></a>

過去 14 日間のすべての Amazon RDS インスタンスのイベントを表示するには、RDS API の [DescribeEvents](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEvents.html) オペレーションを呼び出して、`Duration` パラメータを `20160` に設定します。

# Amazon RDS イベント通知の操作
<a name="USER_Events"></a>

Amazon RDS では、Amazon RDS のイベントが発生したときに、Amazon Simple Notification Service (Amazon SNS) を使用して通知を送信します。これらの通知については、AWS リージョンの Amazon SNS でサポートされているすべての通知の形式が使用可能です (E メール、テキストメッセージ、HTTP エンドポイントの呼び出しなど)。

**Topics**
+ [Amazon RDS イベント通知の概要](USER_Events.overview.md)
+ [Amazon SNS トピックに通知を発行するアクセス許可を付与する](USER_Events.GrantingPermissions.md)
+ [Amazon RDS イベント通知にサブスクライブする](USER_Events.Subscribing.md)
+ [Amazon RDS イベント通知タグと属性](USER_Events.TagsAttributesForFiltering.md)
+ [Amazon RDS DB イベント通知サブスクリプションのリスト化](USER_Events.ListSubscription.md)
+ [Amazon RDS イベント通知サブスクリプションを変更する](USER_Events.Modifying.md)
+ [Amazon RDS イベント通知サブスクリプションへのソース識別子の追加](USER_Events.AddingSource.md)
+ [Amazon RDS イベント通知サブスクリプションからのソース識別子の削除](USER_Events.RemovingSource.md)
+ [Amazon RDS イベント通知カテゴリのリスト化](USER_Events.ListingCategories.md)
+ [Amazon RDS イベント通知サブスクリプションの削除](USER_Events.Deleting.md)

# Amazon RDS イベント通知の概要
<a name="USER_Events.overview"></a>

Amazon RDS は、サブスクライブ可能なカテゴリにイベントをグループ分けします。これにより、そのカテゴリのイベントが発生すると、通知を受け取ることができます。

**Topics**
+ [イベントサブスクリプションの対象となる RDS リソース](#USER_Events.overview.resources)
+ [Amazon RDS イベント通知にサブスクライブする基本的な手順は次のとおりです。](#USER_Events.overview.process)
+ [RDS イベント通知のデリバリー](#USER_Events.overview.subscriptions)
+ [Amazon RDS イベント通知の請求](#USER_Events.overview.billing)
+ [Amazon EventBridgei を使用した Amazon RDS イベントの例](#events-examples)

## イベントサブスクリプションの対象となる RDS リソース
<a name="USER_Events.overview.resources"></a>

次のリソースのイベントカテゴリにサブスクライブできます。
+ DB インスタンス
+ DB スナップショット
+ DB パラメータグループ
+ DB セキュリティグループ
+ RDS Proxy 
+ カスタムエンジンバージョン

例えば、特定の DB インスタンスのバックアップカテゴリにサブスクライブした場合、DB インスタンスに影響するバックアップ関連のイベントが発生するたびに通知が送信されます。DB インスタンスの設定変更カテゴリにサブスクライブした場合は、DB インスタンスが変更されると、通知を受け取ります。また、イベント通知サブスクリプションが変更されても、通知を受け取ります。

複数の異なるサブスクリプションを作成することもできます。例えば、すべての DB インスタンスの全イベント通知を受信するサブスクリプションや、DB インスタンスのサブセットに関する重要なイベントのみを含むサブスクリプションを作成することもできます。2 番目のサブスクリプションでは、フィルターで 1 つ以上の DB インスタンスを指定します。

## Amazon RDS イベント通知にサブスクライブする基本的な手順は次のとおりです。
<a name="USER_Events.overview.process"></a>

Amazon RDS イベント通知にサブスクライブする手順は次のとおりです。

1. Amazon RDS コンソール、AWS CLI、または API を使用して、Amazon RDS イベント通知サブスクリプションを作成します。

   Amazon RDS では、Amazon SNS トピックの ARN を使用して各サブスクリプションを識別します。Amazon RDS コンソールでは、サブスクリプションの作成時に ARN が作成されます。Amazon SNS コンソール、AWS CLI、または Amazon SNS API を使用して ARN を作成します。

1. サブスクリプションの作成で指定したアドレス宛てに、Amazon RDS から承認の E メールまたは SMS メッセージが送信されます。

1. サブスクリプションを確認するには、受信した通知に記載されているリンクを選択します。

1. Amazon RDS コンソールでは、サブスクリプションのステータスで [**My Event Subscriptions**] (イベントのサブスクリプション) が更新されます。

1. Amazon RDS は、サブスクリプションを作成したときに指定したアドレスへの通知の送信を開始します。

Amazon SNS を使用する際の Identity and Access Management に関する詳細については、*Amazon Simple Notification Service デベロッパーガイド*の「[Identity and access management in Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-authentication-and-access-control.html)」を参照してください。

DB インスタンスからのイベント通知の処理には、AWS Lambda を使用することができます。詳細については、*AWS Lambda デベロッパーガイド*の「[Amazon RDS で AWS Lambda を使用する](https://docs.aws.amazon.com/lambda/latest/dg/services-rds.html)」を参照してください。

## RDS イベント通知のデリバリー
<a name="USER_Events.overview.subscriptions"></a>

Amazon RDS は、サブスクリプションを作成するときに指定したアドレスに通知を送信します。通知には、メッセージに関する構造化メタデータを提供する、メッセージ属性を含めることができます。メッセージ属性の詳細については、「[ Amazon RDS イベントカテゴリとイベントメッセージ](USER_Events.Messages.md)」を参照してください。

イベント通知が配信されるまでに最大 5 分かかります。

**重要**  
Amazon RDS はイベントストリーミングのイベントの順番を保証しません。イベントの順番は変わる場合があります。

Amazon SNS が受信登録している HTTP または HTTPS エンドポイントに通知を送信した場合、エンドポイントに送信される POST メッセージには、JSON ドキュメントを含むメッセージ本文が含まれます。詳細については、*Amazon Simple Notification Service デベロッパーガイド*の「[Amazon SNS メッセージと JSON 形式](https://docs.aws.amazon.com/sns/latest/dg/sns-message-and-json-formats.html)」を参照してください。

テキストメッセージで通知を送信するように SNS を設定できます。詳細については、*Amazon Simple Notification Service デベロッパーガイド*の「[Mobile text messaging (SMS)](https://docs.aws.amazon.com/sns/latest/dg/sns-mobile-phone-number-as-subscriber.html)」を参照してください。

サブスクリプションを削除せずに通知を無効にするには、Amazon RDS コンソールで **[Enabled]** (有効) として **[No]** (いいえ) を選択します。または、AWS CLI や Amazon RDS API を使用して `Enabled` パラメータを`false` に設定します。

## Amazon RDS イベント通知の請求
<a name="USER_Events.overview.billing"></a>

Amazon RDS イベント通知の請求は、Amazon SNS を通じて行われます。使用したイベント通知に対して、Amazon SNS 料金が適用されます。Amazon SNS の請求の詳細については、「[Amazon Simple Notification Service 料金表](https://aws.amazon.com/sns/#pricing)」を参照してください。

## Amazon EventBridgei を使用した Amazon RDS イベントの例
<a name="events-examples"></a>

次の例は、JSON 形式のさまざまなタイプの Amazon RDS イベントを示しています。JSON 形式でイベントをキャプチャして表示する方法を示すチュートリアルについては、「[チュートリアル: Amazon EventBridge を使用して DB インスタンスの状態変化をログに記録する](rds-cloud-watch-events.md#log-rds-instance-state)」を参照してください。

**Topics**
+ [DB インスタンスイベントの例](#rds-cloudwatch-events.db-instances)
+ [DB パラメータグループイベントの例](#rds-cloudwatch-events.db-parameter-groups)
+ [DB スナップショットイベントの例](#rds-cloudwatch-events.db-snapshots)

### DB インスタンスイベントの例
<a name="rds-cloudwatch-events.db-instances"></a>

以下は、JSON 形式の DB インスタンスイベントの例です。このイベントは、RDS が `my-db-instance` という名前のインスタンスのためにマルチ AZ フェイルオーバーを実行したことを示しています。イベント ID は RDS-EVENT-0049 です。

```
{
  "version": "0",
  "id": "68f6e973-1a0c-d37b-f2f2-94a7f62ffd4e",
  "detail-type": "RDS DB Instance Event",
  "source": "aws.rds",
  "account": "123456789012",
  "time": "2018-09-27T22:36:43Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:rds:us-east-1:123456789012:db:my-db-instance"
  ],
  "detail": {
    "EventCategories": [
      "failover"
    ],
    "SourceType": "DB_INSTANCE",
    "SourceArn": "arn:aws:rds:us-east-1:123456789012:db:my-db-instance",
    "Date": "2018-09-27T22:36:43.292Z",
    "Message": "A Multi-AZ failover has completed.",
    "SourceIdentifier": "my-db-instance",
    "EventID": "RDS-EVENT-0049"
  }
}
```

### DB パラメータグループイベントの例
<a name="rds-cloudwatch-events.db-parameter-groups"></a>

以下は、JSON 形式の DB パラメータグループイベントの例です。イベントは、パラメータグループ `time_zone` でパラメータ `my-db-param-group` が更新されたことを示します。イベント ID は RDS-EVENT-0037 です。

```
{
  "version": "0",
  "id": "844e2571-85d4-695f-b930-0153b71dcb42",
  "detail-type": "RDS DB Parameter Group Event",
  "source": "aws.rds",
  "account": "123456789012",
  "time": "2018-10-06T12:26:13Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:rds:us-east-1:123456789012:pg:my-db-param-group"
  ],
  "detail": {
    "EventCategories": [
      "configuration change"
    ],
    "SourceType": "DB_PARAM",
    "SourceArn": "arn:aws:rds:us-east-1:123456789012:pg:my-db-param-group",
    "Date": "2018-10-06T12:26:13.882Z",
    "Message": "Updated parameter time_zone to UTC with apply method immediate",
    "SourceIdentifier": "my-db-param-group",
    "EventID": "RDS-EVENT-0037"
  }
}
```

### DB スナップショットイベントの例
<a name="rds-cloudwatch-events.db-snapshots"></a>

以下は、JSON 形式の DB スナップショットイベントの例です。イベントは、`my-db-snapshot` という名前のスナップショットの削除を示します。イベント ID は RDS-EVENT-0041 です。

```
{
  "version": "0",
  "id": "844e2571-85d4-695f-b930-0153b71dcb42",
  "detail-type": "RDS DB Snapshot Event",
  "source": "aws.rds",
  "account": "123456789012",
  "time": "2018-10-06T12:26:13Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:rds:us-east-1:123456789012:snapshot:rds:my-db-snapshot"
  ],
  "detail": {
    "EventCategories": [
      "deletion"
    ],
    "SourceType": "SNAPSHOT",
    "SourceArn": "arn:aws:rds:us-east-1:123456789012:snapshot:rds:my-db-snapshot",
    "Date": "2018-10-06T12:26:13.882Z",
    "Message": "Deleted manual snapshot",
    "SourceIdentifier": "my-db-snapshot",
    "EventID": "RDS-EVENT-0041"
  }
}
```

# Amazon SNS トピックに通知を発行するアクセス許可を付与する
<a name="USER_Events.GrantingPermissions"></a>

Amazon Simple Notification Service (Amazon SNS) トピックに通知を発行するための Amazon RDS アクセス許可を付与するには、AWS Identity and Access Management (IAM) ポリシーを送信先トピックに添付します。アクセス許可の詳細については、*Amazon Simple Notification Service デベロッパーガイド*の「[Amazon Simple Notification Service のケース例](https://docs.aws.amazon.com/sns/latest/dg/sns-access-policy-use-cases.html)」を参照してください。

デフォルトで、Amazon SNS トピックには、同じアカウント内のすべての Amazon RDS リソースが通知を発行するのを許可するポリシーがあります。カスタムポリシーをアタッチして、クロスアカウント通知を許可したり、特定のリソースへのアクセスを制限したりできます。

発行先の Amazon SNS トピックにアタッチする IAM ポリシーの例を次に示します。トピックは、指定したプレフィックスと一致する名前を持つ DB インスタンスに制限されます。このポリシーを使用するには、次の値を指定します。
+ `Resource` – Amazon SNS トピックの Amazon リソースネーム (ARN)
+ `SourceARN` – RDS リソース ARN
+ `SourceAccount` – 自分の AWS アカウント ID。

リソースタイプとその ARN のリストを確認するには、「*サービス認可リファレンス*」の「[Amazon RDS で定義されるリソース](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrds.html#amazonrds-resources-for-iam-policies)」を参照してください。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "events.rds.amazonaws.com"
      },
      "Action": [
        "sns:Publish"
      ],
      "Resource": "arn:aws:sns:us-east-1:123456789012:topic_name",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:rds:us-east-1:123456789012:db:prefix-*"
        },
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        }
      }
    }
  ]
}
```

------

# Amazon RDS イベント通知にサブスクライブする
<a name="USER_Events.Subscribing"></a>

サブスクリプションを作成する最も簡単な方法は、RDS コンソールを使用する方法です。CLI または API を使用してイベント通知サブスクリプションを作成する場合、Amazon Simple Notification Service トピックを作成し、Amazon SNS コンソールまたは Amazon SNS API を使用してそのトピックにサブスクライブする必要があります。トピックの Amazon Resource Name (ARN) は、CLI コマンドや API オペレーションを送信するときに使用されるため維持する必要があります。SNS トピックの作成とサブスクライブについては、*Amazon Simple Notification Service デベロッパーガイド*の「[Amazon SNS のスタート方法](https://docs.aws.amazon.com/sns/latest/dg/GettingStarted.html)」を参照してください。

通知を受け取る対象となるソースのタイプ、およびイベントをトリガーする Amazon RDS ソースを指定できます。

**ソースタイプ**  
ソースのタイプ。例えば、**[Source type]** (ソースタイプ) が **[Instances]** (インスタンス) の可能性があります。ソースタイプを選択する必要があります。

**インクルードする*リソース***  
イベントを生成している Amazon RDS リソース。例えば、**[Select specific instances]** (特定のインスタンスを選択) を選択して、**[myDBInstance1]** を選択します。

次の表は、**インクルードする*リソース***を指定した場合と、指定しなかった場合の結果について説明しています。


|  インクルードするリソース  |  説明  |  例  | 
| --- | --- | --- | 
|  指定  |  RDS は、指定したリソースのみに関するすべてのイベントを通知します。  | 選択した [Source type] (ソースタイプ) が [Instances] (インスタンス) で、リソースが [myDBInstance1] の場合は、RDS は MyDBInstance1 のみに関するすべてのイベントを通知します。 | 
|  指定されていません  |  RDS は、すべての Amazon RDS リソースについて、指定したソースタイプのイベントを通知します。  |  **[Source type]** (ソースタイプ) が **[Instances]** (インスタンス) の場合は、RDS はそのアカウントのすべてのインスタンス関連イベントを通知します。  | 

デフォルトでは、Amazon SNS トピックのサブスクライバーは、トピックに対して発行されたすべてのメッセージを受信します。メッセージのサブセットのみを受信するには、サブスクライバーはトピックのサブスクリプションにフィルターポリシーを割り当てる必要があります。詳細については、「*Amazon SNS 開発者ガイド*」の「[Amazon SNS メッセージのフィルター処理](https://docs.aws.amazon.com/sns/latest/dg/sns-message-filtering.html)」を参照してください。

## コンソール
<a name="USER_Events.Subscribing.Console"></a>

**RDS イベント通知にサブスクライブするには**

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

1. ナビゲーションペインで、[**イベントサブスクリプション**] を選択します。

1. [**イベントサブスクリプション**] ページで、[**イベントサブスクリプションの作成**] を選択します。

1. サブスクリプションの詳細を次のように入力します。

   1. **[Name]** (名前) に、イベント通知サブスクリプションの名前を入力します。

   1. **[Send notifications to]** (通知の送信先) については、次のいずれかを実行します。
      + **[New email topic]** (新しい E メールトピック) を選択します。E メールトピックの名前と受信者のリストを入力します。イベントのサブスクリプションは、プライマリアカウントの連絡先と同じメールアドレスに設定することをお勧めします。推奨事項、サービスイベント、および個人の健康メッセージは、さまざまなチャネルを使用して送信されます。同じメールアドレスでサブスクリプションすると、すべてのメッセージが 1 か所にまとめられます。
      + **[Amazon Resource Name (ARN)]** (Amazon リソースネーム (ARN)) を選択します。次に、Amazon SNS トピックで既存の Amazon SNS ARN を選択します。

        サーバー側の暗号化 (SSE) で有効になっているトピックを使用する場合は、Amazon RDS に、AWS KMS key にアクセスするのに必要な許可を付与します。詳細については、*Amazon Simple Notification Service デベロッパーガイド*の「[AWS サービスと暗号化されたトピックのイベントソース間の互換性を保つ](https://docs.aws.amazon.com/sns/latest/dg/sns-key-management.html#compatibility-with-aws-services)」を参照してください。

   1. [**ソースタイプ**] で、ソースタイプを選択します。例えば、**[Instances]** (インスタンス) または **[Parameter groups]** (パラメータグループ)  を選択します。

   1. イベントの通知を受け取るイベントのカテゴリとリソースを選択します。

      次の例では、`testinst` という名前の DB インスタンスについて、イベント通知を設定します。  
![\[ソースタイプを入力する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/event-source.png)

   1. [**作成**] を選択します。

Amazon RDS コンソールでは、サブスクリプションが作成されることが示されます。

![\[DB イベント通知サブスクリプションのリスト\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/EventNotification-Create2.png)


## AWS CLI
<a name="USER_Events.Subscribing.CLI"></a>

RDS イベント通知を受信するには、AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/create-event-subscription.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-event-subscription.html) コマンドを使用します。以下の必須パラメータを含めます。
+ `--subscription-name`
+ `--sns-topic-arn`

**Example**  
Linux、macOS、Unix の場合:  

```
aws rds create-event-subscription \
    --subscription-name myeventsubscription \
    --sns-topic-arn arn:aws:sns:us-east-1:123456789012:myawsuser-RDS \
    --enabled
```
Windows の場合:  

```
aws rds create-event-subscription ^
    --subscription-name myeventsubscription ^
    --sns-topic-arn arn:aws:sns:us-east-1:123456789012:myawsuser-RDS ^
    --enabled
```

## API
<a name="USER_Events.Subscribing.API"></a>

Amazon RDS イベント通知を受信するには、Amazon RDS API 関数 ​[https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateEventSubscription.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateEventSubscription.html) を呼び出します。以下の必須パラメータを含めます。
+ `SubscriptionName`
+ `SnsTopicArn`

# Amazon RDS イベント通知タグと属性
<a name="USER_Events.TagsAttributesForFiltering"></a>

Amazon RDS が Amazon Simple Notification Service (SNS) または Amazon EventBridge にイベント通知を送信するとき、通知にはメッセージ属性とイベントタグが含まれます。RDS はメッセージと共にメッセージ属性を個別に送信しますが、イベントタグはメッセージの本文に含まれています。メッセージ属性と Amazon RDS タグを使用して、リソースにメタデータを追加します。これらのタグは、DB インスタンスに関する独自の表記で変更できます。Amazon RDS リソースのタグ付けの詳細については、「[ Amazon RDS リソースのタグ付け](USER_Tagging.md)」を参照してください。

デフォルトでは、Amazon SNS と Amazon EventBridge は、送信されたすべてのメッセージを受信します。SNS と EventBridge では、メッセージをフィルタリングして、メールやテキストメッセージ、または HTTP エンドポイントの呼び出しなど、希望する通信モードに通知を送信できます。

**注記**  
メールまたはテキストメッセージで送信される通知には、イベントタグはありません。

次の表では、トピックサブスクライバーに送信された RDS イベントのメッセージ属性を示します。


| Amazon RDS イベント属性 |  説明  | 
| --- | --- | 
| EventID |  RDS イベントメッセージの識別子。例えば、RDS-EVENT-0006。  | 
| リソース |  イベントを発行するリソースの ARN 識別子 (例: `arn:aws:rds:ap-southeast-2:123456789012:db:database-1`)。  | 

RDS タグは、サービスイベントの影響を受けたリソースに関するデータを提供します。通知が SNS または EventBridge に送信されると、RDS はメッセージ本文にタグの現在の状態を追加します。

SNS メッセージ属性のフィルター処理の詳細については、*Amazon Simple Notification Service デベロッパーガイド*の「[Amazon SNS メッセージフィルター処理](https://docs.aws.amazon.com/sns/latest/dg/sns-message-filtering.html)」を参照してください。

EventBridge のイベントタグのフィルター処理については、「*Amazon EventBridge ユーザーガイド*」の「[Amazon EventBridge のイベントパターンで使用する比較演算子](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns-content-based-filtering.html)」を参照してください。

SNS のペイロードベースのタグのフィルタリングについては、「[Introducing payload-based message filtering for Amazon SNS](https://aws.amazon.com/blogs/compute/introducing-payload-based-message-filtering-for-amazon-sns/)」を参照してください。

# Amazon RDS DB イベント通知サブスクリプションのリスト化
<a name="USER_Events.ListSubscription"></a>

現在の Amazon RDS イベント通知サブスクリプションのリストを表示できます。

## コンソール
<a name="USER_Events.ListSubscription.Console"></a>

**現在の Amazon RDS イベント通知サブスクリプションのリストを表示するには**

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

1.  ナビゲーションペインで、[**イベントサブスクリプション**] を選択します。[**イベントサブスクリプション**] ペインにイベント通知サブスクリプションが一覧表示されます。  
![\[DB イベント通知サブスクリプションのリスト\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/EventNotification-ListSubs.png)

   

## AWS CLI
<a name="USER_Events.ListSubscription.CLI"></a>

現在の Amazon RDS イベント通知サブスクリプションを一覧表示するには、AWS CLI の [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-event-subscriptions.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-event-subscriptions.html) コマンドを使用します。

**Example**  
次の例は、すべてのイベントサブスクリプションを表しています。  

```
aws rds describe-event-subscriptions
```
次の例は、`myfirsteventsubscription` を表しています。  

```
aws rds describe-event-subscriptions --subscription-name myfirsteventsubscription
```

## API
<a name="USER_Events.ListSubscription.API"></a>

Amazon RDS イベント通知に対する現在のサブスクリプションを一覧表示するには、Amazon RDS API の [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEventSubscriptions.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEventSubscriptions.html) アクションを呼び出します。

# Amazon RDS イベント通知サブスクリプションを変更する
<a name="USER_Events.Modifying"></a>

サブスクリプションを作成すると、サブスクリプション名、ソース識別子、カテゴリ、トピック ARN を変更できます。

## コンソール
<a name="USER_Events.Modifying.Console"></a>

**Amazon RDS イベント通知サブスクリプションを変更するには**

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

1.  ナビゲーションペインで、[**イベントサブスクリプション**] を選択します。

1.  [**イベントサブスクリプション**] ペインで、変更するサブスクリプションを選択し、[**編集**] をクリックします。

1.  [**ターゲット**] セクションまたは [**ソース**] セクションのいずれかでサブスクリプションを変更します。

1. [**編集**] を選択します。Amazon RDS コンソールでは、サブスクリプションが変更されることが示されます。  
![\[DB イベント通知サブスクリプションのリスト\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/EventNotification-Modify2.png)

   

## AWS CLI
<a name="USER_Events.Modifying.CLI"></a>

Amazon RDS イベント通知サブスクリプションを変更するには、AWS CLI の [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-event-subscription.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-event-subscription.html) コマンドを使用します。以下の必須パラメータを含めます。
+ `--subscription-name`

**Example**  
次のコードで `myeventsubscription` を有効にします。  
Linux、macOS、Unix の場合:  

```
aws rds modify-event-subscription \
    --subscription-name myeventsubscription \
    --enabled
```
Windows の場合:  

```
aws rds modify-event-subscription ^
    --subscription-name myeventsubscription ^
    --enabled
```

## API
<a name="USER_Events.Modifying.API"></a>

Amazon RDS イベントを変更するには、Amazon RDS API オペレーション [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyEventSubscription.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyEventSubscription.html) を呼び出します。以下の必須パラメータを含めます。
+ `SubscriptionName`

# Amazon RDS イベント通知サブスクリプションへのソース識別子の追加
<a name="USER_Events.AddingSource"></a>

既存のサブスクリプションにソース識別子 (イベントを生成する Amazon RDS ソース) を追加できます。

## コンソール
<a name="USER_Events.AddingSource.Console"></a>

Amazon RDS コンソールを使用し、サブスクリプションを変更するときに選択または選択解除することで、ソース識別子を簡単に追加または削除できます。詳細については、「[Amazon RDS イベント通知サブスクリプションを変更する](USER_Events.Modifying.md)」を参照してください。

## AWS CLI
<a name="USER_Events.AddingSource.CLI"></a>

Amazon RDS イベント通知サブスクリプションにソース識別子を追加するには、AWS CLI の [https://docs.aws.amazon.com/](https://docs.aws.amazon.com/) コマンドを使用します。以下の必須パラメータを含めます。
+ `--subscription-name`
+ `--source-identifier`

**Example**  
次の例は、ソース識別子 `mysqldb` を `myrdseventsubscription` サブスクリプションに追加します。  
Linux、macOS、Unix の場合:  

```
aws rds add-source-identifier-to-subscription \
    --subscription-name myrdseventsubscription \
    --source-identifier mysqldb
```
Windows の場合:  

```
aws rds add-source-identifier-to-subscription ^
    --subscription-name myrdseventsubscription ^
    --source-identifier mysqldb
```

## API
<a name="USER_Events.AddingSource.API"></a>

Amazon RDS イベント通知サブスクリプションにソース識別子を追加するには、Amazon RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_AddSourceIdentifierToSubscription.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_AddSourceIdentifierToSubscription.html) を呼び出します。以下の必須パラメータを含めます。
+ `SubscriptionName`
+ `SourceIdentifier`

# Amazon RDS イベント通知サブスクリプションからのソース識別子の削除
<a name="USER_Events.RemovingSource"></a>

そのソースのイベントの通知を今後は受け取らない場合、サブスクリプションからソース識別子 (イベントを生成する Amazon RDS ソース) を削除できます。

## コンソール
<a name="USER_Events.RemovingSource.Console"></a>

Amazon RDS コンソールを使用し、サブスクリプションを変更するときに選択または選択解除することで、ソース識別子を簡単に追加または削除できます。詳細については、「[Amazon RDS イベント通知サブスクリプションを変更する](USER_Events.Modifying.md)」を参照してください。

## AWS CLI
<a name="USER_Events.RemovingSource.CLI"></a>

Amazon RDS イベント通知サブスクリプションからソース識別子を削除するには、AWS CLI の [https://docs.aws.amazon.com/cli/latest/reference/rds/remove-source-identifier-from-subscription.html](https://docs.aws.amazon.com/cli/latest/reference/rds/remove-source-identifier-from-subscription.html) コマンドを使用します。以下の必須パラメータを含めます。
+ `--subscription-name`
+ `--source-identifier`

**Example**  
次の例は、ソース識別子 `mysqldb` を `myrdseventsubscription` サブスクリプションから削除します。  
Linux、macOS、Unix の場合:  

```
aws rds remove-source-identifier-from-subscription \
    --subscription-name myrdseventsubscription \
    --source-identifier mysqldb
```
Windows の場合:  

```
aws rds remove-source-identifier-from-subscription ^
    --subscription-name myrdseventsubscription ^
    --source-identifier mysqldb
```

## API
<a name="USER_Events.RemovingSource.API"></a>

Amazon RDS イベント通知サブスクリプションからソース識別子を削除するには、Amazon RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RemoveSourceIdentifierFromSubscription.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RemoveSourceIdentifierFromSubscription.html) コマンドを使用します。以下の必須パラメータを含めます。
+ `SubscriptionName`
+ `SourceIdentifier`

# Amazon RDS イベント通知カテゴリのリスト化
<a name="USER_Events.ListingCategories"></a>

リソースタイプのすべてのイベントはカテゴリに分類されます。使用できるカテゴリのリストを表示するには、次の手順を実行します。

## コンソール
<a name="USER_Events.ListingCategories.Console"></a>

イベント通知サブスクリプションを作成または変更するとき、Amazon RDS コンソールにイベントカテゴリが表示されます。詳細については、「[Amazon RDS イベント通知サブスクリプションを変更する](USER_Events.Modifying.md)」を参照してください。

![\[DB イベント通知カテゴリのリスト\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/EventNotification-Categories.png)




## AWS CLI
<a name="USER_Events.ListingCategories.CLI"></a>

Amazon RDS イベント通知カテゴリを一覧表示するには、AWS CLI の [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-event-categories.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-event-categories.html) コマンドを使用します。このコマンドには必須パラメータはありません。

**Example**  

```
aws rds describe-event-categories
```

## API
<a name="USER_Events.ListingCategories.API"></a>

Amazon RDS イベント通知カテゴリを一覧表示するには、Amazon RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEventCategories.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeEventCategories.html) コマンドを使用します。このコマンドには必須パラメータはありません。

# Amazon RDS イベント通知サブスクリプションの削除
<a name="USER_Events.Deleting"></a>

不要になったサブスクリプションは削除できます。トピックへのすべてのサブスクライバは、サブスクリプションにより指定されたイベント通知を受け取らなくなります。

## コンソール
<a name="USER_Events.Deleting.Console"></a>

**Amazon RDS イベント通知サブスクリプションを削除するには**

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

1.  ナビゲーションペインで、[**DB イベントサブスクリプション**] を選択します。

1.  [**My DB Event Subscriptions**] (自分の DB イベントサブスクリプション) ペインで、削除するサブスクリプションを選択します。

1. [**削除**] を選択します。

1. サブスクリプションを削除中であることが Amazon RDS コンソールに表示されます。  
![\[イベント通知サブスクリプションを削除する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/EventNotification-Delete.png)

   

## AWS CLI
<a name="USER_Events.Deleting.CLI"></a>

Amazon RDS イベント通知サブスクリプションを削除するには、AWS CLI の [https://docs.aws.amazon.com/cli/latest/reference/rds/delete-event-subscription.html](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-event-subscription.html) コマンドを使用します。以下の必須パラメータを含めます。
+ `--subscription-name`

**Example**  
以下の例では、サブスクリプション `myrdssubscription` を削除します。  

```
aws rds delete-event-subscription --subscription-name myrdssubscription
```

## API
<a name="USER_Events.Deleting.API"></a>

Amazon RDS イベント通知サブスクリプションを削除するには、RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteEventSubscription.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteEventSubscription.html) コマンドを使用します。以下の必須パラメータを含めます。
+ `SubscriptionName`

# Amazon RDS イベントでトリガーするルールの作成
<a name="rds-cloud-watch-events"></a>

Amazon EventBridge を使用すると、AWS のサービスを自動化して、アプリケーションの可用性の問題やリソースの変更などのシステムイベントに対応できます。

**Topics**
+ [Amazon RDS イベントを Amazon EventBridge に送信するルールの作成](#rds-cloudwatch-events.sending-to-cloudwatch-events)
+ [チュートリアル: Amazon EventBridge を使用して DB インスタンスの状態変化をログに記録する](#log-rds-instance-state)

## Amazon RDS イベントを Amazon EventBridge に送信するルールの作成
<a name="rds-cloudwatch-events.sending-to-cloudwatch-events"></a>

簡単なルールを記述して、対象となる Amazon RDS イベントと、イベントがルールに一致した場合に自動的に実行するアクションを指定できます。イベントを JSON 形式で受け取る AWS Lambda 関数や Amazon SNS トピックなど、さまざまなターゲットの設定が可能です。例えば、DB インスタンスを作成または削除するたびに Amazon EventBridge にイベントを送信するように Amazon RDS を設定できます。詳細については、[Amazon CloudWatch Events ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/)、および [Amazon EventBridge ユーザーガイド](https://docs.aws.amazon.com/eventbridge/latest/userguide/)を参照してください。

**RDS イベントでトリガーするルールを作成するには:**

1. CloudWatch コンソールの [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) を開いてください。

1. ナビゲーションペインの [**イベント**] で、[**ルール**] を選択します。

1. [**ルールの作成**] を選択します。

1. [**イベントソース**] で、以下の操作を実行します。

   1. [**Event Pattern**] を選択します。

   1. [**サービス名**] に [**リレーショナルデータベースサービス (RDS)**] を選択します。

   1. **[Event Type]** (イベントタイプ) として、イベントをトリガーする Amazon RDS リソースのタイプを選択します。例えば、内の DB インスタンスがイベントをトリガーする場合は、**[RDS DB Instance Event]** (RDS DB インスタンスイベント) を選択します。

1. [**ターゲット**] で [**ターゲットの追加**] を選択し、選択した種類のイベントが検出されたときに対応する AWS のサービスを選択します。

1. このセクションの他のフィールドに、このターゲットタイプに固有の情報を入力します (必要な場合)。

1. 多くのターゲットタイプで、EventBridge はターゲットにイベントを送信するためのアクセス許可が必要です。この場合、EventBridge は、以下をイベントで実行するために必要な IAM ロールを作成できます。
   + 自動的に IAM ロールを作成するには、**この特定のリソースに対して新しいロールを作成する** を選択します。
   + 以前に作成した IAM ロールを使用するには、[**既存のルールの使用**] を選択します。

1. オプションで、このルールに別のターゲットを追加するには、ステップ 5～7 を繰り返します。

1. [**詳細の設定**] を選択します。[**Rule definition**] で、ルールの名前と説明を入力します。

   ルール名はこのリージョン内で一意である必要があります。

1. [**Create rule**] を選択します。

詳細については、「Amazon CloudWatch ユーザーガイド」の「[イベントでトリガーする EventBridge ルールの作成](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-Rule.html)」を参照してください。**

## チュートリアル: Amazon EventBridge を使用して DB インスタンスの状態変化をログに記録する
<a name="log-rds-instance-state"></a>

このチュートリアルでは、Amazon RDS インスタンスの状態変化をログに記録する AWS Lambda 関数を作成します。次に、既存の RDS DB インスタンスの状態変化があったときに関数を実行するルールを作成します。このチュートリアルでは、一時的にシャットダウンできる小規模なテストインスタンスが実行されていることを前提としています。

**重要**  
実行中の本番 DB インスタンスに対して、このチュートリアルを実行しないでください。

**Topics**
+ [ステップ 1: AWS Lambda 関数を作成する](#rds-create-lambda-function)
+ [ステップ 2: ルールを作成する](#rds-create-rule)
+ [ステップ 3: ルールをテストする](#rds-test-rule)

### ステップ 1: AWS Lambda 関数を作成する
<a name="rds-create-lambda-function"></a>

状態変更イベントのログを記録する Lambda 関数を作成します。ルールを作成するときに、この関数を指定します。

**Lambda 関数を作成するには**

1. AWS Lambda コンソール ([https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)) を開きます。

1. Lambda を初めて使用する場合は、ウェルカムページを参照してください。[**今すぐ始める**] を選択します。それ以外の場合は、[**関数の作成**] を選択します。

1. [**Author from scratch**] を選択します。

1. [**関数の作成**] ページで、次の操作を実行します。

   1. Lambda 関数の名前と説明を入力します。例えば、関数名を **RDSInstanceStateChange** とします。

   1. **[Runtime]** (ランタイム) では、**[Node.js 16x]** を選択します。

   1. **[Architecture]** (アーキテクチャ) では、**[x86\$164]** を選択します。

   1. **[Execution role]** (実行ロール) では、次のいずれかを実行します。
      + [**基本的な Lambda アクセス権限で新しいロールを作成**] を選択します。
      + **[Existing role]** (既存のロール) では、**[Use an existing role]** (既存のロールを使用する) を選択します。使用するロールを選択します。

   1. **[Create function]** (関数の作成) を選択します。

1. [**RDSInstanceStateChange**] ページで、次の操作を行います。

   1. [**コードソース**] で、[**index.js**] を選択します。

   1. で、[**index.js**] ウィンドウで、既存のコードを削除します。

   1. 次のコードを入力します。

      ```
      console.log('Loading function');
      
      exports.handler = async (event, context) => {
          console.log('Received event:', JSON.stringify(event));
      };
      ```

   1. [**デプロイ**] を選択します。

### ステップ 2: ルールを作成する
<a name="rds-create-rule"></a>

Amazon RDS インスタンスを起動するたびに Lambda 関数を実行するルールを作成します。

**EventBridge ルールを作成するには**

1. Amazon EventBridge コンソール ([https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)) を開きます。

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

1. **[ルールの作成]** を選択します。

1. ルールの名前と説明を入力します。例えば、「**RDSInstanceStateChangeRule**」と入力します。

1. **[Rule with an event pattern]** (イベントパターンを持つルール) を選択してから、**[Next]** (次へ) を選択します。

1. **[イベントソース]** で、**[AWS イベントまたは EventBridge パートナーイベント]** を選択してください。

1. 下にスクロールして、**[Event pattern]** (イベントパターン) セクションを展開します。

1. **イベントソース** で **AWS のサービス** を選択してください。

1. **[AWS サービス]** では **[リレーショナルデータベースサービス (RDS)]** を選択します。

1. [**イベントタイプ**] で、[**RDS DB インスタンスイベント**] を選択します。

1. デフォルトのイベントパターンのままにします。次に、**[次へ]** を選択します。

1. **[ターゲットタイプ]** では、**[AWS サービス]** を選択します。

1. **[Select a target]** (ターゲットを選択) では、**[Lambda function]** (Lambda 関数) を選択します。

1. **[Function]** (関数) では、作成した Lambda 関数を選択します。次に、**[次へ]** を選択します。

1. **[Configure Tags]** (タグの設定) で、**[Next]** (次へ) を選択します。

1. ルール内の手順を確認します。次に、**[Create rule]** (ルールの作成) を選択します。

### ステップ 3: ルールをテストする
<a name="rds-test-rule"></a>

ルールをテストするには、RDS DB インスタンスをシャットダウンします。インスタンスのシャットダウンの数分後に、Lambda 関数が呼び出されたことが確認できます。

**DB インスタンスを停止してルールをテストするには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. RDS DB インスタンスを停止します。

1. Amazon EventBridge コンソール ([https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)) を開きます。

1. ナビゲーションペインで、[**ルール**] を選択し、作成したルールの名前を選択します。

1. **[ルールの詳細]** で、**[モニタリング]** を選択します。

   Amazon CloudWatch コンソールにリダイレクトされます。リダイレクトされない場合は、**[CloudWatch でメトリクスを表示]** をクリックします。

1. [**すべてのメトリクス**] で、作成したルールの名前を選択します。

   グラフには、ルールが呼び出されたことが示されます。

1. ナビゲーションペインで、[**Log groups**] (ロググループ) を選択します。

1. Lambda 関数 (**/aws/lambda/*function-name***) のロググループの名前を選択します。

1. 起動したインスタンスの関数によって提供されるデータを表示するログのストリーミング名を選択します。次のような受信イベントが表示されます。

   ```
   {
       "version": "0",
       "id": "12a345b6-78c9-01d2-34e5-123f4ghi5j6k",
       "detail-type": "RDS DB Instance Event",
       "source": "aws.rds",
       "account": "111111111111",
       "time": "2021-03-19T19:34:09Z",
       "region": "us-east-1",
       "resources": [
           "arn:aws:rds:us-east-1:111111111111:db:testdb"
       ],
       "detail": {
           "EventCategories": [
               "notification"
           ],
           "SourceType": "DB_INSTANCE",
           "SourceArn": "arn:aws:rds:us-east-1:111111111111:db:testdb",
           "Date": "2021-03-19T19:34:09.293Z",
           "Message": "DB instance stopped",
           "SourceIdentifier": "testdb",
           "EventID": "RDS-EVENT-0087"
       }
   }
   ```

   JSON 形式の RDS イベントの例については、「[Amazon RDS のイベントの概要](working-with-events.md#rds-cloudwatch-events.sample)」を参照してください。

1. (オプション) 終了したら、Amazon RDS コンソールを開き、停止したインスタンスをスタートできます。

# Amazon RDS イベントカテゴリとイベントメッセージ
<a name="USER_Events.Messages"></a>

Amazon RDS では、多数のイベントがカテゴリ分けされて生成され、これらには Amazon RDS コンソール、AWS CLI、または API を使用してのサブスクライブが可能です。

**Topics**
+ [DB クラスターイベント](#USER_Events.Messages.cluster)
+ [DB クラスタースナップショットイベント](#USER_Events.Messages.cluster-snapshot)
+ [DB インスタンスイベント](#USER_Events.Messages.instance)
+ [DB パラメータグループイベント](#USER_Events.Messages.parameter-group)
+ [DB セキュリティグループイベント](#USER_Events.Messages.security-group)
+ [DB スナップショットイベント](#USER_Events.Messages.snapshot)
+ [RDS Proxy イベント](#USER_Events.Messages.rds-proxy)
+ [ブルー/グリーンデプロイイベント](#USER_Events.Messages.BlueGreenDeployments)
+ [カスタムエンジンバージョンイベント](#USER_Events.Messages.CEV)

## DB クラスターイベント
<a name="USER_Events.Messages.cluster"></a>

次の表は、DB クラスターがソースタイプである場合のイベントカテゴリとイベントのリストを示します。

マルチ AZ DB クラスターデプロイの詳細については、「[Amazon RDS のマルチ AZ DB クラスターデプロイ](multi-az-db-clusters-concepts.md)」を参照してください。


|  カテゴリ  | RDS イベント ID |  メッセージ  |  注意事項  | 
| --- | --- | --- | --- | 
|  設定変更  | RDS-EVENT-0016 |  マスター認証情報をリセットします。  | なし | 
| 作成 | RDS-EVENT-0170 |  DB クラスターが作成されました。  |  なし  | 
|  フェイルオーバー  | RDS-EVENT-0069 |  クラスターフェイルオーバーが失敗しました。クラスターインスタンスの状態を確認して、もう一度試してください。  |  なし  | 
|  フェイルオーバー  | RDS-EVENT-0070 |  以前のプライマリを再度プロモートします: *name*。  |  なし  | 
|  フェイルオーバー  | RDS-EVENT-0071 |  インスタンスへのフェイルオーバーが完了しました: *name*。  |  なし  | 
|  フェイルオーバー  | RDS-EVENT-0072 |  DB インスタンスへの同じ AZ フェイルオーバーを開始しました: *name*。  |  なし  | 
|  フェイルオーバー  | RDS-EVENT-0073 |  DB インスタンスへのクロスAZ フェイルオーバーを開始しました: *name*。  |  なし  | 
| 失敗 | RDS-EVENT-0354 |  リソースに互換性がないため、DB クラスターを作成できません。*メッセージ*。  |  *メッセージ*には、障害に関する詳細が含まれます。  | 
| 失敗 | RDS-EVENT-0355 |  リソース制限が不十分なため、DB クラスターを作成できません。*メッセージ*。  |  *メッセージ*には、障害に関する詳細が含まれます。  | 
|  メンテナンス  | RDS-EVENT-0156 |  DB クラスターで DB エンジンのマイナーバージョンをアップグレードできます。  |  なし  | 
|  メンテナンス  | RDS-EVENT-0173 |  データベースクラスターエンジンのバージョンがアップグレードされました。  | DB クラスターのパッチ適用が完了しました。 | 
|  メンテナンス  | RDS-EVENT-0174 |  データベースクラスターはアップグレードできない状態です。  | なし | 
|  メンテナンス  | RDS-EVENT-0176 |  データベースクラスターエンジンのメジャーバージョンがアップグレードされました。  | なし | 
|  メンテナンス  | RDS-EVENT-0177 |  データベースクラスターのアップグレードが進行中です。  | なし | 
|  メンテナンス  | RDS-EVENT-0286 |  データベースクラスターエンジン *version\$1number* バージョンのアップグレードが開始しました。クラスターはオンラインのままです。  | なし | 
|  メンテナンス  | RDS-EVENT-0287 |  オペレーティングシステムのアップグレード要件が検出されました。  | なし | 
|  メンテナンス  | RDS-EVENT-0288 |  クラスターオペレーティングシステムのアップグレードが開始されます。  | なし | 
|  メンテナンス  | RDS-EVENT-0289 |  クラスターオペレーティングシステムのアップグレードが完了しました。  | なし | 
|  メンテナンス  | RDS-EVENT-0290 |  データベースクラスターにパッチが適用されました: ソースバージョン *version\$1number* => *new\$1version\$1number*。  | なし | 
|  メンテナンス  | RDS-EVENT-0410 |  データベースクラスターエンジンのバージョンアップグレードの事前チェックが開始されました。  | なし | 
|  メンテナンス  | RDS-EVENT-0412 |  データベースクラスターエンジンのバージョンアップグレードの事前チェックが失敗またはタイムアウトしました。  | なし | 
|  メンテナンス  | RDS-EVENT-0413 |  DB クラスターのアップグレード前のタスクが進行中です。  | なし | 
|  メンテナンス  | RDS-EVENT-0414 |  DB クラスターのアップグレード後のタスクが進行中です。  | なし | 
|  メンテナンス  | RDS-EVENT-0417 |  データベースクラスターエンジンのバージョンのアップグレードが開始しました。  | なし | 
|  通知  | RDS-EVENT-0172 |  クラスターの名前が *name* から *name* に変更されました。  |  なし  | 
|  リードレプリカ  | RDS-EVENT-0411 |  データベースクラスターエンジンのバージョンアップグレードの事前チェックが終了しました。  | なし | 

## DB クラスタースナップショットイベント
<a name="USER_Events.Messages.cluster-snapshot"></a>

次の表は、DB クラスターのスナップショットがソースタイプである場合のイベントカテゴリとイベントのリストを示しています。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_Events.Messages.html)

## DB インスタンスイベント
<a name="USER_Events.Messages.instance"></a>

次の表は、DB インスタンスがソースタイプである場合のイベントカテゴリとイベントを示しています。


|  Category  | RDS イベント ID |  メッセージ  |  注意事項  | 
| --- | --- | --- | --- | 
|  可用性  | RDS-EVENT-0004 |  DB インスタンスがシャットダウンしました。  | なし | 
|  高可用性  | RDS-EVENT-0006 |  インスタンスが再起動しました。  | なし | 
|  可用性  | RDS-EVENT-0022 |  mysql の再起動中にエラーが発生しました: *message*。  | MySQL の再起動中にエラーが発生しました。 | 
|  可用性  | RDS-EVENT-0221 |  DB インスタンスがストレージフルのしきい値に達し、データベースがシャットダウンされました。この問題に対処するために、割り当てられたストレージを増やすことができます。  | なし | 
|  可用性  | RDS-EVENT-0222 |  DB インスタンス *name* の空きストレージ容量が、割り当てられたストレージの*percentage* % と低くなっています [割り当てられたストレージ: *amount*、空きストレージ: *amount*]。空きストレージが *amount* より低い場合、データベースは破損を防ぐためにシャットダウンされます。この問題に対処するために、割り当てられたストレージを増やすことができます。  | DB インスタンスが割り当てられたストレージの 90% 以上を消費する場合にのみ、RDS for MySQL に適用されます。Free Storage Space メトリクスを使用して、DB インスタンスのストレージスペースをモニタリングします。詳細については、「[Amazon RDS DB インスタンスストレージ](CHAP_Storage.md)」を参照してください。 | 
|  可用性  | RDS-EVENT-0330 |  専用のトランザクションログボリュームの空きストレージ容量が DB インスタンス *name* に対して少なすぎます。ログボリュームの空きストレージは、割り当て済みストレージの *percentage* です。[割り当て済みストレージ: *amount*、空きストレージ: *amount*] 空きストレージが *amount* より少ない場合、データベースは破損を防ぐためにシャットダウンされます。この問題を解決するには、専用のトランザクションログボリュームを無効にすることができます。  |  詳細については、「[専用ログボリューム (DLV)](CHAP_Storage.md#CHAP_Storage.dlv)」を参照してください。  | 
|  可用性  | RDS-EVENT-0331 |  専用のトランザクションログボリュームの空きストレージ容量が DB インスタンス *name* に対して少なすぎます。ログボリュームの空きストレージは、プロビジョニング済みストレージの *percentage* です。[プロビジョニング済みストレージ: *amount*、空きストレージ: *amount*] この問題を解決するには、専用のトランザクションログボリュームを無効にすることができます。  |  詳細については、「[専用ログボリューム (DLV)](CHAP_Storage.md#CHAP_Storage.dlv)」を参照してください。  | 
|  可用性  | RDS-EVENT-0396 |  Amazon RDS は、内部ユーザーパスワードのローテーション後に、このインスタンスの次のメンテナンスウィンドウでこのリードレプリカの再起動をスケジュールしました。  |  なし  | 
| 可用性 | RDS-EVENT-0419 | Amazon RDS がデータベースインスタンス *name* の KMS 暗号化キーにアクセスできませんでした。このデータベースはアクセスできない状態になります。詳細については、Amazon RDS ドキュメントのトラブルシューティングセクションを参照してください。 | なし | 
|  バックアップ  | RDS-EVENT-0001 |  DB インスタンスをバックアップする  | なし | 
|  バックアップ  | RDS-EVENT-0002 |  DB インスタンスのバックアップが完了しました。  | なし | 
|  バックアップ  | RDS-EVENT-0086 |  オプショングループ *name* をデータベースインスタンス *name* に関連付けることができませんでした。DB インスタンスクラスおよび設定でオプショングループ *name* がサポートされていることを確認してください。その場合は、オプショングループの設定をすべて確認してから再試行してください。  |  詳細については、「[オプショングループを使用する](USER_WorkingWithOptionGroups.md)」を参照してください。 | 
|  設定変更  | RDS-EVENT-0011 |  DBParameterGroup の*名前*を使用するように更新されました。  | なし | 
|  設定変更  | RDS-EVENT-0012 |  変更をデータベースインスタンスクラスに適用しています。  | なし | 
|  設定変更  | RDS-EVENT-0014 |  インスタンスクラスへの変更適用が終了しました。  | なし | 
|  設定変更  | RDS-EVENT-0016 |  マスター認証情報をリセットします。  | なし | 
|  設定変更  | RDS-EVENT-0017 |  割り当てられたストレージへの変更適用が終了しました。  | なし | 
|  設定変更  | RDS-EVENT-0018 |  割り当てられたストレージに変更を適用します。  | なし | 
|  設定変更  | RDS-EVENT-0024 |  マルチ AZ DB インスタンスに変換するために、変更を適用します。  | なし | 
|  設定変更  | RDS-EVENT-0025 |  マルチ AZ DB インスタンスに変換するための変更適用が終了しました。  | なし | 
|  設定変更  | RDS-EVENT-0028 |  自動バックアップを無効化しました。  | なし | 
|  設定変更  | RDS-EVENT-0029 |  標準 (シングル AZ) DB インスタンスに変換するための変更適用が終了しました。  | なし | 
|  設定変更  | RDS-EVENT-0030 |  標準 (シングル AZ) DB インスタンスに変換するために、変更を適用します。  | なし | 
|  設定変更  | RDS-EVENT-0032 |  自動バックアップを有効化しました。  | なし | 
|  設定変更  | RDS-EVENT-0033 |  マスターユーザー名に一致するユーザーが *number* 人います。特定のホストに関連付けられていないユーザーのみがリセットされます。  | なし | 
|  設定変更  | RDS-EVENT-0067 |  パスワードをリセットできません。エラー情報: *message*。  | なし | 
|  設定変更  | RDS-EVENT-0078 |  モニタリング間隔が *number* に変更されました。  |  拡張モニタリングの設定が変更されました。 | 
|  設定変更  | RDS-EVENT-0092 |  DB パラメータグループの更新が完了しました。  | なし | 
|  設定変更  | RDS-EVENT-0217 |  オートスケーリングによってスタートされた変更を割り当てられたストレージに適用します。  | なし | 
|  設定変更  | RDS-EVENT-0218 |  割り当てられたストレージへのオートスケーリングによってスタートされた変更の適用が終了しました。  | なし | 
|  設定変更  | RDS-EVENT-0295 |  ストレージ設定のアップグレードが開始されました。  | なし | 
|  設定変更  | RDS-EVENT-0296 |  ストレージ設定のアップグレードが完了しました。  | なし | 
|  設定変更  | RDS-EVENT-0332 |  専用ログボリュームは無効になっています。  |  詳細については、「[専用ログボリューム (DLV)](CHAP_Storage.md#CHAP_Storage.dlv)」を参照してください。  | 
|  設定変更  | RDS-EVENT-0333 |  専用ログボリュームの無効化が開始されました。  |  詳細については、「[専用ログボリューム (DLV)](CHAP_Storage.md#CHAP_Storage.dlv)」を参照してください。  | 
|  設定変更  | RDS-EVENT-0334 |  専用ログボリュームの有効化が開始されました。  |  詳細については、「[専用ログボリューム (DLV)](CHAP_Storage.md#CHAP_Storage.dlv)」を参照してください。  | 
|  設定変更  | RDS-EVENT-0335 |  専用ログボリュームが有効になっています。  |  詳細については、「[専用ログボリューム (DLV)](CHAP_Storage.md#CHAP_Storage.dlv)」を参照してください。  | 
|  設定変更  | RDS-EVENT-0383 |  *エンジンバージョン*は memcached プラグインをサポートしていません。RDS は DB インスタンスのアップグレードを続行し、このプラグインを削除します。  |  MySQL 8.3.0 以降、memcached プラグインはサポートされていません。詳細については、「[MySQL 8.3.0 での変更点 (2024-01-16、イノベーションリリース)](https://dev.mysql.com/doc/relnotes/mysql/8.3/en/news-8-3-0.html)」を参照してください。  | 
|  作成  | RDS-EVENT-0005 |  DB インスタンスが作成されました。  | なし | 
|  削除  | RDS-EVENT-0003 |  DB インスタンスが削除されました。  | なし | 
|  フェイルオーバー  | RDS-EVENT-0013 |  マルチ AZ インスタンスのフェイルオーバーが開始されました。  | マルチ AZ フェイルオーバーがスタートされました。このフェイルオーバーにより、スタンバイ DB インスタンスの昇格が行われました。 | 
|  フェイルオーバー  | RDS-EVENT-0015 |  マルチ AZ フェイルオーバーからスタンバイへのマルチ AZ フェイルオーバーが完了しました。  | マルチ AZ フェイルオーバーが完了しました。このフェイルオーバーにより、スタンバイ DB インスタンスの昇格が行われました。DNS によって新しいプライマリ DB インスタンスへの転送が行われるまで数分かかることがあります。 | 
|  フェイルオーバー  | RDS-EVENT-0034 |  データベースインスタンスでフェイルオーバーを実行できません。これは、データベースインスタンスでフェイルオーバーが最近発生したためです。  | Amazon RDS はリクエストされたフェイルオーバーを実行できません。これは、DB インスタンスでフェイルオーバーが最近発生したためです。 | 
|  フェイルオーバー  | RDS-EVENT-0049 | マルチ AZ インスタンスのフェイルオーバーが完了しました。 | なし | 
|  フェイルオーバー  | RDS-EVENT-0050 |  マルチ AZ インスタンスのアクティベーションが開始されました。  | マルチ AZ アクティベーションが、正常な DB インスタンスの復旧後に開始されました。このイベントは、Amazon RDS がプライマリ DB インスタンスを以前のプライマリ DB インスタンスと同じ AZ に昇格させる場合に発生します。 | 
|  フェイルオーバー  | RDS-EVENT-0051 |  マルチ AZ インスタンスのアクティベーションが完了しました。  | マルチ AZ アクティベーションが完了しました。データベースがアクセス可能になりました。 | 
|  フェイルオーバー  | RDS-EVENT-0065 |  部分的なフェイルオーバーから回復しました。  | なし | 
|  失敗  | RDS-EVENT-0031 |  DB インスタンスが *name* 状態になりました。RDS は、ポイントインタイム復元を開始することを推奨します。  | DB インスタンスは、互換性のない設定または基本的なストレージの問題により失敗しました。DB インスタンスのポイントインタイムの復元をスタートします。 | 
|  失敗  | RDS-EVENT-0035 |  データベースインスタンスが *state* になりました。*message*。  | DB インスタンスに無効なパラメータがあります。例えば、メモリ関連のパラメータがこのインスタンスクラスには高すぎる値に設定されていて、DB インスタンスをスタートできなかった場合、メモリのパラメータを変更して、DB インスタンスを再起動してください。 | 
|  失敗  | RDS-EVENT-0036 |  データベースインスタンスが *state* です。*message*。  | DB インスタンスが互換性のないネットワーク上にあります。指定したサブネット ID の一部は無効であるか、存在しません。 | 
|  失敗  | RDS-EVENT-0058 |  Statspack のインストールに失敗しました。*message*。  | Oracle Statspack ユーザーアカウント `PERFSTAT` の作成中にエラーが発生しました。`STATSPACK` オプションを追加する前に、アカウントを削除してください。 | 
|  失敗  | RDS-EVENT-0079 |  Amazon RDS は拡張モニタリング用の認証情報を作成できなかったため、この機能は無効になっています。これは、アカウントに rds-monitoring-role が存在せず、正しく設定されていないことが原因と考えられます。詳細については、Amazon RDS ドキュメントのトラブルシューティングセクションを参照してください。  |  拡張モニタリングは、拡張モニタリング IAM ロールを使用してのみ有効にすることができます。IAM ロールの作成の詳細については、「[Amazon RDS 拡張モニタリング用の IAM ロールを作成するには](USER_Monitoring.OS.Enabling.md#USER_Monitoring.OS.IAMRole)」を参照してください。  | 
|  失敗  | RDS-EVENT-0080 |  Amazon RDS がインスタンス:*name* に拡張モニタリングを設定できなかったため、この機能は無効になっています。これは、アカウントに rds-monitoring-role が存在せず、正しく設定されていないことが原因と考えられます。詳細については、Amazon RDS ドキュメントのトラブルシューティングセクションを参照してください。  |  拡張モニタリングは、設定変更中のエラーのため無効になりました。拡張モニタリング IAM ロールが正しく設定されていない可能性があります。拡張モニタリング IAM ロールの作成については、「[Amazon RDS 拡張モニタリング用の IAM ロールを作成するには](USER_Monitoring.OS.Enabling.md#USER_Monitoring.OS.IAMRole)」を参照してください。  | 
|  失敗  | RDS-EVENT-0081 |  Amazon RDS は *name* オプションの認証情報を作成できませんでした。これは、アカウントで *name* IAM ロールが正しく設定されていないことが原因です。詳細については、Amazon RDS ドキュメントのトラブルシューティングセクションを参照してください。  |  Amazon S3 バケットにアクセスして SQL Server のネイティブバックアップと復元を行うための IAM ロールが正しく設定されていません。詳細については、「[ネイティブバックアップおよび復元のセットアップ](SQLServer.Procedural.Importing.Native.Enabling.md)」を参照してください。  | 
|  失敗  | RDS-EVENT-0165 |  RDS Custom DB インスタンスは、サポート範囲外にあります。  |  RDS Custom DB インスタンスを`unsupported-configuration`状態にする設定上の問題は、お客様の責任で解決していただく必要があります。問題がAWSインフラストラクチャであれば、コンソールやAWS CLIを使用して修正できます。OSまたはデータベースの設定に問題がある場合は、ホストにログインして修正できます。詳細については、「[RDS Custom サポート範囲](custom-concept.md#custom-troubleshooting.support-perimeter)」を参照してください。 | 
|  失敗  | RDS-EVENT-0188 |  DB インスタンスはアップグレードできない状態です。*message*。  |  データディクショナリに関連する非互換性があるため、Amazon RDS は MySQL DB インスタンスをアップグレードできませんでした。DB インスタンスは、バージョン 8.0 へのアップグレードが失敗したために MySQL バージョン 5.7 にロールバックされたか、バージョン 8.4 へのアップグレードが失敗したために MySQL バージョン 8.0 にロールバックされました。詳細については、「[アップグレードに失敗した後のロールバック](USER_UpgradeDBInstance.MySQL.Major.md#USER_UpgradeDBInstance.MySQL.Major.RollbackAfterFailure)」を参照してください。  | 
|  失敗  | RDS-EVENT-0219 |  DB インスタンスは無効状態です。操作は必要ありません。オートスケーリングは後で再試行されます。  | なし | 
|  失敗  | RDS-EVENT-0220 |  DB インスタンスは、以前のスケールストレージオペレーションのクーリングオフ期間中です。DB インスタンスを最適化しています。これには少なくとも 6 時間かかります。操作は必要ありません。オートスケーリングは、クーリングオフ期間後に再試行されます。  | なし | 
|  失敗  | RDS-EVENT-0223 |  ストレージのオートスケーリングは、次の理由でストレージをスケーリングできません: *reason*。  | なし | 
|  失敗  | RDS-EVENT-0224 |  ストレージのオートスケーリングにより、保留中のスケールストレージタスクの最大ストレージしきい値到達または超過がトリガーされました。最大ストレージしきい値を増やします。  | なし | 
|  失敗  | RDS-EVENT-0237 |  DB インスタンスのストレージタイプが、アベイラビリティーゾーンで現在使用できないタイプです。オートスケーリングは後で再試行されます。  | なし | 
| 失敗 | RDS-EVENT-0254 |  このカスタマーアカウントの基礎となるストレージクォータが制限を超えました。インスタンスでスケーリングを実行できるように、許容されるストレージクォータを増やしてください。  | なし | 
|  失敗  |  RDS-EVENT-0278  |  DB インスタンスを作成できませんでした。*メッセージ*  |  *メッセージ*には、障害に関する詳細が含まれます。  | 
|  失敗  |  RDS-EVENT-0279  |  RDS カスタムリードレプリカのプロモーションが失敗しました。*メッセージ*  |  *メッセージ*には、障害に関する詳細が含まれます。  | 
|  失敗  |  RDS-EVENT-0280  |  事前チェックが失敗したため、RDS Custom は DB インスタンスをアップグレードできませんでした。*メッセージ*  |  *メッセージ*には、障害に関する詳細が含まれます。  | 
|  失敗  |  RDS-EVENT-0281  |  事前チェックが失敗したため、RDS Custom は DB インスタンスを修正できませんでした。*メッセージ*  |  *メッセージ*には、障害に関する詳細が含まれます。  | 
|  失敗  |  RDS-EVENT-0282  |  Elastic IP 権限が正しくないため、RDS Custom は DB インスタンスを修正できませんでした。Elastic IP アドレスに `AWSRDSCustom` がタグ付けされていることを確認してください。  |  なし  | 
|  失敗  |  RDS-EVENT-0283  |  アカウントの Elastic IP の上限に達したため、RDS Custom は DB インスタンスを修正できませんでした。未使用の Elastic IP をリリースするか、Elastic IP アドレス制限のクォータ増加をリクエストしてください。  |  なし  | 
|  失敗  |  RDS-EVENT-0284  |  事前チェックが失敗したため、RDS Custom はインスタンスを高可用性に変換できませんでした。*メッセージ*  |  *メッセージ*には、障害に関する詳細が含まれます。  | 
|  失敗  |  RDS-EVENT-0285  |  *メッセージ*が原因で RDS Custom は DB インスタンスの最終スナップショットを作成できませんでした。  |  *メッセージ*には、障害に関する詳細が含まれます。  | 
|  失敗  |  RDS-EVENT-0421  |  RDS Custom が DB インスタンスをマルチ AZ 配置に変換できませんでした: *message*。インスタンスはシングル AZ デプロイのままになります。RDS Custom for Oracle のマルチ AZ 配置については、RDS ユーザーガイドを参照してください。  |  *メッセージ*には、障害に関する詳細が含まれます。  | 
|  失敗  | RDS-EVENT-0306 |  ストレージ設定のアップグレードに失敗しました。アップグレードを再試行してください。  | なし | 
|  失敗  | RDS-EVENT-0315 |  互換性のないネットワークデータベース *name* を、「使用可能」ステータスへ移動できません:*メッセージ*  |  データベースネットワーク設定が無効です。データベースを互換性のないネットワークから使用可能なネットワークに移動できませんでした。  | 
| 失敗 | RDS-EVENT-0328 |  ホストをドメインに結合できませんでした。インスタンス *instancename* のドメインメンバーシップステータスが Failed に設定されました。  | なし | 
| 失敗 | RDS-EVENT-0329 |  ホストをドメインに結合できませんでした。ドメイン結合プロセス中に、Microsoft Windows はエラーコード *message* を返しました。ネットワークとアクセス許可の設定を確認し、ドメイン参加を再試行する `modify-db-instance` リクエストを発行します。  | セルフマネージド Active Directory を使用する場合は、「[セルフマネージド Active Directory のトラブルシューティング](USER_SQLServer_SelfManagedActiveDirectory.TroubleshootingSelfManagedActiveDirectory.md)」を参照してください。 | 
| 失敗 | RDS-EVENT-0353 |  リソース制限が不十分なため、DB インスタンスを作成できません。*メッセージ*。  |  *メッセージ*には、障害に関する詳細が含まれます。  | 
| 失敗 | RDS-EVENT-0356 |  RDS はドメインの Kerberos エンドポイントを設定できませんでした。これにより、DB インスタンスの Kerberos 認証が妨げられる可能性があります。DB インスタンスとドメインコントローラー間のネットワーク設定を確認してください。  | なし | 
| 失敗 | RDS-EVENT-0418 | Amazon RDS がデータベースインスタンス *name* の KMS 暗号化キーにアクセスできません。キーが無効になっているか、Amazon RDS がキーにアクセスできないことが原因と考えられます。この状態が続くと、データベースはアクセスできない状態になります。詳細については、Amazon RDS ドキュメントのトラブルシューティングセクションを参照してください。 | なし | 
| 失敗 | RDS-EVENT-0420 | Amazon RDS がデータベースインスタンス *name* の KMS 暗号化キーに正常にアクセスできるようになりました。 | なし | 
|  ストレージの減少  | RDS-EVENT-0007 |  割り当てられたストレージが使い果たされました。解決するには追加のストレージを割り当ててください。  |  DB インスタンスに割り当てられたストレージが消費されました。この問題を解決するには、DB インスタンスに追加のストレージを割り当てます。詳細については、「[RDS に関数するよくある質問](https://aws.amazon.com/rds/faqs)」を参照してください。[**空きストレージ容量**] メトリクスを使用して、DB インスタンスのストレージ容量をモニタリングできます。  | 
|  ストレージの減少  | RDS-EVENT-0089 |  DB インスタンス: *name* の空きストレージ容量が、プロビジョニングされたストレージ [プロビジョニングされたストレージ: *size*、空きストレージ: *size*] が *percentage* と残りわずかです。この問題に対処するために、プロビジョニングされたストレージを増やす必要がある場合があります。  |  DB インスタンスは割り当てられたストレージの 90% 以上を使用しています。[**Free Storage Space**] メトリクスを使用して、DB インスタンスのストレージ容量をモニタリングできます。  | 
|  ストレージの減少  | RDS-EVENT-0227 |  Aurora クラスターのストレージは *amount* テラバイトしか残っておらず、非常に危険です。クラスターのストレージ負荷を軽減するための対策を講じてください。  |  Aurora ストレージサブシステムの容量が不足しています。  | 
|  メンテナンス  | RDS-EVENT-0026 |  DB インスタンスへオフラインパッチを適用しています。  |  DB インスタンスのオフラインメンテナンスが実行中です。現在、DB インスタンスは利用できません。  | 
|  メンテナンス  | RDS-EVENT-0027 |  DB インスタンスへのオフラインパッチ適用が終了しました。  |  DB インスタンスのオフラインメンテナンスが完了しました。現在、DB インスタンスは利用できます。  | 
|  メンテナンス  | RDS-EVENT-0047 |  データベースインスタンスにパッチが適用されました。  | なし | 
|  メンテナンス  | RDS-EVENT-0155 |  DB インスタンスで DB エンジンのマイナーバージョンをアップグレードできます。  | なし | 
|  メンテナンス  | RDS-EVENT-0178 |  データベースインスタンスのアップグレードが進行中です。  | なし | 
|  メンテナンス  | RDS-EVENT-0264 |  DB エンジンバージョンアップグレードの事前チェックが開始されました。  | なし | 
|  メンテナンス  | RDS-EVENT-0265 |  DB エンジンバージョンアップグレードの事前チェックが終了しました。  | なし | 
|  メンテナンス  | RDS-EVENT-0266 |  DB インスタンスのダウンタイムが開始されました。  | なし | 
|  メンテナンス  | RDS-EVENT-0267 |  エンジンバージョンのアップグレードが開始されました。  | なし | 
|  メンテナンス  | RDS-EVENT-0268 |  エンジンバージョンのアップグレードが完了しました。 | なし | 
|  メンテナンス  | RDS-EVENT-0269 |  アップグレード後のタスクが進行中です。 | なし | 
|  メンテナンス  | RDS-EVENT-0270 |  DB エンジンバージョンアップグレードが失敗しました。エンジンバージョンアップグレードのロールバックが成功しました。 | なし | 
|  メンテナンス  | RDS-EVENT-0398 |  プライマリ DB インスタンスで DB エンジンのバージョンアップグレードが終了するのを待機しています。 | エンジンバージョンのメジャーアップグレード中にリードレプリカで出力されます。 | 
|  メンテナンス  | RDS-EVENT-0399 |  リードレプリカで DB エンジンのバージョンアップグレードが終了するのを待機しています。 | エンジンバージョンのメジャーアップグレード中にソース DB エンジンで出力されます。 | 
|  メンテナンス  | RDS-EVENT-0422 |  保留中のメンテナンスアクションにより、RDS は DB インスタンス *name* のホストを置き換えます。 | なし | 
|  メンテナンス、障害  | RDS-EVENT-0195 |  *メッセージ*  |  Oracle タイムゾーンファイルのアップデートに失敗しました。詳細については、「[Oracle のタイムゾーンファイルの自動アップグレード](Appendix.Oracle.Options.Timezone-file-autoupgrade.md)」を参照してください。  | 
|  メンテナンス、通知  | RDS-EVENT-0191 |  タイムゾーンファイルの新しいバージョンにアップデートできます。  |  RDS for Oracle DB エンジンを更新する際に、タイムゾーンファイルのアップグレードを選択せず、データベースでインスタンスの使用可能な最新 DST タイムゾーンファイルを使用していない場合は、Amazon RDS がこのイベントを生成します。詳細については、「[Oracle のタイムゾーンファイルの自動アップグレード](Appendix.Oracle.Options.Timezone-file-autoupgrade.md)」を参照してください。  | 
|  メンテナンス、通知  | RDS-EVENT-0192 |  タイムゾーンファイルのアップデートが開始されました。  |  Oracle タイムゾーンファイルのアップグレードがスタートされました。詳細については、「[Oracle のタイムゾーンファイルの自動アップグレード](Appendix.Oracle.Options.Timezone-file-autoupgrade.md)」を参照してください。  | 
|  メンテナンス、通知  | RDS-EVENT-0193 |  タイムゾーンファイルの新しいバージョンへのアップデートがありません。  |  Oracle DB インスタンスで最新のタイムゾーンファイルバージョンが使用されており、次のいずれかに当てはまります: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_Events.Messages.html) 詳細については、「[Oracle のタイムゾーンファイルの自動アップグレード](Appendix.Oracle.Options.Timezone-file-autoupgrade.md)」を参照してください。  | 
|  メンテナンス、通知  | RDS-EVENT-0194 |  タイムゾーンファイルのアップデートが終了しました。  |  Oracle タイムゾーンファイルのアップデートが完了しました。詳細については、「[Oracle のタイムゾーンファイルの自動アップグレード](Appendix.Oracle.Options.Timezone-file-autoupgrade.md)」を参照してください。  | 
|  通知  | RDS-EVENT-0044 |  *メッセージ*  | これはオペレーターが発行する通知です。詳細については、イベントメッセージを参照してください。 | 
|  通知  | RDS-EVENT-0048 |  このインスタンスには最初にアップグレードする必要のあるリードレプリカがあるため、データベースエンジンのアップグレードを遅らせます。  | DB インスタンスへのパッチ適用が遅れました。 | 
|  通知  | RDS-EVENT-0054 |  *メッセージ*  | お使いの MySQL のストレージエンジンは InnoDB ではありません。InnoDB は、Amazon RDS 向けの MySQL のストレージエンジンとして推奨されています。MySQL ストレージエンジンの詳細については、「[RDS for MySQL のサポートされているストレージエンジン](MySQL.Concepts.FeatureSupport.md#MySQL.Concepts.Storage)」を参照してください。 | 
|  通知  | RDS-EVENT-0055 |  *メッセージ*  |  DB インスタンス用のテーブルの数が、Amazon RDS の推奨ベストプラクティスを超えています。DB インスタンスのテーブルの数を減らします。推奨ベストプラクティスについては、「[Amazon RDS の基本的な操作のガイドライン](CHAP_BestPractices.md#CHAP_BestPractices.DiskPerformance)」を参照してください。  | 
|  通知  | RDS-EVENT-0056 |  *メッセージ*  |  DB インスタンス用のデータベースの数が、Amazon RDS の推奨ベストプラクティスを超えています。DB インスタンスのデータベースの数を減らします。推奨ベストプラクティスについては、「[Amazon RDS の基本的な操作のガイドライン](CHAP_BestPractices.md#CHAP_BestPractices.DiskPerformance)」を参照してください。  | 
|  通知  | RDS-EVENT-0064 |  TDE 暗号化キーは正常にローテーションされました。  | 推奨ベストプラクティスについては、「[Amazon RDS の基本的な操作のガイドライン](CHAP_BestPractices.md#CHAP_BestPractices.DiskPerformance)」を参照してください。 | 
|  通知  | RDS-EVENT-0084 |  DB インスタンスをマルチ AZ に変換できません: *message*。  |  DB インスタンスをマルチ AZ に変換しようとしましたが、このインスタンス内のインメモリファイルグループはマルチ AZ でサポートされていません。詳細については、「[Amazon RDS for Microsoft SQL Server のマルチ AZ 配置](USER_SQLServerMultiAZ.md)」を参照してください。  | 
|  通知  | RDS-EVENT-0087 |  DB インスタンスが停止しました。  | なし | 
|  通知  | RDS-EVENT-0088 |  DB インスタンスが開始されました。  | なし | 
|  通知  | RDS-EVENT-0154 |  停止中の最大許容時間を超えたため、DB インスタンスが起動されています。  | なし | 
|  通知  | RDS-EVENT-0157 |  DB インスタンスクラスを変更できません。 *message*。  |  ターゲットインスタンスクラスでは、ソース DB インスタンスに存在するデータベースの数はサポートされていないため、RDS で DB インスタンスクラスを変更することはできません。エラーメッセージは次のように表示されます: "The instance has *N* databases, but after conversion it would only support *N*"。詳細については、「[Microsoft SQL Server DB インスタンスの制限](CHAP_SQLServer.md#SQLServer.Concepts.General.FeatureSupport.Limits)」を参照してください。  | 
|  通知  | RDS-EVENT-0158 |  データベースインスタンスはアップグレードできない状態です: *message*。  | なし | 
|  通知  | RDS-EVENT-0167 |  *メッセージ*  |  RDS Custom サポートの周辺構成が変更されました。  | 
|  通知  | RDS-EVENT-0189 |  RDS データベースインスタンスの gp2 バーストバランスクレジットが少なくなっています。この問題を解決するには、IOPS の使用量を減らすか、ストレージ設定を変更してパフォーマンスを向上させます。  |  RDS データベースインスタンスの gp2 バーストバランスクレジットが少なくなっています。この問題を解決するには、IOPS の使用量を減らすか、ストレージ設定を変更してパフォーマンスを向上させます。詳細については、「[I/O クレジットおよびバーストパフォーマンス](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html#EBSVolumeTypes_gp2)」の「*Amazon Elastic Compute Cloud ユーザーガイド*」を参照してください。  | 
|  通知  | RDS-EVENT-0225 |  割り当てられたストレージサイズ *amount* GB が最大ストレージしきい値 *amount* GB に近づいています。最大ストレージしきい値を増やします。  |  このイベントは、割り当てられたストレージが最大ストレージしきい値の 80% に達したときに呼び出されます。イベントを回避するには、最大ストレージしきい値を増やします。  | 
|  通知  | RDS-EVENT-0231 |  DB インスタンスのストレージの変更で内部エラーが発生しました。変更リクエストは保留中であり、後で再試行されます。  |  リードレプリケーションプロセスでエラーが発生しました。詳細については、イベントメッセージを参照してください。 さらに、DB エンジンのリードレプリカのトラブルシューティングのセクションを参照してください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_Events.Messages.html)  | 
|  通知  | RDS-EVENT-0253 |  データベースは、二重書き込みバッファを使用しています。*message*。詳細については、*name* ドキュメントの「RDS Optimized Writes」を参照してください。  | RDS 最適化書き込みは、インスタンスのストレージ構成と互換性がありません。詳細については、「[RDS Optimized Writes for MySQL による書き込みパフォーマンスの向上](rds-optimized-writes.md)」および「[Amazon RDS Optimized Writes for MariaDB による書き込みパフォーマンスの向上](rds-optimized-writes-mariadb.md)」を参照してください。 [ブルー/グリーンデプロイを作成する](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments-creating.html)ことで、ストレージ設定のアップグレードを実行して Optimized Writes を有効にできます。 | 
|  通知  | RDS-EVENT-0297 |  DB インスタンス*名*のストレージ設定は、16384 GiB の最大サイズをサポートします。16384 GiB を超えるストレージサイズをサポートするには、ストレージ設定のアップグレードを実行します。  | DB インスタンスに割り当てられたストレージサイズを 16384 GiB を超えて増やすことはできません。この制約事項を克服するには、ストレージ設定をアップグレードしてください。詳細については、「[Amazon RDS DB インスタンスストレージ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.UpgradeFileSystem)」を参照してください。  | 
|  通知  | RDS-EVENT-0298 |  DB インスタンス*名*のストレージ設定は、2048 GiB の最大テーブルサイズをサポートします。2048 GiB を超えるテーブルサイズをサポートするようにストレージ設定のアップグレードを実行します。  | この制約事項がある RDS MySQL インスタンスと MariaDB インスタンスは、テーブルサイズが 2048 GiB を超えることはできません。この制約事項を克服するには、ストレージ設定をアップグレードしてください。詳細については、「[Amazon RDS DB インスタンスストレージ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.UpgradeFileSystem)」を参照してください。  | 
|  通知  | RDS-EVENT-0327 |  Amazon RDS はシークレット *SECRET ARN* を見つけることができませんでした。*message*。  | なし | 
|  通知  | RDS-EVENT-0365 |  タイムゾーンファイルが更新されました。変更を有効にするために RDS インスタンスを再起動します。  | なし | 
|  通知  | RDS-EVENT-0385 |  クラスタートポロジーが更新されました。  |  DB インスタンスの DB クラスターに DNS の変更があります。これには、新しい DB インスタンスが追加または削除された場合、またはフェイルオーバーが発生した場合が含まれます。  | 
|  通知  | RDS-EVENT-0403 |  データベースワークロードにより、システムのメモリが著しく不足しています。この問題を軽減するために、RDS は innodb\$1buffer\$1pool\$1size の値を自動的に *amount* に設定します。  |  RDS for MySQL および RDS for MariaDB DB インスタンスにのみ適用されます。  | 
|  通知  | RDS-EVENT-0404 |  データベースワークロードにより、システムのメモリが著しく不足しています。この問題を軽減するために、RDS は shared\$1buffers の値を自動的に *amount* に設定します。  |  RDS for PostgreSQL DB インスタンスにのみ適用されます。  | 
|  リードレプリカ  | RDS-EVENT-0045 |  レプリケーションが停止されました。  |  このメッセージは、レプリケーション中にエラーが発生した場合に表示されます。エラーのタイプを特定するには、「[MySQL リードレプリカに関する問題のトラブルシューティング](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.Troubleshooting.html)」を参照してください。  | 
|  リードレプリカ  | RDS-EVENT-0046 |  リードレプリカのレプリケーションが再開されました。  | このメッセージは、初期にリードレプリカを作成したとき、またはレプリケーションが適切に機能していることを確認するモニタリングメッセージとして表示されます。このメッセージが `RDS-EVENT-0045` 通知の後に表示される場合は、エラーの後またはレプリケーションが停止した後で、レプリケーションが再開されました。 | 
|  リードレプリカ  | RDS-EVENT-0057 |  レプリケーションストリーミングは終了しました。  | なし | 
|  リードレプリカ  | RDS-EVENT-0062 |  リードレプリカのレプリケーションが手動で停止されました。  | なし | 
|  リードレプリカ  | RDS-EVENT-0063 |  RDS インスタンス以外のインスタンスからのレプリケーションがリセットされました。  | なし | 
|  リードレプリカ  | RDS-EVENT-0202 |  リードレプリカの作成に失敗しました。  | なし | 
|  リードレプリカ  | RDS-EVENT-0233 |  リードレプリカへのスイッチオーバーが開始されました。  | なし | 
|  リードレプリカ  | RDS-EVENT-0357 |  レプリケーションチャネル*名*が開始されました。  | レプリケーションチャネルについては、「[Amazon RDS for MySQL のマルチソースレプリケーションの設定](mysql-multi-source-replication.md)」を参照してください。 | 
|  リードレプリカ  | RDS-EVENT-0358 |  レプリケーションチャネル*名*が停止されました。  | レプリケーションチャネルについては、「[Amazon RDS for MySQL のマルチソースレプリケーションの設定](mysql-multi-source-replication.md)」を参照してください。 | 
|  リードレプリカ  | RDS-EVENT-0359 |  レプリケーションチャネル*名*が手動で停止されました。  | レプリケーションチャネルについては、「[Amazon RDS for MySQL のマルチソースレプリケーションの設定](mysql-multi-source-replication.md)」を参照してください。 | 
|  リードレプリカ  | RDS-EVENT-0360 |  レプリケーションチャネル*名*がリセットされました。  | レプリケーションチャネルについては、「[Amazon RDS for MySQL のマルチソースレプリケーションの設定](mysql-multi-source-replication.md)」を参照してください。 | 
|  リードレプリカ  | RDS-EVENT-0415 |  アップグレードプロセスがリードレプリカでのレプリケーションを再開しました。  | なし | 
|  リードレプリカ  | RDS-EVENT-0416 |  アップグレードプロセスがリードレプリカのでレプリケーションを停止しました。  | なし | 
|  復旧  | RDS-EVENT-0020 |  DB インスタンスの復旧がスタートされました。復旧時間は、復旧するデータの量に応じて変わります。  | なし | 
|  復旧  | RDS-EVENT-0021 |  DB インスタンスの復旧が完了しました。  | なし | 
|  復旧  | RDS-EVENT-0023 |  緊急スナップショットリクエスト: *message*。  |  手動バックアップがリクエストされましたが、現在、Amazon RDS は DB スナップショットの作成中です。Amazon RDS で DB スナップショットの作成が完了した後で、リクエストをもう一度送信してください。  | 
|  復旧  | RDS-EVENT-0052 |  マルチ AZ インスタンスの復旧が開始されました。  | 復旧時間は、復旧するデータの量に応じて変わります。 | 
|  復旧  | RDS-EVENT-0053 |  マルチ AZ インスタンスの復旧が完了しました。フェイルオーバーまたはアクティベーションが保留中です。  | このメッセージは、Amazon RDS が、必要に応じてセカンダリインスタンスへのフェイルオーバーを開始するように DB インスタンスを準備したことを示します。 | 
|  復旧  | RDS-EVENT-0066 |  ミラーリングの再確立中にインスタンスのパフォーマンスが低下します: *message*。  |  SQL Server DB インスタンスは、ミラーを再構築しています。ミラーが再構築されるまで、パフォーマンスが低下します。FULL ではない復旧モデルのデータベースが見つかりました。復旧モデルは FULL に戻され、ミラーリングによる復旧がスタートされました。(<dbname>: <recovery model found>[,…])”  | 
|  復旧  | RDS-EVENT-0166 |  *メッセージ*  |  RDS Custom DB インスタンスは、サポート境界内にあります。  | 
|  復旧  | RDS-EVENT-0361 |  スタンバイ DB インスタンスの復旧が開始されました。  |  スタンバイ DB インスタンスは、復旧プロセス中に再構築されます。データベースのパフォーマンスは、復旧プロセス中に影響を受けます。  | 
|  復旧  | RDS-EVENT-0362 |  スタンバイ DB インスタンスの復旧が完了しました。  |  スタンバイ DB インスタンスは、復旧プロセス中に再構築されます。データベースのパフォーマンスは、復旧プロセス中に影響を受けます。  | 
|  復元  | RDS-EVENT-0019 |  DB インスタンス *name* から *name* に復元しました。  |  DB インスタンスが特定の時点のバックアップから復元されました。  | 
|  セキュリティ  | RDS-EVENT-0068 |  hsm パーティションのパスワードを復号してインスタンスを更新します。  |  RDS は AWS CloudHSM パーティションパスワードを復号して、DB インスタンスを更新しています。詳細については、*AWS CloudHSM ユーザーガイド*の「[AWS CloudHSM を使用した Oracle Database Transparent Data Encryption (TDE)](https://docs.aws.amazon.com/cloudhsm/latest/userguide/oracle-tde.html)」を参照してください。  | 
|  セキュリティパッチ  | RDS-EVENT-0230 |  DB インスタンスにシステムアップデートが使用可能です。アップデートの適用方法については、RDS ユーザーガイドの、「DB インスタンスのメンテナンス」を参照してください。  |  新しいオペレーティングシステムのアップデートが使用可能です。 DB インスタンスで、新しいマイナーバージョンのオペレーティングシステムを更新できます。更新の適用については、「[RDS DB インスタンスのオペレーティングシステムの更新](USER_UpgradeDBInstance.Maintenance.md#OS_Updates)」を参照してください。  | 
|  メンテナンス  | RDS-EVENT-0425 |  指定したサブネットに使用可能な IP アドレスがないため、Amazon RDS は OS アップグレードを実行できません。使用可能な IP アドレスがあるサブネットを選択して、もう一度試してください。  |  なし  | 
|  メンテナンス  | RDS-EVENT-0429 |  *zone* アベイラビリティーゾーンの *type* インスタンスタイプで使用可能な容量が不足しているため、Amazon RDS は OS アップグレードを実行できません  |  なし  | 
|  メンテナンス  | RDS-EVENT-0501 |  Amazon RDS DB インスタンスのサーバー証明書には、保留中のメンテナンスアクションによるローテーションが必要です。  |  DB インスタンスのサーバー証明書には、保留中のメンテナンスアクションによるローテーションが必要です。Amazon RDS は、このメンテナンス中にデータベースを再起動して、証明書のローテーションを完了します。このメンテナンスをスケジュールするには、**[メンテナンスとバックアップ]** タブに移動し、**[今すぐ適用]** または **[次のメンテナンス期間の予定]** を選択します。変更がスケジュールされていない場合、Amazon RDS はメンテナンスアクションに表示される自動適用日のメンテナンスウィンドウに自動的に適用します。  | 
|  メンテナンス  | RDS-EVENT-0502 |  Amazon RDS は、次のメンテナンスウィンドウ中に DB インスタンスのサーバー証明書のローテーションをスケジュールしました。このメンテナンスでは、データベースを再起動する必要があります。  |  なし  | 

## DB パラメータグループイベント
<a name="USER_Events.Messages.parameter-group"></a>

次の表は、DB パラメータグループがソースタイプである場合のイベントカテゴリとイベントを示しています。


|  カテゴリ  | RDS イベント ID |  メッセージ  |  注意事項  | 
| --- | --- | --- | --- | 
|  設定変更  | RDS-EVENT-0037 |  パラメータ *name* を適用メソッド *method* で *value* に更新しました。  |  なし  | 

## DB セキュリティグループイベント
<a name="USER_Events.Messages.security-group"></a>

次の表は、DB セキュリティグループをソースタイプとするイベントカテゴリとイベントの一覧です。

**注記**  
DB セキュリティグループは EC2-Classic 用リソースです。EC2-Classic は 2022 年 8 月 15 日に廃止されました。EC2-Classic から VPC に移行していない場合、できるだけ早く移行することをお勧めします。詳細については、*「Amazon EC2 ユーザーガイド」*の[「EC2-Classic から VPC へ移行」](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html)およびブログ記事[「EC2-Classic ネットワーキングがリタイア — 準備方法」](https://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/)を参照してください。


|  Category  | RDS イベント ID |  メッセージ  |  注意事項  | 
| --- | --- | --- | --- | 
|  設定変更  | RDS-EVENT-0038 |  セキュリティグループに変更を適用しました。  |  なし  | 
|  失敗  | RDS-EVENT-0039 |  *user* としての権限を取り消しています。  |  *user*.が所有するセキュリティグループが存在しません。セキュリティグループの認可が無効なため取り消されました。  | 

## DB スナップショットイベント
<a name="USER_Events.Messages.snapshot"></a>

次の表は、DB スナップショットをソースタイプとするイベントカテゴリとイベントの一覧です。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_Events.Messages.html)

## RDS Proxy イベント
<a name="USER_Events.Messages.rds-proxy"></a>

ソースタイプが RDS Proxy である場合の、イベントのカテゴリとその一覧を次の表に示します。


|  Category  | RDS イベント ID |  メッセージ  |  注意事項  | 
| --- | --- | --- | --- | 
| 設定変更 | RDS-EVENT-0204 |  RDS が DB プロキシ *name* を変更しました。  | なし | 
| 設定変更 | RDS-EVENT-0207 |  RDS において、DB プロキシ *name* のエンドポイントが修正されました。  | なし | 
| 設定変更 | RDS-EVENT-0213 |  RDS が DB インスタンスの追加を検出し、そのインスタンスを DB プロキシ *name* のターゲットグループに自動的に追加しました。  | なし | 
|  設定変更  | RDS-EVENT-0214 |  RDS が DB インスタンス *name* の削除を検出し、そのインスタンスを DB プロキシ *name* のターゲットグループ *name* から自動的に削除しました。  | なし | 
|  設定変更  | RDS-EVENT-0215 |  RDS が DB クラスター *name* の削除を検出し、そのインスタンスを DB プロキシ *name* のターゲットグループ *name* から自動的に削除しました。  | なし | 
|  作成  | RDS-EVENT-0203 |  RDS は DB プロキシ *name* を作成しました。  | なし | 
|  作成  | RDS-EVENT-0206 |  RDS は DB プロキシ *name* のエンドポイント*name*を作成しました。  | なし | 
| 削除 | RDS-EVENT-0205 |  RDS は DB プロキシ *name* を削除しました。  | なし | 
|  削除  | RDS-EVENT-0208 |  RDS は DB プロキシ*name*のエンドポイント *name* を削除しました。  | なし | 
|  失敗  | RDS-EVENT-0243 |  サブネット *name* に十分な IP アドレスがないため、RDS はプロキシの容量をプロビジョニングできませんでした: *name*。この問題を解決するには、RDS プロキシのドキュメントで推奨されているように、サブネットの未使用の IP アドレスが最小限であることを確認してください。  |  インスタンスクラスの推奨数を決定するには、「[IP アドレス容量の計画](rds-proxy-network-prereqs.md#rds-proxy-network-prereqs.plan-ip-address)」を参照してください。  | 
|  失敗 | RDS-EVENT-0275 |  RDS は DB プロキシ*名*への一部の接続をスロットリングしました。クライアントからプロキシへの同時接続リクエストの数が制限を超えました。  | なし | 

## ブルー/グリーンデプロイイベント
<a name="USER_Events.Messages.BlueGreenDeployments"></a>

次の表は、ブルー/グリーンデプロイがソースタイプである場合のイベントカテゴリとイベントのリストを示します。

ブルー/グリーンデプロイの詳細については、「[データベース更新のために Amazon RDS ブルー/グリーンデプロイを使用する](blue-green-deployments.md)」を参照してください。


|  Category  | Amazon RDS イベント ID |  メッセージ  |  注意事項  | 
| --- | --- | --- | --- | 
|  作成  | RDS-EVENT-0244 |  ブルー/グリーンデプロイタスクが完了しました。グリーン環境のデータベースにさらに変更を加えたり、デプロイを切り替えたりできます。  | なし | 
|  失敗  | RDS-EVENT-0245 |  *reason* が原因でブルー/グリーンデプロイの作成に失敗しました。  | なし | 
|  削除  | RDS-EVENT-0246 |  ブルー/グリーンデプロイが削除されました。  | なし | 
|  通知  | RDS-EVENT-0247 |  *ブルー*から*グリーン*へのスイッチオーバーが開始されました。  | なし | 
|  通知  | RDS-EVENT-0248 |  ブルー/グリーンデプロイの切り替えが完了しました。  | なし | 
|  失敗  | RDS-EVENT-0249 |  ブルー/グリーンデプロイの切り替えがキャンセルされました。  | なし | 
|  通知  | RDS-EVENT-0250  |  プライマリ/リードレプリカの*ブルー*から*グリーン*へのスイッチオーバーが開始されました。  | なし | 
|  通知  | RDS-EVENT-0251  |  プライマリ/リードレプリカの*ブルー*から*グリーン*へのスイッチオーバーが完了しました。*ブルー*から*古いブルー*、*グリーン*から*ブルー*に名前を変更しました。  | なし | 
|  失敗  | RDS-EVENT-0252  |  プライマリ/リードレプリカ の*ブルー*から*グリーン*へのスイッチオーバーは、*理由*によりキャンセルされました。  | なし | 
|  通知  | RDS-EVENT-0307  |  の*ブルー*から*グリーン*へのスイッチオーバーのシーケンス同期が開始されました。シーケンス使用時にスイッチオーバーを行うと、ダウンタイムが長くなる可能性があります。  | なし | 
|  通知  | RDS-EVENT-0308  |  の*ブルー*から*グリーン*へのスイッチオーバーのためのシーケンス同期が完了しました。  | なし | 
|  失敗  | RDS-EVENT-0310  |  の*ブルー*から*グリーン*へのスイッチオーバーのシーケンス同期は、シーケンスが同期に失敗したためキャンセルされました。  | なし | 
| 通知 | RDS-EVENT-0405 |  ストレージボリュームを初期化中です。  |  なし  | 
| 通知 | RDS-EVENT-0406 |  ストレージボリュームが初期化されました。  |  なし  | 
|  通知  | RDS-EVENT-0409  |  *メッセージ*  | なし | 

## カスタムエンジンバージョンイベント
<a name="USER_Events.Messages.CEV"></a>

次の表は、カスタムエンジンバージョンがソースタイプである場合のイベントカテゴリとイベントのリストを示しています。


|  Category  | Amazon RDS イベント ID |  メッセージ  |  注意事項  | 
| --- | --- | --- | --- | 
|  作成  | RDS-EVENT-0316 |  カスタムエンジンバージョン*名*を作成する準備をしています。作成プロセスが完了までに最大 4 時間かかる場合があります。  | なし | 
|  作成  | RDS-EVENT-0317 |  カスタムエンジンバージョン*名*の作成。  | なし | 
|  作成  | RDS-EVENT-0318 |  カスタムエンジンバージョン*名*の評価。  | なし | 
|  作成  | RDS-EVENT-0319 |  カスタムエンジンバージョン*名*は正常に作成されました。  | なし | 
|  作成  | RDS-EVENT-0320 |  RDS は内部問題のため、カスタムエンジンバージョン*名*を作成できません。現在、問題に対処しており、必要に応じてご連絡いたします。さらにサポートが必要な場合は、[AWS Premium Support/](https://console.aws.amazon.com/support/) にお問い合わせください。  | なし | 
|  失敗  | RDS-EVENT-0198 |  カスタムエンジンバージョン *name* の作成に失敗しました。*message*  | *メッセージ*には、見つからないファイルなど、障害に関する詳細が含まれます。 | 
|  失敗  | RDS-EVENT-0277 |  カスタムエンジンバージョン *name* の削除中に障害が発生しました。*メッセージ*  | *メッセージ*には、障害に関する詳細が含まれます。 | 
|  復元中  | RDS-EVENT-0352 |  ポイントインタイムリストアでサポートされる最大データベース数が変更されました。  | *メッセージ*には、イベントに関する詳細が含まれます。 | 

# Amazon RDS ログファイルのモニタリング
<a name="USER_LogAccess"></a>

すべての RDS データベースエンジンは、監査やトラブルシューティング時にアクセスするログを生成します。ログの種類は、データベースエンジンによって異なります。

AWS マネジメントコンソール、AWS Command Line Interface (AWS CLI)、または Amazon RDS API を使用して、DB インスタンスのデータベースログにアクセスできます。トランザクションログを表示、監視、またはダウンロードすることはできません。

**Topics**
+ [データベースログファイルの表示とリスト化](USER_LogAccess.Procedural.Viewing.md)
+ [データベースログファイルのダウンロード](USER_LogAccess.Procedural.Downloading.md)
+ [データベースログファイルのモニタリング](USER_LogAccess.Procedural.Watching.md)
+ [Amazon CloudWatch Logs へのデータベースログの発行](USER_LogAccess.Procedural.UploadtoCloudWatch.md)
+ [REST を用いたログファイルの内容の読み取り](DownloadCompleteDBLogFile.md)
+ [Amazon RDS for Db2 データベースのログファイル](USER_LogAccess.Concepts.Db2.md)
+ [MariaDB データベースのログファイル](USER_LogAccess.Concepts.MariaDB.md)
+ [Amazon RDS for Microsoft SQL Server データベースのログファイル](USER_LogAccess.Concepts.SQLServer.md)
+ [MySQL データベースのログファイル](USER_LogAccess.Concepts.MySQL.md)
+ [Amazon RDS for Oracle データベースのログファイル](USER_LogAccess.Concepts.Oracle.md)
+ [RDS for PostgreSQL データベースログファイル](USER_LogAccess.Concepts.PostgreSQL.md)

# データベースログファイルの表示とリスト化
<a name="USER_LogAccess.Procedural.Viewing"></a>

AWS マネジメントコンソール を使用して、Amazon RDS DB エンジンのデータベースログファイルを表示できます。AWS CLI または Amazon RDS API を使用して、ダウンロードまたはモニタリングできるログファイルを一覧表示できます。

**注記**  
既存の RDS for Oracle DB インスタンスのログファイルのリストを表示できない場合は、インスタンスを再起動してリストを表示します。

## コンソール
<a name="USER_LogAccess.CON"></a>

**データベースログファイルを閲覧するには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**データベース**] を選択します。

1. 表示するログファイルのある DB インスタンスの名前を選択します。

1. [**ログとイベント**] タブを選択します。

1. [**ログ**] セクションまで下にスクロールします。

1. (オプション) 検索語を入力して、結果をフィルタリングします。

1. 表示するログを選択してから、**[View]** (表示) を選択します。

## AWS CLI
<a name="USER_LogAccess.CLI"></a>

DB インスタンスで使用できるデータベースログファイルを一覧表示するには、AWS CLI の [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-log-files.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-log-files.html) コマンドを使用します。

次の例では、DB インスタンス (`my-db-instance`) のログファイルのリストが返ります。

**Example**  

```
1. aws rds describe-db-log-files --db-instance-identifier my-db-instance
```

## RDS API
<a name="USER_LogAccess.API"></a>

DB インスタンスの使用可能なデータベースログファイルを一覧表示するには、Amazon RDS API の [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBLogFiles.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBLogFiles.html) アクションを使用します。

# データベースログファイルのダウンロード
<a name="USER_LogAccess.Procedural.Downloading"></a>

データベースログファイルをダウンロードするには、AWS マネジメントコンソール、AWS CLI、または API を使用します。

## コンソール
<a name="USER_LogAccess.Procedural.Downloading.CON"></a>

**データベースログファイルをダウンロードするには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**データベース**] を選択します。

1. 表示するログファイルのある DB インスタンスの名前を選択します。

1. [**ログとイベント**] タブを選択します。

1. [**ログ**] セクションまで下にスクロールします。

1. [**ログ**] セクションで、ダウンロードするログの横にあるボタンを選択し、[**ダウンロード**] を選択します。

1. 表示されたリンクのコンテキスト (右クリック) メニューを開き、[**名前を付けて保存**] を選択します。ログファイルを保存する場所を入力し、[**保存**] を選択します。  
![\[ログファイルを閲覧する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/log_download2.png)

## AWS CLI
<a name="USER_LogAccess.Procedural.Downloading.CLI"></a>

データベースログファイルをダウンロードするには、AWS CLI の [https://docs.aws.amazon.com/cli/latest/reference/rds/download-db-log-file-portion.html](https://docs.aws.amazon.com/cli/latest/reference/rds/download-db-log-file-portion.html) コマンドを使用します。デフォルトでは、このコマンドによってログファイルの最新部分のみがダウンロードされます。ただし、`--starting-token 0` パラメータを指定して、ファイル全体をダウンロードすることもできます。

以下の例では、ログファイル (*log/ERROR.4*) のすべての内容をダウンロードし、ローカルファイル (*errorlog.txt*) に格納する方法について説明します。

**Example**  
Linux、macOS、Unix の場合:  

```
1. aws rds download-db-log-file-portion \
2.     --db-instance-identifier myexampledb \
3.     --starting-token 0 --output text \
4.     --log-file-name log/ERROR.4 > errorlog.txt
```
Windows の場合:  

```
1. aws rds download-db-log-file-portion ^
2.     --db-instance-identifier myexampledb ^
3.     --starting-token 0 --output text ^
4.     --log-file-name log/ERROR.4 > errorlog.txt
```

## RDS API
<a name="USER_LogAccess.Procedural.Downloading.API"></a>

データベースログファイルをダウンロードするには、Amazon RDS API の [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DownloadDBLogFilePortion.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DownloadDBLogFilePortion.html) アクションを使用します。

# データベースログファイルのモニタリング
<a name="USER_LogAccess.Procedural.Watching"></a>

データベースログファイルを監視することは、UNIX または Linux システムでファイルをテーリングすることと同じです。AWS マネジメントコンソール を使用すると、ログファイルを監視できます。RDS は 5 秒ごとにログの末尾を更新します。

**データベースログファイルをモニタリングするには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**データベース**] を選択します。

1. 表示するログファイルのある DB インスタンスの名前を選択します。

1. [**ログとイベント**] タブを選択します。  
![\[[Logs & events] (ログとイベント) タブを選択します。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/Monitoring_logsEvents.png)

1. [**ログ**] セクションでログファイルを選択し、[**モニタリング**] を選択します。  
![\[[Logs] (ログ) を選択します。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/Monitoring_LogsEvents_watch.png)

   RDS には、次の MySQL の例のようにログの末尾が表示されます。  
![\[ログファイルの末尾\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/Monitoring_LogsEvents_watch_content.png)

# Amazon CloudWatch Logs へのデータベースログの発行
<a name="USER_LogAccess.Procedural.UploadtoCloudWatch"></a>

オンプレミスデータベースでは、データベースログはファイルシステムに存在します。Amazon RDS では、DB インスタンスのファイルシステム上のデータベースログへのホストアクセスが許可されません。このため、Amazon RDS では、[Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) にデータベースログをエクスポートできます。CloudWatch Logs を使用すると、ログデータのリアルタイム分析を実行できます。高い耐久性を持つストレージにデータを保存し、CloudWatch Logs エージェントを使用したデータの管理を実行できます。

**Topics**
+ [RDS と CloudWatch Logs の統合の概要](#rds-integration-cw-logs)
+ [CloudWatch Logs に発行するログの決定](#engine-specific-logs)
+ [CloudWatch Logs に発行するログの指定](#integrating_cloudwatchlogs.configure)
+ [CloudWatch Logs でのログの検索とフィルタリング](#accessing-logs-in-cloudwatch)

## RDS と CloudWatch Logs の統合の概要
<a name="rds-integration-cw-logs"></a>

CloudWatch Logs では、*ログストリーミング*は、同じ出典を共有する一連のログイベントです。CloudWatch Logs でのログの各ソースで各ログストリームが構成されます。*ロググループ*は、保持、モニタリング、アクセス制御について同じ設定を共有するログストリームのグループです。

Amazon RDS は、DB インスタンスログレコードをロググループに継続的にストリームします。例えば、発行した各タイプのログについて、ロググループ `/aws/rds/instance/instance_name/log_type` があることを考えます。このロググループは、ログを生成するデータベースインスタンスと同じ AWS リージョンにあります。

AWS は、CloudWatch Logs に発行されたログデータを、保持期間を指定しない限り、無期限に保持します。詳細については、「[CloudWatch Logs でのログデータ保管期間の変更](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#SettingLogRetention)」を参照してください。

## CloudWatch Logs に発行するログの決定
<a name="engine-specific-logs"></a>

各 RDS データベースエンジンは、独自のログセットをサポートします。データベースエンジンのオプションについては、以下のトピックを確認してください。
+ [Amazon CloudWatch Logs への Db2 ログの発行](USER_LogAccess.Concepts.Db2.md#USER_LogAccess.Db2.PublishtoCloudWatchLogs)
+ [MariaDB ログを Amazon CloudWatch Logs に発行する](USER_LogAccess.MariaDB.PublishtoCloudWatchLogs.md)
+ [Amazon CloudWatch Logs への MySQL ログの発行](USER_LogAccess.MySQLDB.PublishtoCloudWatchLogs.md)
+ [Amazon CloudWatch Logs への Oracle ログの発行](USER_LogAccess.Concepts.Oracle.md#USER_LogAccess.Oracle.PublishtoCloudWatchLogs)
+ [Amazon CloudWatch Logs への PostgreSQL ログの発行](USER_LogAccess.Concepts.PostgreSQL.md#USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs)
+ [Amazon CloudWatch Logs への SQL Server ログの発行](USER_LogAccess.Concepts.SQLServer.md#USER_LogAccess.SQLServer.PublishtoCloudWatchLogs)

## CloudWatch Logs に発行するログの指定
<a name="integrating_cloudwatchlogs.configure"></a>

コンソールで発行するログを指定します。AWS Identity and Access Management (IAM) にサービスリンクロールがあることを確認します。サービスにリンクされたロールの詳細については、「[Amazon RDS のサービスにリンクされたロールの使用](UsingWithRDS.IAM.ServiceLinkedRoles.md)」を参照してください。

**発行するログを指定するには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**データベース**] を選択します。

1. 次のいずれかを実行します。
   + **[データベースの作成]** を選択します。
   + 一覧からデータベースを選択し、**[Modify]** (変更) を選択します。

1. **[Logs exports]** (ログのエクスポート) で、発行するログを選択します。

   次の例では、RDS for MySQL DB インスタンスの監査ログ、エラーログ、一般ログ、スロークエリログを指定します。  
![\[CloudWatch Logs に発行するログを選択します。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/AddCWLogs.png)

## CloudWatch Logs でのログの検索とフィルタリング
<a name="accessing-logs-in-cloudwatch"></a>

CloudWatch コンソールを使用して、指定した基準を満たすログエントリを検索することができます。ログには、CloudWatch Logs コンソールにつながる RDS コンソールからアクセスすることも、CloudWatch Logs コンソールから直接アクセスすることもできます。

**RDS コンソールを使用して RDS ログを検索するには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**データベース**] を選択します。

1. DB インスタンスを選択します。

1. **[設定]** を選択します。

1. **[Published logs]** (発行されたログ) で、表示するデータベースログを選択します。

**CloudWatch Logs コンソールを使用して RDS ログを検索するには**

1. CloudWatch コンソール ([https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)) を開きます。

1. ナビゲーションペインで、**[Log groups]** (ロググループ) を選択します。

1. フィルタボックスに **/aws/rds** と入力します。

1. [**ロググループ**] で、検索するログストリームを含むロググループの名前を選択します。

1. [**ログストリーム**] で、検索するログストリームの名前を選択します。

1. [**Log Events (ログイベント)**] で、使用するフィルター構文を入力します。

詳細については、*Amazon CloudWatch Logs ユーザーガイド*の「[ログデータの検索およびフィルタリング](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html)」を参照してください。RDS ログをモニタリングする方法を説明するブログチュートリアルについては、「[Amazon CloudWatch Logs、AWS Lambda、および Amazon SNS を使用して Amazon RDS のプロアクティブなデータベースモニタリングを構築する](https://aws.amazon.com/blogs/database/build-proactive-database-monitoring-for-amazon-rds-with-amazon-cloudwatch-logs-aws-lambda-and-amazon-sns/)」を参照してください。

# REST を用いたログファイルの内容の読み取り
<a name="DownloadCompleteDBLogFile"></a>

Amazon RDS では、DB インスタンスのログファイルへのアクセスを許可する REST エンドポイントを使用できます。これは、Amazon RDS ログファイルの内容を取り出すアプリケーションを作成される場合に有用です。

構文は次のとおりです。

```
GET /v13/downloadCompleteLogFile/DBInstanceIdentifier/LogFileName HTTP/1.1
Content-type: application/json
host: rds.region.amazonaws.com
```

以下のパラメータは必須です。
+ `DBInstanceIdentifier`— ダウンロードするログファイルを含む DB インスタンスの名前。
+ `LogFileName`—ダウンロードするログファイルの名前。

このレスポンスには、ストリーミングとしてリクエストされたログファイルの内容が含まれます。

次の例では、*us-west-2* リージョンの *sample-sql* という名前の DB インスタンスの *log/ERROR.6* という名前のログファイルをダウンロードします。

```
GET /v13/downloadCompleteLogFile/sample-sql/log/ERROR.6 HTTP/1.1
host: rds.us-west-2.amazonaws.com
X-Amz-Security-Token: AQoDYXdzEIH//////////wEa0AIXLhngC5zp9CyB1R6abwKrXHVR5efnAVN3XvR7IwqKYalFSn6UyJuEFTft9nObglx4QJ+GXV9cpACkETq=
X-Amz-Date: 20140903T233749Z
X-Amz-Algorithm: AWS4-HMAC-SHA256
X-Amz-Credential: AKIADQKE4SARGYLE/20140903/us-west-2/rds/aws4_request
X-Amz-SignedHeaders: host
X-Amz-Content-SHA256: e3b0c44298fc1c229afbf4c8996fb92427ae41e4649b934de495991b7852b855
X-Amz-Expires: 86400
X-Amz-Signature: 353a4f14b3f250142d9afc34f9f9948154d46ce7d4ec091d0cdabbcf8b40c558
```

存在しない DB インスタンスを指定した場合、レスポンスは次のエラーになります。
+ `DBInstanceNotFound`—`DBInstanceIdentifier` が既存の DB インスタンスを参照していません。(HTTP ステータスコード: 404)

# Amazon RDS for Db2 データベースのログファイル
<a name="USER_LogAccess.Concepts.Db2"></a>

Amazon RDS コンソール、AWS CLI、または RDS API を使用して、RDS for Db2 の診断ログと通知ログにアクセスできます。ファイルベースのデータベースログの表示、ダウンロード、モニタリングの詳細については、「[Amazon RDS ログファイルのモニタリング](USER_LogAccess.md)」を参照してください。

**Topics**
+ [保持期間スケジュール](#USER_LogAccess.Concepts.Db2.Retention)
+ [Amazon CloudWatch Logs への Db2 ログの発行](#USER_LogAccess.Db2.PublishtoCloudWatchLogs)

## 保持期間スケジュール
<a name="USER_LogAccess.Concepts.Db2.Retention"></a>

ログファイルは、毎日、および DB インスタンスが再開されるたびにローテーションされます。以下は、Amazon RDS の RDS for Db2 ログの保持期間スケジュールです。


****  

| ログタイプ | 保持期間スケジュール | 
| --- | --- | 
|  診断ログ  |  Db2 は、インスタンスレベルで設定された保持期間に含まれないログを削除します。Amazon RDS は、`diagsize` パラメータを 1,000 に設定します。  | 
|  通知ログ  |  Db2 は、インスタンスレベルで設定された保持期間に含まれないログを削除します。Amazon RDS は、`diagsize` パラメータを 1,000 に設定します。  | 

## Amazon CloudWatch Logs への Db2 ログの発行
<a name="USER_LogAccess.Db2.PublishtoCloudWatchLogs"></a>

RDS for Db2 では診断および通知ログイベントを直接 Amazon CloudWatch Logs に発行できます。CloudWatch Logs を使用してログデータを分析し、CloudWatch を使用してアラームを作成し、メトリクスを表示することができます。

CloudWatch Logs では、次のことを実行できます。
+ ログは、ユーザーが定義する保持期間で耐久性の高いストレージ領域に保存します。
+ ログデータを検索しフィルタリングします。
+ アカウント間でログデータを共有します。
+ ログを Amazon S3 にエクスポートします。
+ Amazon OpenSearch Service へのデータのストリーミング
+ Amazon Kinesis Data Streams を使用してログデータをリアルタイムで処理します。詳細については、「*Amazon Managed Service for Apache Flink for Apache Flink デベロッパーガイド*」内の「[Amazon CloudWatch Logs の使用](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/cloudwatch-logs.html)」を参照してください。

 Amazon RDS は、各 RDS for Db2 データベースログを、ロググループ内の個別のデータベースストリームとして発行します。例えば、診断ログと通知ログを発行する場合、診断データは `/aws/rds/instance/my_instance/diagnostic` ロググループの診断ログストリームに保存され、通知ログデータは `/aws/rds/instance/my_instance/notify` ロググループに保存されます。

**注記**  
RDS for Db2 ログの CloudWatch Logs への発行は、デフォルトでは有効にされていません。セルフチューニングメモリマネージャー (STMM) とオプティマイザ統計のログの発行はサポートされていません。RDS for Db2 ログの CloudWatch Logs への発行は、アジアパシフィック (香港) を除くすべてのリージョンでサポートされています。

### コンソール
<a name="USER_LogAccess.Db2.PublishtoCloudWatchLogs.console"></a>

**AWS マネジメントコンソール から CloudWatch Logs に RDS for Db2 ログを発行するには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**データベース**] を選択し、変更する DB インスタンスを選択します。

1. [**Modify**] を選択します。

1. [**ログのエクスポート**] セクションで、CloudWatch Logs に公開するログを選択します。

   **diag.log**、**notify.log**、またはその両方を選択できます。

1. [**続行**] を選択し、概要ページで [**Modify DB Instance**] (DB インスタンスの変更) を選択します。

### AWS CLI
<a name="USER_LogAccess.Db2.PublishtoCloudWatchLogs.CLI"></a>

RDS for Db2 ログを発行するには、以下のパラメータを指定して [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) コマンドを使用します。
+ `--db-instance-identifier`
+ `--cloudwatch-logs-export-configuration`

**注記**  
`--cloudwatch-logs-export-configuration` オプションへの変更は常に DB インスタンスに即時適用されます。それで、`--apply-immediately` と `--no-apply-immediately` オプションは効果がありません。

以下のコマンドを使用して RDS for Db2 ログを発行することもできます。
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)

**Example**  
次の例では、CloudWatch Logs の発行を有効にした RDS for Db2 DB インスタンスを作成します。`--enable-cloudwatch-logs-exports` 値は、`diag.log`、`notify.log`、または両方を含むことができる JSON 文字列です。  
Linux、macOS、Unix の場合:  

```
aws rds create-db-instance \
    --db-instance-identifier mydbinstance \
    --enable-cloudwatch-logs-exports '["diag.log","notify.log"]' \
    --db-instance-class db.m4.large \
    --engine db2-se
```
Windows の場合:  

```
aws rds create-db-instance ^
    --db-instance-identifier mydbinstance ^
    --enable-cloudwatch-logs-exports "[\"diag.log\",\"notify.log\"]" ^
    --db-instance-class db.m4.large ^
    --engine db2-se
```
Windows コマンドプロンプトを使用する場合、JSON コードでは、二重引用符 (") の前にバックスラッシュ (\$1) を付けてエスケープする必要があります。

**Example**  
次の例では、ログファイルが CloudWatch Logs に発行されるよう既存の RDS for Db2 DB インスタンスを変更します。`--cloudwatch-logs-export-configuration` 値は JSON オブジェクトです。このオブジェクトのキーは `EnableLogTypes` であり、その値は `diag.log`、`notify.log`、または両方を含む文字列の配列です。  
Linux、macOS、Unix の場合:  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '{"EnableLogTypes":["diag.log","notify.log"]}'
```
Windows の場合:  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration "{\"EnableLogTypes\":[\"diag.log\",\"notify.log\"]}"
```
Windows コマンドプロンプトを使用する場合、JSON コードでは、二重引用符 (") の前にバックスラッシュ (\$1) を付けてエスケープする必要があります。

**Example**  
次の例では、診断ログファイルの CloudWatch Logs への発行が無効になるよう既存の RDS for Db2 DB インスタンスを変更します。`--cloudwatch-logs-export-configuration` 値は JSON オブジェクトです。このオブジェクトのキーは `DisableLogTypes` であり、その値は `diag.log`、`notify.log`、または両方を含む文字列の配列です。  
Linux、macOS、Unix の場合:  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '{"DisableLogTypes":["diag.log"]}'
```
Windows の場合:  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration "{\"DisableLogTypes\":[\"diag.log\"]}"
```
Windows コマンドプロンプトを使用する場合、JSON コードでは、二重引用符 (") の前にバックスラッシュ (\$1) を付けてエスケープする必要があります。

# MariaDB データベースのログファイル
<a name="USER_LogAccess.Concepts.MariaDB"></a>

MariaDB エラーログ、スロークエリログ、IAM データベース認証エラーログ、一般ログをモニタリングできます。デフォルトで、MariaDB のエラーログは生成されます。DB パラメータグループにパラメータを設定することで、スロークエリログと一般ログを生成できます。Amazon RDS はすべての MariaDB ログファイルをローテーションします。各タイプの間隔は以下のとおりです。

MariaDB ログは、Amazon RDS コンソール、Amazon RDS API、Amazon RDS CLI、または AWS SDK を通じて直接モニタリングできます。また、ログをメインデータベースのデータベーステーブルに書き込み、そのテーブルに対してクエリを実行することで、MariaDB ログにアクセスできます。mysqlbinlog ユーティリティを使用して、バイナリログをダウンロードできます。

ファイルベースのデータベースログの表示、ダウンロード、モニタリングの詳細については、「[Amazon RDS ログファイルのモニタリング](USER_LogAccess.md)」を参照してください。

**Topics**
+ [MariaDB エラーログにアクセスする](USER_LogAccess.MariaDB.Errorlog.md)
+ [MariaDB のスロークエリと一般ログにアクセスする](USER_LogAccess.MariaDB.Generallog.md)
+ [MariaDB ログを Amazon CloudWatch Logs に発行する](USER_LogAccess.MariaDB.PublishtoCloudWatchLogs.md)
+ [MariaDB のログのローテーションと保持](USER_LogAccess.MariaDB.LogFileSize.md)
+ [テーブルベースの MariaDB ログを管理する](Appendix.MariaDB.CommonDBATasks.Logs.md)
+ [MariaDB バイナリログ記録の設定](USER_LogAccess.MariaDB.BinaryFormat.md)
+ [MariaDB バイナリログにアクセスする](USER_LogAccess.MariaDB.Binarylog.md)
+ [MariaDB バイナリログ注釈の有効化](USER_LogAccess.MariaDB.BinarylogAnnotation.md)

# MariaDB エラーログにアクセスする
<a name="USER_LogAccess.MariaDB.Errorlog"></a>

MariaDB エラーログは `<host-name>.err` ファイルに書き込まれます。Amazon RDS コンソールを使用して、このファイルを表示できます。Amazon RDS API、Amazon RDS CLI、または AWS SDK を使用してログを取得することもできます。`<host-name>.err` ファイルは 5 分ごとにフラッシュされ、その内容は `mysql-error-running.log` に追加されます。その後、`mysql-error-running.log` ファイルは 1 時間ごとにローテーションされ、直前 24 時間内に 1 時間ごとに生成されたファイルが保持されます。各ログファイルには、それぞれ生成された時間 (UTC) がファイル名に付加されます。ログファイルには、タイムスタンプも付加され、ログエントリがいつ書き込まれたかを調べるために役立ちます。

MariaDB では、スタートアップ時、シャットダウン時、エラー検出時にのみエラーログへの書き込みが行われます。DB インスタンスでは、新しいエントリがエラーログに書き込まれないまま、数時間または数日が経過することがあります。最近のエントリがない場合、それは、サーバーにログエントリになるエラーが発生しなかったためです。

# MariaDB のスロークエリと一般ログにアクセスする
<a name="USER_LogAccess.MariaDB.Generallog"></a>

MariaDB のスロークエリログと一般ログは、DB パラメータグループのパラメータを設定することで、ファイルまたはデータベーステーブルに書き込むことができます。DB パラメータグループの作成と変更の詳細については、「[Amazon RDS のパラメータグループ](USER_WorkingWithParamGroups.md)」を参照してください。Amazon RDS コンソール、Amazon RDS API、AWS CLI、または AWS SDK を使用して、スロークエリログまたは一般ログを表示する前に、以下のパラメータを設定する必要があります。

以下のリストに示すパラメータを使用して MariaDB のログ記録を制御できます。
+ `slow_query_log` または `log_slow_query`: スロークエリログを作成するには、1 に設定します。デフォルトは 0 です。
+ `general_log`: 一般ログを作成するには、1 に設定します。デフォルトは 0 です。
+ `long_query_time` または `log_slow_query_time`: 高速で実行されるクエリがスロークエリログに記録されないようにするために、ログに記録されるクエリの最短実行時間の値を秒単位で指定します。デフォルトは 10 秒で、最小値は 0 です。log\$1output = FILE の場合は、マイクロ秒の精度になるように、浮動小数点値を指定できます。log\$1output = TABLE の場合は、秒の精度になるように、整数値を指定する必要があります。実行時間が `long_query_time` または `log_slow_query_time` の値を超えたクエリのみがログに記録されます。例えば、`long_query_time` または `log_slow_query_time` を 0.1 に設定すると、実行時間が 100 ミリ秒未満のすべてのクエリはログに記録されなくなります。
+ `log_queries_not_using_indexes`: インデックスを使用しないすべてのクエリをスロークエリログに記録するには、このパラメータを 1 に設定します。デフォルトは 0 です。インデックスを使用しないクエリは、その実行時間が `long_query_time` パラメータの値未満であってもログに記録されます。
+ `log_output option`: `log_output` パラメータに指定できるオプションは、次のとおりです。
  + **TABLE** (デフォルト) - 一般クエリを `mysql.general_log` テーブルに、スロークエリを `mysql.slow_log` テーブルに書き込みます。
  + **FILE** - 一般クエリログとスロークエリログの両方をファイルシステムに書き込みます。ログファイルは 1 時間ごとにローテーションされます。
  + **NONE** - ログ記録を無効にします。

ログ記録が有効になっている場合、Amazon RDS は、テーブルログのローテーションまたはログファイルの削除を定期的に実行します。これは、ログファイルが大きくなることでデータベースが使用できなくなったりパフォーマンスに影響する可能性を低く抑えるための予防措置です。ログ記録の `FILE` オプションと `TABLE` オプションでは、ローテーションと削除が次のように行われます。
+ `FILE` ログ記録が有効になっている場合、ログファイルの検査が 1 時間ごとに実行され、作成後 24 時間を超えた古いログファイルは削除されます。場合によっては、削除後の残りのログファイルの合計サイズが、DB インスタンスに割り当てられた領域のしきい値である 2 % を超えることがあります。この場合、ログファイルのサイズがしきい値以下になるまで、最も大きいログファイルから順に削除されます。
+ `TABLE` ロギングを有効化すると、24 時間ごとにログテーブルのローテーションが実行される場合があります。このログテーブルのローテーションは、テーブルログに使用されている領域が、割り当てられたストレージ領域の 20 % を超えると、実行されます。結合されたすべてのログのサイズが 10 GB を超える場合にも発生します。DB インスタンスに使用されている領域が、DB インスタンスに割り当てられたストレージ領域の 90% を超えている場合は、ログのローテーションを実行するためのしきい値が小さくなります。テーブルログに使用されている領域が、割り当てられたストレージ領域の 10% を超えると、ログテーブルのローテーションが実行されます。結合されたすべてのログのサイズが 5 GB を超えると、ログはローテーションされます。

  ログテーブルのローテーションが実行されると、現在のログテーブルがバックアップのログテーブルにコピーされ、現在のログテーブル内にあるエントリは削除されます。バックアップのログテーブルが既に存在する場合は、現在のログテーブルをバックアップにコピーする前に、削除されます。バックアップのログテーブルは、必要に応じて照会することができます。`mysql.general_log` テーブルに対するバックアップのログテーブルは、`mysql.general_log_backup` という名前になります。`mysql.slow_log` テーブルに対するバックアップのログテーブルは、`mysql.slow_log_backup` という名前になります。

  `mysql.general_log` テーブルのローテーションは、`mysql.rds_rotate_general_log` プロシージャを呼び出すことで実行できます。`mysql.slow_log` テーブルのローテーションは、`mysql.rds_rotate_slow_log` プロシージャを呼び出すことで実行できます。

  データベースバージョンのアップグレード時にも、テーブルログのローテーションが実行されます。

Amazon RDS では、`TABLE` ログおよび `FILE` ログのローテーションが Amazon RDS イベントで記録され、ユーザーに通知が送信されます。

Amazon RDS コンソール、Amazon RDS API、Amazon RDS CLI、または AWS SDK からログを使用するには、`log_output` パラメータを FILE に設定します。MariaDB エラーログと同様、これらのログファイルは 1 時間ごとにローテーションされます。直前 24 時間以内に生成されたログファイルが保持されます。

スロークエリと一般ログの詳細については、MariaDB のドキュメントの以下のトピックを参照してください。
+ [スロークエリログ](http://mariadb.com/kb/en/mariadb/slow-query-log/)
+ [一般クエリログ](http://mariadb.com/kb/en/mariadb/general-query-log/)

# MariaDB ログを Amazon CloudWatch Logs に発行する
<a name="USER_LogAccess.MariaDB.PublishtoCloudWatchLogs"></a>

MariaDB DB インスタンスを設定して、ログデータを Amazon CloudWatch Logs のロググループに発行することができます。CloudWatch Logs を使用すると、ログデータのリアルタイム分析や、CloudWatch を使用したアラームの作成、メトリクスの表示を行うことができます。CloudWatch Logs を使用して、耐久性の高いストレージにログレコードを格納できます。

Amazon RDS は、各 MariaDB データベースログを、ロググループの別個のデータストリーミングとして発行します。例えば、エクスポート関数を設定して、スロークエリログを含んでいるとします。次に、スロークエリデータは、`/aws/rds/instance/my_instance/slowquery` ロググループのスロークエリログストリームに保存されます。

エラーログはデフォルトで有効になります。他の MariaDB ログの要件の概要を次の表に示します。


| ログ | 要件 | 
| --- | --- | 
|  監査ログ  |  DB インスタンスは、`MARIADB_AUDIT_PLUGIN` オプションを指定したカスタムオプショングループを使用する必要があります。  | 
|  全般ログ  |  DB インスタンスは、パラメータ設定 `general_log = 1` を指定して一般ログを有効にしたカスタムパラメータグループを使用する必要があります。  | 
|  スロークエリログ  |  DB インスタンスは、パラメータ設定 `slow_query_log = 1` または `log_slow_query = 1` を指定してスロークエリログを有効にしたカスタムパラメータグループを使用する必要があります。  | 
|  IAM データベース認証エラーログ  |  DB インスタンスを作成または変更して、DB インスタンスのログタイプ `iam-db-auth-error` を有効にする必要があります。  | 
|  ログ出力  |  DB インスタンスは、パラメータ設定 `log_output = FILE` を指定してログをファイルシステムに書き込み、CloudWatch Logs に発行するカスタムパラメータグループを使用する必要があります。  | 

## コンソール
<a name="USER_LogAccess.MariaDB.PublishtoCloudWatchLogs.CON"></a>

**コンソールから CloudWatch Logs に MariaDB ログを発行するには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**データベース**] を選択し、変更する DB インスタンスを選択します。

1. [**Modify**] を選択します。

1. [**ログのエクスポート**] セクションで、CloudWatch Logs に公開するログを選択します。

1. [**続行**] を選択し、概要ページで [**Modify DB Instance**] (DB インスタンスの変更) を選択します。

## AWS CLI
<a name="USER_LogAccess.MariaDB.PublishtoCloudWatchLogs.CLI"></a>

MariaDB ログは、AWS CLI を使用して発行することができます。以下のパラメータを使用して、[https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) コマンドを呼び出せます。
+ `--db-instance-identifier`
+ `--cloudwatch-logs-export-configuration`

**注記**  
`--cloudwatch-logs-export-configuration` オプションへの変更は常に DB インスタンスに即時適用されます。それで、`--apply-immediately` と `--no-apply-immediately` オプションは効果がありません。

以下の AWS CLI コマンドを呼び出すことで MariaDB ログを発行することもできます。
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)

以下のオプションを使用して、この AWS CLI コマンドの 1 つを実行します。
+ `--db-instance-identifier`
+ `--enable-cloudwatch-logs-exports`
+ `--db-instance-class`
+ `--engine`

実行する AWS CLI コマンドに応じて、他のオプションが必要となる場合があります。

**Example**  
次の例では、ログファイルが CloudWatch Logs に発行されるよう既存の MariaDB DB インスタンスを変更します。`--cloudwatch-logs-export-configuration` 値は JSON オブジェクトです。このオブジェクトのキーは `EnableLogTypes` であり、値は `audit`、`error`、`general`、および `slowquery` を任意に組み合わせた文字列の配列です。  
Linux、macOS、Unix の場合:  

```
1. aws rds modify-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit","error","general","slowquery"]}'
```
Windows の場合:  

```
1. aws rds modify-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit","error","general","slowquery"]}'
```

**Example**  
次のコマンドでは、MariaDB DB インスタンスを作成してログファイルを CloudWatch Logs に発行します。`--enable-cloudwatch-logs-exports` 値は、JSON 形式の文字列の配列です。この文字列は `audit`、`error`、`general` および `slowquery` の任意の組み合わせです。  
Linux、macOS、Unix の場合:  

```
1. aws rds create-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --enable-cloudwatch-logs-exports '["audit","error","general","slowquery"]' \
4.     --db-instance-class db.m4.large \
5.     --engine mariadb
```
Windows の場合:  

```
1. aws rds create-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --enable-cloudwatch-logs-exports '["audit","error","general","slowquery"]' ^
4.     --db-instance-class db.m4.large ^
5.     --engine mariadb
```

## RDS API
<a name="USER_LogAccess.MariaDB.PublishtoCloudWatchLogs.API"></a>

MariaDB ログは、RDS API を使用して発行することができます。以下のパラメータを指定して [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) オペレーションを呼び出します。
+ `DBInstanceIdentifier`
+ `CloudwatchLogsExportConfiguration`

**注記**  
`CloudwatchLogsExportConfiguration` パラメータへの変更は常に DB インスタンスに即時適用されます。それで、`ApplyImmediately` パラメータは効果がありません。

以下の RDS API オペレーションを呼び出すことで MariaDB ログを発行することもできます。
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html)

以下のパラメータでこの RDS API オペレーションの 1 つを実行します。
+ `DBInstanceIdentifier`
+ `EnableCloudwatchLogsExports`
+ `Engine`
+ `DBInstanceClass`

実行する AWS CLI コマンドに応じて、他のパラメータが必要となる場合があります。

# MariaDB のログのローテーションと保持
<a name="USER_LogAccess.MariaDB.LogFileSize"></a>

ログ記録が有効になっている場合、Amazon RDS は、テーブルログのローテーションまたはログファイルの削除を定期的に実行します。これは、ログファイルが大きくなることでデータベースが使用できなくなったりパフォーマンスに影響する可能性を低く抑えるための予防措置です。

MariaDB のスロークエリログ、エラーログ、一般ログファイルのサイズは、DB インスタンスに割り当てられたストレージ領域の 2 パーセント以下に制約されます。このしきい値を維持するために、ログは 1 時間ごとに自動的にローテーションされ、24 時間以上前の古いログファイルは削除されます。古いログファイルを削除した後、ログファイルの合計サイズがしきい値を超えている場合、ログファイルのサイズがしきい値以下になるまで、最も大きいログファイルから順に削除されます。

Amazon RDS は、10 MB を超える IAM データベース認証エラーログファイルをローテーションします。Amazon RDS は、5 日以上経過しているか、100 MB を超える IAM データベース認証エラーログファイルを削除します。

# テーブルベースの MariaDB ログを管理する
<a name="Appendix.MariaDB.CommonDBATasks.Logs"></a>

DB インスタンスのテーブルに一般ログとスロークエリログを移動できます。そのためには、DB パラメータグループを作成し、`log_output` サーバーパラメータを `TABLE` に設定します。その後、一般クエリは `mysql.general_log` テーブルに記録され、スロークエリは `mysql.slow_log` テーブルに記録されます。それらのテーブルに対してクエリを実行することでログの情報にアクセスできます。このログ記録を有効にすると、データベースに書き込まれるデータの量が増え、パフォーマンスが低下することがあります。

一般ログもスロークエリログもデフォルトで無効になっています。テーブルへのログ記録を有効にするには、以下のサーバーパラメータを `1` に設定する必要もあります。
+ `general_log`
+ `slow_query_log`、または `log_slow_query`

ログテーブルは、それぞれのログ記録アクティビティのパラメータを `0` にリセットしてログ記録をオフにするまで、拡大し続けます。大量のデータが長期にわたって蓄積されることがよくあり、割り当てストレージ領域の大部分を使い果たすことがあります。Amazon RDS では、ログテーブルを切り詰めることはできませんが、その内容を移動することはできます。テーブルのローテーションにより、その内容がバックアップテーブルに保存され、新しい空のログテーブルが作成されます。以下のコマンドラインプロシージャを使用して、ログテーブルを手動でローテーションされることができます。ここで表示されている `PROMPT>` はコマンドプロンプトです。

```
PROMPT> CALL mysql.rds_rotate_slow_log;
PROMPT> CALL mysql.rds_rotate_general_log;
```

 以前のデータを完全に削除し、ディスク領域を再利用するには、該当するプロシージャを 2 回連続で呼び出します。

# MariaDB バイナリログ記録の設定
<a name="USER_LogAccess.MariaDB.BinaryFormat"></a>

*バイナリログ*は、MariaDB サーバーインスタンスで行われたデータ変更に関する情報を含む、一連のログファイルです。バイナリログには、以下のような情報が含まれています。
+ テーブルの作成や行の変更など、データベースの変更が記述されたイベント
+ データを更新した各ステートメントの実行時間に関する情報
+ データを更新する可能性があったものの、それが実行されていないステートメントのイベント

バイナリログには、レプリケーション中に送信されるステートメントが記録されます。また、一部のリカバリオペレーションにもバイナリログが必要です。詳細については、MariaDB のドキュメントの「[Binary Log](https://mariadb.com/kb/en/binary-log/)」を参照してください。

自動バックアップ機能では、MariaDB のバイナリログ記録を有効にするか無効にするかを決定します。次のオプションがあります。

バイナリログ記録を有効にするには  
バックアップ保持期間を 0 以外の正の値に設定します。

バイナリログ記録を無効にするには  
[バックアップ保持期間] を 0 に設定します。

詳細については、「[自動バックアップの有効化](USER_WorkingWithAutomatedBackups.Enabling.md)」を参照してください。

Amazon RDS の MariaDB は*行ベース*、*ステートメントベース*、および*混合*のバイナリログ記録形式をサポートしています。デフォルトのバイナリログ形式は*混合*です。さまざまな MariaDB のバイナリログ形式の詳細については、MariaDB ドキュメントの「[バイナリログ形式](http://mariadb.com/kb/en/mariadb/binary-log-formats/)」を参照してください。

レプリケーションを使用する予定の場合は、バイナリログ形式が重要です。これは、ソースに記録されてレプリケーションターゲットに送信されるデータ変更記録が決定されるからです。レプリケーション用のさまざまなバイナリログ記録形式の利点と欠点についての詳細は、MySQL ドキュメントの「[Advantages and Disadvantages of Statement-Based and Row-Based Replication](https://dev.mysql.com/doc/refman/5.7/en/replication-sbr-rbr.html)」を参照してください。

**重要**  
バイナリログ形式を行ベースに設定すると、バイナリログファイルが巨大になることがあります。巨大なバイナリログファイルにより、DB インスタンスの使用可能なストレージの量が減ります。また、DB インスタンスの復元オペレーションの実行にかかる時間が長くなることがあります。  
ステートメントベースのレプリケーションは、ソース DB インスタンスとリードレプリカの間の不整合の原因になります。詳細については、MariaDB ドキュメントの「[Unsafe Statements for Statement-based Replication](https://mariadb.com/kb/en/library/unsafe-statements-for-statement-based-replication/)」を参照してください。  
バイナリログを有効にすると、DB インスタンスへの書き込みディスク I/O 操作の回数が増えます。`WriteIOPS` CloudWatch メトリクスを使用して、IOPS の使用状況をモニタリングできます。

**MariaDB バイナリログ形式を設定するには**

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

1. ナビゲーションペインで、[**パラメータグループ**] を選択します。

1. 変更する DB インスタンスに使用されているパラメータグループを選択します。

   デフォルトのパラメータグループを変更することはできません。DB インスタンスがデフォルトのパラメータグループを使用している場合、新しいパラメータグループを作成し DB インスタンスと関連付けます。

   DB パラメータグループの詳細については、「[Amazon RDS のパラメータグループ](USER_WorkingWithParamGroups.md)」を参照してください。

1. [**Parameter group actions (パラメータグループのアクション)**] で、[**編集**] を選択します。

1. `binlog_format` パラメータを、選択したバイナリログ記録形式 (**ROW**、**STATEMENT**、または **MIXED**) に設定します。

   DB インスタンスのバックアップ保持期間をゼロに設定することでバイナリログを無効にできますが、これによって毎日の自動バックアップは無効になります。自動バックアップを無効にすると、`log_bin` セッション変数がオフまたは無効になります。これにより、RDS for MariaDB DB インスタンスのバイナリログ記録が無効になり、`binlog_format` セッション変数がデータベースのデフォルト値の `ROW` にリセットされます。バックアップを無効にしないことをお勧めします。**バックアップ保持期間**の設定の詳細については、「[DB インスタンスの設定](USER_ModifyInstance.Settings.md)」を参照してください。

1. [**変更の保存**] を選択して、更新を DB パラメータグループに保存します。

`binlog_format` パラメータは RDS for MariaDB では動的であるため、変更を適用するために DB インスタンスを再起動する必要はありません。

**重要**  
DB パラメータグループを変更すると、そのパラメータグループを使用するすべての DB インスタンスに影響を与えます。AWS リージョン内の異なる MariaDB DB インスタンスに対して異なるバイナリログ形式を指定する場合、DB インスタンスは異なる DB パラメータグループを使用する必要があります。これらのパラメータグループは、さまざまなログ形式を識別します。各 DB インスタンスに適切な DB パラメータグループを割り当てます。

# MariaDB バイナリログにアクセスする
<a name="USER_LogAccess.MariaDB.Binarylog"></a>

mysqlbinlog ユーティリティを使用して、バイナリログをテキスト形式で MariaDB DB インスタンスからダウンロードできます。バイナリログは、お使いのコンピュータにダウンロードされます。mysqlbinlog ユーティリティの使用の詳細については、MariaDB ドキュメントの「[mysqlbinlog を使用する](http://mariadb.com/kb/en/mariadb/using-mysqlbinlog/)」を参照してください。

 Amazon RDS インスタンスに対して mysqlbinlog ユーティリティを実行するには、以下のオプションを使用します。
+  `--read-from-remote-server` オプションを指定します。
+  `--host`: インスタンスのエンドポイントからの DNS 名を指定します。
+  `--port`: インスタンスによって使用されるポートを指定します。
+  `--user`: レプリケーションスレーブアクセス許可を付与された MariaDB ユーザーを指定します。
+  `--password`: ユーザーのパスワードを指定するか、パスワード値を省略します。省略した場合、ユーティリティによってパスワードの入力を求められます。
+  `--result-file`: 出力を受け取るローカルファイルを指定します。
+ 1 つ以上のバイナリログファイルの名前を指定します。使用可能なログのリストを取得するには、SQL コマンド SHOW BINARY LOGS を使用します。

mysqlbinlog オプションの詳細については、MariaDB ドキュメントの「[mysqlbinlog オプション](http://mariadb.com/kb/en/mariadb/mysqlbinlog-options/)」を参照してください。

 以下に例を示します。

Linux、macOS、Unix の場合:

```
mysqlbinlog \
    --read-from-remote-server \
    --host=mariadbinstance1.1234abcd.region.rds.amazonaws.com \
    --port=3306  \
    --user ReplUser \
    --password <password> \
    --result-file=/tmp/binlog.txt
```

Windows の場合:

```
mysqlbinlog ^
    --read-from-remote-server ^
    --host=mariadbinstance1.1234abcd.region.rds.amazonaws.com ^
    --port=3306  ^
    --user ReplUser ^
    --password <password> ^
    --result-file=/tmp/binlog.txt
```

Amazon RDS では、通常、バイナリログはできる限り早く消去されます。ただし、バイナリログは、mysqlbinlog によってアクセスされるインスタンスで引き続き使用可能である必要があります。RDS がバイナリログを保持する時間数を指定するには、`mysql.rds_set_configuration` ストアドプロシージャを使用します。ログをダウンロードするのに十分な期間を指定してください。保持期間を設定したら、DB インスタンスのストレージ使用状況をモニタリングして、保持されたバイナリログに必要以上の容量が使用されないようにします。

以下の例では、保持期間を 1 日に設定しています。

```
call mysql.rds_set_configuration('binlog retention hours', 24); 
```

現在の設定を表示するには、`mysql.rds_show_configuration` ストアドプロシージャを使用します。

```
call mysql.rds_show_configuration; 
```

# MariaDB バイナリログ注釈の有効化
<a name="USER_LogAccess.MariaDB.BinarylogAnnotation"></a>

MariaDB DB インスタンスでは、`Annotate_rows` イベントを使用して列イベントを引き起こした SQL クエリのコピーで行イベントに注釈を追加できます。この方法では、RDS for MySQL DB インスタンスの `binlog_rows_query_log_events` パラメータを有効にするのと同様の機能を提供します。

カスタムパラメータグループを作成し `binlog_annotate_row_events` パラメータを **1** に設定することで、バイナリログの注釈をグローバルに有効にすることができます。`SET SESSION binlog_annotate_row_events = 1` を呼び出すことで、セッションレベルで注釈を有効化することもできます。バイナリログがレプリカインスタンスで有効になっている場合は、`replicate_annotate_row_events` を使用してバイナリログの注釈をレプリカインスタンスにレプリケートします。これらの設定に特別な権限を使用する必要はありません。

次に MariaDB での行ベースの処理の例を示します。行ベースログの使用は、トランザクションの分離レベルをコミット済み読み取りに設定することで起動されます。

```
CREATE DATABASE IF NOT EXISTS test;
USE test;
CREATE TABLE square(x INT PRIMARY KEY, y INT NOT NULL) ENGINE = InnoDB;
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
BEGIN
INSERT INTO square(x, y) VALUES(5, 5 * 5);
COMMIT;
```

注釈なしのトランザクションのバイナリログエントリは次のようになります。

```
BEGIN
/*!*/;
# at 1163
# at 1209
#150922  7:55:57 server id 1855786460  end_log_pos 1209         Table_map: `test`.`square` mapped to number 76
#150922  7:55:57 server id 1855786460  end_log_pos 1247         Write_rows: table id 76 flags: STMT_END_F
### INSERT INTO `test`.`square`
### SET
###   @1=5
###   @2=25
# at 1247
#150922  7:56:01 server id 1855786460  end_log_pos 1274         Xid = 62
COMMIT/*!*/;
```

次のステートメントでは、同じのトランザクションのセッションレベルの注釈を有効にし、トランザクションをコミットした後に無効にしています。

```
CREATE DATABASE IF NOT EXISTS test;
USE test;
CREATE TABLE square(x INT PRIMARY KEY, y INT NOT NULL) ENGINE = InnoDB;
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
SET SESSION binlog_annotate_row_events = 1;
BEGIN;
INSERT INTO square(x, y) VALUES(5, 5 * 5);
COMMIT;
SET SESSION binlog_annotate_row_events = 0;
```

注釈ありのトランザクションのバイナリログエントリは次のようになります。

```
BEGIN
/*!*/;
# at 423
# at 483
# at 529
#150922  8:04:24 server id 1855786460  end_log_pos 483  Annotate_rows:
#Q> INSERT INTO square(x, y) VALUES(5, 5 * 5)
#150922  8:04:24 server id 1855786460  end_log_pos 529  Table_map: `test`.`square` mapped to number 76
#150922  8:04:24 server id 1855786460  end_log_pos 567  Write_rows: table id 76 flags: STMT_END_F
### INSERT INTO `test`.`square`
### SET
###   @1=5
###   @2=25
# at 567
#150922  8:04:26 server id 1855786460  end_log_pos 594  Xid = 88
COMMIT/*!*/;
```

# Amazon RDS for Microsoft SQL Server データベースのログファイル
<a name="USER_LogAccess.Concepts.SQLServer"></a>

Amazon RDS コンソール、AWS CLI、または RDS API を使用して、Microsoft SQL Server のエラーログ、エージェントログ、トレースファイル、ダンプファイルにアクセスできます。ファイルベースのデータベースログの表示、ダウンロード、モニタリングの詳細については、「[Amazon RDS ログファイルのモニタリング](USER_LogAccess.md)」を参照してください。

## 保持期間スケジュール
<a name="USER_LogAccess.Concepts.SQLServer.Retention"></a>

ログファイルは、毎日、および DB インスタンスが再開されるたびにローテーションされます。以下は、Amazon RDS の Microsoft SQL Server ログの保持期間スケジュールです。


****  

| ログタイプ | 保持期間スケジュール | 
| --- | --- | 
|  エラーログ  |  最大 30 のエラーログを保持します。Amazon RDS は 7 日を経過したエラーログを削除する場合があります。  | 
|  エージェントログ  |  最大 10 のエージェントログを保持します。Amazon RDS は 7 日を経過したエージェントログを削除する場合があります。  | 
|  トレースファイル  |  トレースファイルは、DB インスタンスのトレースファイル保持期間に応じて保持されます。トレースファイルのデフォルトの保持期間は 7 日です。DB インスタンスのトレースファイル保持期間を変更するには、「[トレースファイルおよびダンプファイルの保持期間を設定する](Appendix.SQLServer.CommonDBATasks.TraceFiles.md#Appendix.SQLServer.CommonDBATasks.TraceFiles.PurgeTraceFiles)」を参照してください。  | 
|  ダンプファイル  |  ダンプファイルは、DB インスタンスのダンプファイル保持期間に応じて保持されます。ダンプファイルのデフォルトの保持期間は 7 日です。DB インスタンスのダンプファイル保持期間を変更するには、「[トレースファイルおよびダンプファイルの保持期間を設定する](Appendix.SQLServer.CommonDBATasks.TraceFiles.md#Appendix.SQLServer.CommonDBATasks.TraceFiles.PurgeTraceFiles)」を参照してください。  | 

## rds\$1read\$1error\$1log プロシージャを使用して SQL Server エラーログを表示する
<a name="USER_LogAccess.Concepts.SQLServer.Proc"></a>

エラーログおよびエージェントログを表示するには、Amazon RDS ストアドプロシージャ `rds_read_error_log` を使用できます。詳細については、「[エラーログとエージェントログの表示](Appendix.SQLServer.CommonDBATasks.Logs.md#Appendix.SQLServer.CommonDBATasks.Logs.SP)」を参照してください。

## Amazon CloudWatch Logs への SQL Server ログの発行
<a name="USER_LogAccess.SQLServer.PublishtoCloudWatchLogs"></a>

Amazon RDS for SQL Server ではエラーおよびエージェントログを直接 Amazon CloudWatch Logs に発行できます。CloudWatch Logs を使用してログデータを分析し、CloudWatch を使用してアラームを作成し、メトリクスを表示することができます。

CloudWatch Logs では、次のことを実行できます。
+ ログは、ユーザーが定義する保持期間で耐久性の高いストレージ領域に保存します。
+ ログデータを検索しフィルタリングします。
+ アカウント間でログデータを共有します。
+ ログを Amazon S3 にエクスポートします。
+ Amazon OpenSearch Service へのデータのストリーミング
+ Amazon Kinesis Data Streams を使用してログデータをリアルタイムで処理します。詳細については、「*Amazon Managed Service for Apache Flink for Apache Flink デベロッパーガイド*」内の「[Amazon CloudWatch Logs の使用](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/cloudwatch-logs.html)」を参照してください。

 Amazon RDS は、各 SQL Server データベースログを、ロググループの別個のデータストリーミングとして発行します。例えば、エージェントログとエラーログを発行した場合、エラーデータは `/aws/rds/instance/my_instance.node1/error` ロググループのエラーログストリームに保存され、エージェントログデータは `/aws/rds/instance/my_instance.node1/agent` ロググループに保存されます。

マルチ AZ DB インスタンスの場合、Amazon RDS はデータベースログをロググループ内の 2 つの独立したストリームとして公開します。例えば、エラーログを発行する場合、エラーデータは `/aws/rds/instance/my_instance.node1/error` および `/aws/rds/instance/my_instance.node2/error` のエラーログストリームに保存されます。ログストリームはフェイルオーバー中でも変更されず、各ノードのエラーログストリームには、プライマリインスタンスまたはセカンダリインスタンスのエラーログを含めることができます。マルチ AZ では、ログストリームは自動的に作成され、`/aws/rds/instance/my_instance/rds-events` は DB インスタンスのフェイルオーバーなどのイベントデータを保存します。

**注記**  
SQL Server ログの CloudWatch Logs への発行はデフォルトでは有効にされていません。トレースファイルおよびダンプファイルの発行はサポートされていません。SQL Server ログの CloudWatch Logs への発行は、すべてのリージョンでサポートされています。

### コンソール
<a name="USER_LogAccess.SQLServer.PublishtoCloudWatchLogs.console"></a>

**AWS マネジメントコンソール から CloudWatch Logs に SQL Server DB ログを公開するには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**データベース**] を選択し、変更する DB インスタンスを選択します。

1. [**Modify**] を選択します。

1. [**ログのエクスポート**] セクションで、CloudWatch Logs に公開するログを選択します。

   **エージェントログ**、**エラーログ**、またはその両方を選択できます。

1. [**続行**] を選択し、概要ページで [**Modify DB Instance**] (DB インスタンスの変更) を選択します。

### AWS CLI
<a name="USER_LogAccess.SQLServer.PublishtoCloudWatchLogs.CLI"></a>

Oracle ログを発行するには、以下のパラメータを指定して [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) コマンドを使用します。
+ `--db-instance-identifier`
+ `--cloudwatch-logs-export-configuration`

**注記**  
`--cloudwatch-logs-export-configuration` オプションへの変更は常に DB インスタンスに即時適用されます。それで、`--apply-immediately` と `--no-apply-immediately` オプションは効果がありません。

以下のコマンドを使用して SQL Server ログを発行することもできます。
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)

**Example**  
次の例では、CloudWatch Logs の発行を有効にした SQL Server DB インスタンスを作成します。`--enable-cloudwatch-logs-exports` 値は、`error`、`agent`、または両方を含むことができる JSON 文字列です。  
Linux、macOS、Unix の場合:  

```
aws rds create-db-instance \
    --db-instance-identifier mydbinstance \
    --enable-cloudwatch-logs-exports '["error","agent"]' \
    --db-instance-class db.m4.large \
    --engine sqlserver-se
```
Windows の場合:  

```
aws rds create-db-instance ^
    --db-instance-identifier mydbinstance ^
    --enable-cloudwatch-logs-exports "[\"error\",\"agent\"]" ^
    --db-instance-class db.m4.large ^
    --engine sqlserver-se
```
Windows コマンドプロンプトを使用する場合、JSON コードでは、二重引用符 (") の前にバックスラッシュ (\$1) を付けてエスケープする必要があります。

**Example**  
次の例では、ログファイルが CloudWatch Logs に発行されるよう既存の SQL Server DB インスタンスを変更します。`--cloudwatch-logs-export-configuration` 値は JSON オブジェクトです。このオブジェクトのキーは `EnableLogTypes` であり、その値は `error`、`agent`、または両方を含む文字列の配列です。  
Linux、macOS、Unix の場合:  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '{"EnableLogTypes":["error","agent"]}'
```
Windows の場合:  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration "{\"EnableLogTypes\":[\"error\",\"agent\"]}"
```
Windows コマンドプロンプトを使用する場合、JSON コードでは、二重引用符 (") の前にバックスラッシュ (\$1) を付けてエスケープする必要があります。

**Example**  
次の例では、既存の SQL Server DB インスタンスを変更して、ログファイルを CloudWatch Logs に発行できないようにします。`--cloudwatch-logs-export-configuration` 値は JSON オブジェクトです。このオブジェクトのキーは `DisableLogTypes` であり、その値は `error`、`agent`、または両方を含む文字列の配列です。  
Linux、macOS、Unix の場合:  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '{"DisableLogTypes":["agent"]}'
```
Windows の場合:  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration "{\"DisableLogTypes\":[\"agent\"]}"
```
Windows コマンドプロンプトを使用する場合、JSON コードでは、二重引用符 (") の前にバックスラッシュ (\$1) を付けてエスケープする必要があります。

# MySQL データベースのログファイル
<a name="USER_LogAccess.Concepts.MySQL"></a>

 MySQL ログは、Amazon RDS コンソール、Amazon RDS API、AWS CLI、または AWS SDK を通じて直接モニタリングできます。また、ログをメインデータベースのデータベーステーブルに書き込み、そのテーブルに対してクエリを実行することで、MySQL ログにアクセスできます。mysqlbinlog ユーティリティを使用して、バイナリログをダウンロードできます。

ファイルベースのデータベースログの表示、ダウンロード、モニタリングの詳細については、「[Amazon RDS ログファイルのモニタリング](USER_LogAccess.md)」を参照してください。

**Topics**
+ [RDS for MySQL データベースログの概要](USER_LogAccess.MySQL.LogFileSize.md)
+ [Amazon CloudWatch Logs への MySQL ログの発行](USER_LogAccess.MySQLDB.PublishtoCloudWatchLogs.md)
+ [テーブルへの MySQL ログ出力の送信](Appendix.MySQL.CommonDBATasks.Logs.md)
+ [シングル AZ データベースの RDS for MySQL バイナリログの設定](USER_LogAccess.MySQL.BinaryFormat.md)
+ [マルチ AZ DB クラスターの MySQL バイナリログ記録の設定](USER_Binlog.MultiAZ.md)
+ [MySQL バイナリログにアクセスする](USER_LogAccess.MySQL.Binarylog.md)

# RDS for MySQL データベースログの概要
<a name="USER_LogAccess.MySQL.LogFileSize"></a>

次の種類の RDS for MySQL ログファイルをモニタリングできます。
+ エラーログ
+ スロークエリログ
+ 全般ログ
+ 監査ログ
+ インスタンスログ
+ IAM データベース認証エラーログ

RDS for MySQL のエラーログはデフォルトで生成されます。DB パラメータグループにパラメータを設定することで、低速クエリと一般ログを生成できます。

**Topics**
+ [RDS for MySQL エラーログ](#USER_LogAccess.MySQL.Errorlog)
+ [RDS for MySQL のスロークエリと一般ログ](#USER_LogAccess.MySQL.Generallog)
+ [MySQL 監査ログ](#USER_LogAccess.MySQL.Auditlog)
+ [RDS for MySQL のログのローテーションと保持](#USER_LogAccess.MySQL.LogFileSize.retention)
+ [REDO ログのサイズ制限](#USER_LogAccess.MySQL.LogFileSize.RedoLogs)

## RDS for MySQL エラーログ
<a name="USER_LogAccess.MySQL.Errorlog"></a>

RDS for MySQL は `mysql-error.log` ファイルにエラーを書き込みます。各ログファイルには、それぞれ生成された時間 (UTC) がファイル名に付加されます。ログファイルには、タイムスタンプも付加され、ログエントリがいつ書き込まれたかを調べるために役立ちます。

RDS for MySQL では起動時、シャットダウン時、およびエラー検出時にのみ、エラーログへの書き込みが行われます。DB インスタンスでは、新しいエントリがエラーログに書き込まれないまま、数時間または数日が経過することがあります。最近のエントリがない場合、それは、サーバーにログエントリになり得るエラーが発生しなかったためです。

設計上、エラーログはフィルタリングされ、エラーなどの予期しないイベントのみが表示されます。ただし、エラーログには、クエリの進行状況など、表示されない追加のデータベース情報も含まれています。したがって、実際のエラーがなくても、継続的なデータベースアクティビティのためにエラーログのサイズが増加する可能性があります。また、AWS マネジメントコンソール のエラーログには特定のサイズがバイト単位またはキロバイト単位で表示されている場合がありますが、ダウンロードすると 0 バイトになる場合があります。

RDS for MySQL は 5 分ごとに `mysql-error.log` をディスクに書き込みます。ログの内容が `mysql-error-running.log` に追加されます。

RDS for MySQL は `mysql-error-running.log` ファイルを 1 時間ごとにローテーションします。過去 2 週間に生成されたログが保持されます。

**注記**  
ログの保持期間は、Amazon RDS と Aurora で異なります。

## RDS for MySQL のスロークエリと一般ログ
<a name="USER_LogAccess.MySQL.Generallog"></a>

 RDS for MySQL のスロークエリログと一般ログを、ファイルまたはデータベーステーブルに書き込めます。このためには、DB パラメータグループにパラメータを設定します。DB パラメータグループの作成と変更の詳細については、「[Amazon RDS のパラメータグループ](USER_WorkingWithParamGroups.md)」を参照してください。Amazon RDS コンソール、Amazon RDS API、Amazon RDS CLI、または AWS SDK を使用して、スロークエリログまたは一般ログを表示する前に、以下のパラメータを設定する必要があります。

以下のリストに示すパラメータを使用して RDS for MySQL のログ記録を制御できます。
+ `slow_query_log`: スロークエリログを作成するには、1 に設定します。デフォルトは 0 です。
+ `general_log`: 一般ログを作成するには、1 に設定します。デフォルトは 0 です。
+ `long_query_time`: ファストクエリがスロークエリログに記録されないようにするために、ログに記録されるクエリの最短実行時間の値を秒単位で指定します。デフォルトは 10 秒で、最小値は 0 です。log\$1output = FILE の場合は、マイクロ秒の精度になるように、浮動小数点値を指定できます。log\$1output = TABLE の場合は、秒の精度になるように、整数値を指定する必要があります。実行時間が `long_query_time` の値を超えたクエリのみがログに記録されます。例えば、`long_query_time` を 0.1 に設定すると、実行時間が 100 ミリ秒未満のすべてのクエリはログに記録されなくなります。
+ `log_queries_not_using_indexes`: インデックスを使用しないすべてのクエリをスロークエリログに記録するには、1 に設定します。インデックスを使用しないクエリは、その実行時間が `long_query_time` パラメータの値未満であってもログに記録されます。デフォルトは 0 です。
+ `log_output option`: `log_output` パラメータに指定できるオプションは、次のとおりです。
  + **TABLE** (デフォルト)  - 一般クエリを `mysql.general_log` テーブルに、スロークエリを `mysql.slow_log` テーブルに書き込みます。
  + **FILE** - 一般クエリログとスロークエリログの両方をファイルシステムに書き込みます。
  + **NONE** - ログ記録を無効にします。

スロークエリデータを Amazon CloudWatch Logs に表示するには、次の条件を満たす必要があります。
+ スロークエリログを含むように CloudWatch Logs を設定する必要があります。
+ `slow_query_log` を有効にする必要があります。
+ `log_output`/ を に設定する必要があります。`FILE`
+ クエリに要する時間が、`long_query_time` に設定された時間よりも長い必要があります。

スロークエリと一般ログの詳細については、MySQL ドキュメントの以下のトピックを参照してください。
+ [スロークエリログ](https://dev.mysql.com/doc/refman/8.0/en/slow-query-log.html)
+ [一般クエリログ](https://dev.mysql.com/doc/refman/8.0/en/query-log.html)

## MySQL 監査ログ
<a name="USER_LogAccess.MySQL.Auditlog"></a>

監査ログにアクセスするには、DB インスタンスは `MARIADB_AUDIT_PLUGIN` オプションを指定してカスタムオプショングループを使用する必要があります。詳細については、「[MySQL に対する MariaDB 監査プラグインのサポート](Appendix.MySQL.Options.AuditPlugin.md)」を参照してください。

## RDS for MySQL のログのローテーションと保持
<a name="USER_LogAccess.MySQL.LogFileSize.retention"></a>

ログ記録が有効になっている場合、Amazon RDS は、テーブルログのローテーションまたはログファイルの削除を定期的に実行します。これは、ログファイルが大きくなることでデータベースが使用できなくなったりパフォーマンスに影響する可能性を低く抑えるための予防措置です。RDS for MySQL は、次のようにローテーションと削除を処理します。
+ MySQL のスロークエリログ、エラーログ、一般ログファイルのサイズは、DB インスタンスに割り当てられたストレージ領域の 2 パーセント以下に制約されます。このしきい値を維持するために、ログは 1 時間ごとに自動的にローテーションされます。MySQL は、使用が 2 週間を超えたログファイルを削除します。古いログファイルを削除した後、ログファイルの合計サイズがしきい値を超えている場合、ログファイルのサイズがしきい値以下になるまで、最も古いログファイルから順に削除されます。
+ `FILE` ログ記録が有効になっている場合、ログファイルの検査が 1 時間ごとに実行され、作成後 2 週間を超えたログファイルは削除されます。場合によっては、削除後の残りのログファイルの合計サイズが、DB インスタンスに割り当てられた領域のしきい値である 2 % を超えることがあります。この場合、ログファイルのサイズがしきい値以下になるまで、最も古いログファイルから順に削除されます。
+ `TABLE` ロギングを有効化すると、24 時間ごとにログテーブルのローテーションが実行される場合があります。このログテーブルのローテーションは、テーブルログに使用されている領域が、割り当てられたストレージ領域の 20 % を超えると、実行されます。結合されたすべてのログのサイズが 10 GB を超える場合にも発生します。DB インスタンスに使用されている領域が、DB インスタンスに割り当てられたストレージ領域の 90% を超えている場合は、ログのローテーションを実行するためのしきい値が小さくなります。テーブルログに使用されている領域が、割り当てられたストレージ領域の 10% を超えると、ログテーブルのローテーションが実行されます。結合されたすべてのログのサイズが 5 GB を超えると、ログはローテーションされます。`low storage` イベントカテゴリにサブスクライブして、ログテーブルのローテーションが実行されて領域が解放されたときに通知を受け取ることができます。詳細については、「[Amazon RDS イベント通知の操作](USER_Events.md)」を参照してください。

  ログテーブルをローテーションすると、現在のログテーブルがまずバックアップのログテーブルにコピーされます。その後、現在のログテーブルのエントリが削除されます。バックアップのログテーブルが既に存在する場合は、現在のログテーブルをバックアップにコピーする前に、削除されます。バックアップのログテーブルは、必要に応じて照会することができます。`mysql.general_log` テーブルに対するバックアップのログテーブルは、`mysql.general_log_backup` という名前になります。`mysql.slow_log` テーブルに対するバックアップのログテーブルは、`mysql.slow_log_backup` という名前になります。

  `mysql.general_log` テーブルのローテーションは、`mysql.rds_rotate_general_log` プロシージャを呼び出すことで実行できます。`mysql.slow_log` テーブルのローテーションは、`mysql.rds_rotate_slow_log` プロシージャを呼び出すことで実行できます。

  データベースバージョンのアップグレード時にも、テーブルログのローテーションが実行されます。

Amazon RDS コンソール、Amazon RDS API、Amazon RDS CLI、または AWS SDK からログを使用するには、`log_output` パラメータを FILE に設定します。MySQL エラーログと同様、これらのログファイルは 1 時間ごとにローテーションされます。直近の 2 週間に生成されたログファイルが保持されます。Amazon RDS と Aurora で保持期間が異なる点に注意してください。​

## REDO ログのサイズ制限
<a name="USER_LogAccess.MySQL.LogFileSize.RedoLogs"></a>

RDS for MySQL バージョン 8.0.32 以前の場合、このパラメータのデフォルト値は 256 MB です。この量は、`innodb_log_file_size` パラメータ (128 MB) のデフォルト値に `innodb_log_files_in_group` パラメータ (2) のデフォルト値を掛けることによって算出されます。詳細については、「[Best practices for configuring parameters for Amazon RDS for MySQL, part 1: Parameters related to performance](https://aws.amazon.com/blogs/database/best-practices-for-configuring-parameters-for-amazon-rds-for-mysql-part-1-parameters-related-to-performance/)」を参照してください。

RDS for MySQL バージョン 8.0.33 以降のマイナーバージョンの場合、Amazon RDS では `innodb_log_file_size` パラメータの代わりに `innodb_redo_log_capacity` パラメータが使用されます。`innodb_redo_log_capacity` パラメータの Amazon RDS デフォルト値は 2 GB です。詳細については、MySQL ドキュメントの「[MySQL 8.0.30 での変更点](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-30.html)」を参照してください。

MySQL 8.4 以降、Amazon RDS ではデフォルトで `innodb_dedicated_server` パラメータが有効になります。`innodb_dedicated_server` パラメータを使用すると、データベースエンジンは `innodb_buffer_pool_size` および `innodb_redo_log_capacity` パラメータを計算します。詳細については、「[MySQL 8.4 でのバッファプールサイズと REDO ログ容量の設定](Appendix.MySQL.CommonDBATasks.Config.Size.8.4.md)」を参照してください。

# Amazon CloudWatch Logs への MySQL ログの発行
<a name="USER_LogAccess.MySQLDB.PublishtoCloudWatchLogs"></a>

MySQL DB インスタンスを設定して、ログデータを Amazon CloudWatch Logs のロググループに発行することができます。CloudWatch Logs を使用すると、ログデータのリアルタイム分析や、CloudWatch を使用したアラームの作成、メトリクスの表示を行うことができます。CloudWatch Logs を使用して、耐久性の高いストレージにログレコードを格納できます。

Amazon RDS は、MySQL データベースログを、ロググループの別のデータストリーミングとしてそれぞれ発行します。例えば、エクスポート機能を設定して、スロークエリログを作成すると、スロークエリデータは、`/aws/rds/instance/my_instance/slowquery` ロググループのスロークエリログストリーミングに保存されます。

エラーログはデフォルトで有効になります。他の MySQL ログの要件の概要を次の表に示します。


| ログ | 要件 | 
| --- | --- | 
|  監査ログ  |  DB インスタンスは、`MARIADB_AUDIT_PLUGIN` オプションを指定したカスタムオプショングループを使用する必要があります。  | 
|  全般ログ  |  DB インスタンスは、パラメータ設定 `general_log = 1` を指定して一般ログを有効にしたカスタムパラメータグループを使用する必要があります。  | 
|  スロークエリログ  |  DB インスタンスは、パラメータ設定 `slow_query_log = 1` を指定してスロークエリログを有効にしたカスタムパラメータグループを使用する必要があります。  | 
|  IAM データベース認証エラーログ  |  DB インスタンスを作成または変更して、DB インスタンスのログタイプ `iam-db-auth-error` を有効にする必要があります。  | 
|  ログ出力  |  DB インスタンスは、パラメータ設定 `log_output = FILE` を指定してログをファイルシステムに書き込み、CloudWatch Logs に発行するカスタムパラメータグループを使用する必要があります。  | 

## コンソール
<a name="USER_LogAccess.MySQL.PublishtoCloudWatchLogs.CON"></a>

**コンソールを使用して CloudWatch Logs に MySQL ログを発行するには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**データベース**] を選択し、変更する DB インスタンスを選択します。

1. [**Modify**] を選択します。

1. [**ログのエクスポート**] セクションで、CloudWatch Logs に公開するログを選択します。

1. [**続行**] を選択し、概要ページで [**Modify DB Instance**] (DB インスタンスの変更) を選択します。

## AWS CLI
<a name="USER_LogAccess.MySQL.PublishtoCloudWatchLogs.CLI"></a>

 AWS CLI を使用して MySQL ログを発行することができます。以下のパラメータを使用して、[https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) コマンドを呼び出せます。
+ `--db-instance-identifier`
+ `--cloudwatch-logs-export-configuration`

**注記**  
`--cloudwatch-logs-export-configuration` オプションへの変更は常に DB インスタンスに即時適用されます。それで、`--apply-immediately` と `--no-apply-immediately` オプションは効果がありません。

以下の AWS CLI コマンドを呼び出すことで MySQL ログを発行することもできます。
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)

以下のオプションを使用して、この AWS CLI コマンドの 1 つを実行します。
+ `--db-instance-identifier`
+ `--enable-cloudwatch-logs-exports`
+ `--db-instance-class`
+ `--engine`

実行する AWS CLI コマンドに応じて、他のオプションが必要となる場合があります。

**Example**  
次の例では、ログファイルが CloudWatch Logs に発行されるよう既存の MySQL DB インスタンスを変更します。`--cloudwatch-logs-export-configuration` 値は JSON オブジェクトです。このオブジェクトのキーは `EnableLogTypes` であり、値は `audit`、`error`、`general`、および `slowquery` を任意に組み合わせた文字列の配列です。  
Linux、macOS、Unix の場合:  

```
1. aws rds modify-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit","error","general","slowquery"]}'
```
Windows の場合:  

```
1. aws rds modify-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit","error","general","slowquery"]}'
```

**Example**  
次の例では、MySQL DB インスタンスを作成してログファイルを CloudWatch Logs に発行します。`--enable-cloudwatch-logs-exports` 値は、JSON 形式の文字列の配列です。この文字列は `audit`、`error`、`general` および `slowquery` の任意の組み合わせです。  
Linux、macOS、Unix の場合:  

```
1. aws rds create-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --enable-cloudwatch-logs-exports '["audit","error","general","slowquery"]' \
4.     --db-instance-class db.m4.large \
5.     --engine MySQL
```
Windows の場合:  

```
1. aws rds create-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --enable-cloudwatch-logs-exports '["audit","error","general","slowquery"]' ^
4.     --db-instance-class db.m4.large ^
5.     --engine MySQL
```

## RDS API
<a name="USER_LogAccess.MySQL.PublishtoCloudWatchLogs.API"></a>

RDS API を使用して MySQL ログを発行することができます。以下のパラメータを使用して、[https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) アクションを呼び出せます。
+ `DBInstanceIdentifier`
+ `CloudwatchLogsExportConfiguration`

**注記**  
`CloudwatchLogsExportConfiguration` パラメータへの変更は常に DB インスタンスに即時適用されます。それで、`ApplyImmediately` パラメータは効果がありません。

以下の RDS API オペレーションを呼び出すことで MySQL ログを発行することもできます。
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html)

以下のパラメータでこの RDS API オペレーションの 1 つを実行します。
+ `DBInstanceIdentifier`
+ `EnableCloudwatchLogsExports`
+ `Engine`
+ `DBInstanceClass`

実行する AWS CLI コマンドに応じて、他のパラメータが必要となる場合があります。

# テーブルへの MySQL ログ出力の送信
<a name="Appendix.MySQL.CommonDBATasks.Logs"></a>

DB パラメータグループを作成し、`log_output` サーバーパラメータを `TABLE` に設定することで、DB インスタンス上のテーブルに一般ログとスロークエリログを書き込むことができます。その後、一般クエリは `mysql.general_log` テーブルに記録され、スロークエリは `mysql.slow_log` テーブルに記録されます。それらのテーブルに対してクエリを実行することでログの情報にアクセスできます。このログ記録を有効にすると、データベースに書き込まれるデータの量が増え、パフォーマンスが低下することがあります。

一般ログもスロークエリログもデフォルトで無効になっています。テーブルへのログ記録を有効にするには、`general_log` と `slow_query_log` のサーバーパラメータを `1` に設定する必要があります。

ログテーブルは、それぞれのログ記録アクティビティのパラメータを `0` にリセットしてログ記録をオフにするまで、拡大し続けます。大量のデータが長期にわたって蓄積されることがよくあり、割り当てストレージ領域の大部分を使い果たすことがあります。Amazon RDS では、ログテーブルを切り詰めることはできませんが、その内容を移動することはできます。テーブルのローテーションにより、その内容がバックアップテーブルに保存され、新しい空のログテーブルが作成されます。以下のコマンドラインプロシージャを使用して、ログテーブルを手動でローテーションされることができます。ここで表示されている `PROMPT>` はコマンドプロンプトです。

```
PROMPT> CALL mysql.rds_rotate_slow_log;
PROMPT> CALL mysql.rds_rotate_general_log;
```

以前のデータを完全に削除し、ディスク領域を再利用するには、該当するプロシージャを 2 回連続で呼び出します。

# シングル AZ データベースの RDS for MySQL バイナリログの設定
<a name="USER_LogAccess.MySQL.BinaryFormat"></a>

*バイナリログ*は、 MySQL サーバーインスタンスで行われたデータ変更に関する情報を含む、一連のログファイルです。バイナリログには、以下のような情報が含まれています。
+ テーブルの作成や行の変更など、データベースの変更が記述されたイベント
+ データを更新した各ステートメントの実行時間に関する情報
+ データを更新する可能性があったものの、それが実行されていないステートメントのイベント

バイナリログには、レプリケーション中に送信されるステートメントが記録されます。また、一部のリカバリオペレーションにもバイナリログが必要です。詳細については、MySQL ドキュメントの「[バイナリログ](https://dev.mysql.com/doc/refman/8.0/en/binary-log.html)」を参照してください。

自動バックアップ機能では、MySQL のバイナリログ記録を有効にするか無効にするかを決定します。次のオプションがあります。

バイナリログ記録を有効にするには  
バックアップ保持期間を 0 以外の正の値に設定します。

バイナリログ記録を無効にするには  
[バックアップ保持期間] を 0 に設定します。

詳細については、「[自動バックアップの有効化](USER_WorkingWithAutomatedBackups.Enabling.md)」を参照してください。

Amazon RDS の MySQL では、*行ベース*、*ステートメントベース*、および*混合*のバイナリログ形式がサポートされています。特定バイナリログ形式が必要でない場合は、混合形式を使用することをお勧めします。MySQL の各種バイナリログ形式の詳細については、MySQL ドキュメントの「[Binary logging formats](https://dev.mysql.com/doc/refman/8.0/en/binary-log-formats.html)」を参照してください。

レプリケーションを使用する予定の場合は、バイナリログ記録形式が重要です。ソースに記録されてレプリケーションターゲットに送信されるデータ変更記録が決定されるからです。レプリケーション用のさまざまなバイナリログ記録形式の利点と欠点についての詳細は、MySQL ドキュメントの「[Advantages and Disadvantages of Statement-Based and Row-Based Replication](https://dev.mysql.com/doc/refman/8.0/en/replication-sbr-rbr.html)」を参照してください。

**重要**  
MySQL 8.0.34 では、`binlog_format` パラメータが廃止されました。以降の MySQL バージョンでは、このパラメータを削除し、行ベースのレプリケーションのみをサポートする予定です。そのため、新しい MySQL レプリケーション設定には行ベースのログ記録を使用することをお勧めします。詳細については、MySQL ドキュメントの「[binlog\$1format](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_format)」を参照してください。  
MySQL バージョン 8.0 および 8.4 は、パラメータ `binlog_format` を受け入れます。このパラメータを使用すると、MySQL は非推奨警告を発行します。今後のメジャーリリースで、MySQL はパラメータ `binlog_format` を削除します。  
ステートメントベースのレプリケーションは、ソース DB インスタンスとリードレプリカの間の不整合の原因になります。詳細については、MySQL ドキュメントの「[バイナリログ作成における安全なステートメントと安全でないステートメントの判断](https://dev.mysql.com/doc/refman/8.0/en/replication-rbr-safe-unsafe.html)」を参照してください。  
バイナリログを有効にすると、DB インスタンスへの書き込みディスク I/O 操作の回数が増えます。`WriteIOPS``` CloudWatch メトリクスを使用して、IOPS の使用状況をモニタリングできます。

**MySQL バイナリログ形式を設定するには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、**[Parameter groups]** (パラメータグループ) を選択します。

1. 変更する DB インスタンスに関連付ける DB のパラメータグループを選択します。

   デフォルトのパラメータグループを変更することはできません。DB インスタンスがデフォルトのパラメータグループを使用している場合、新しいパラメータグループを作成し DB インスタンスと関連付けます。

   パラメータグループの詳細については、「[Amazon RDS のパラメータグループ](USER_WorkingWithParamGroups.md)」を参照してください。

1. **[アクション]** から **[編集]** を選択します。

1. `binlog_format` パラメータを、選択したバイナリログ形式 (`ROW`、`STATEMENT`、または `MIXED`) に設定します。

   DB インスタンスのバックアップ保持期間をゼロに設定することでバイナリログを無効にできますが、これによって毎日の自動バックアップは無効になります。自動バックアップを無効にすると、`log_bin` セッション変数がオフまたは無効になります。これにより、RDS for MySQL DB インスタンスのバイナリログ記録が無効になり、`binlog_format` セッション変数がデータベースのデフォルト値の `ROW` にリセットされます。バックアップを無効にしないことをお勧めします。**バックアップ保持期間**の設定の詳細については、「[DB インスタンスの設定](USER_ModifyInstance.Settings.md)」を参照してください。

1. [**変更の保存**] を選択して、更新を DB パラメータグループに保存します。

`binlog_format` パラメータは RDS for MySQL では動的であるため、変更を適用するために、DB インスタンスを再起動する必要はありません。(Aurora MySQL では、このパラメータは静的であることに注意してください。詳細については、「[Aurora MySQL バイナリログの設定](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.MySQL.BinaryFormat.html)」を参照してください。)

**重要**  
DB パラメータグループを変更すると、そのパラメータグループを使用するすべての DB インスタンスに影響を与えます。AWS リージョン内の異なる MySQL DB インスタンスに対して異なるバイナリログ形式を指定する場合、DB インスタンスは異なる DB パラメータグループを使用する必要があります。これらのパラメータグループは、さまざまなログ形式を識別します。各 DB インスタンスに適切な DB パラメータグループを割り当てます。

# マルチ AZ DB クラスターの MySQL バイナリログ記録の設定
<a name="USER_Binlog.MultiAZ"></a>

Amazon RDS for MySQL マルチ AZ DB クラスターのバイナリログ記録は、レプリケーション、ポイントインタイムリカバリ、監査をサポートするために、すべてのデータベースの変更を記録します。マルチ AZ DB クラスターのバイナリログ記録では、セカンダリノードをプライマリノードと同期し、アベイラビリティーゾーン間のデータ整合性を確保して、シームレスなフェイルオーバーを可能にします。

バイナリログ記録を最適化するために、Amazon RDS ではバイナリログトランザクション圧縮をサポートしています。これにより、バイナリログのストレージ要件が軽減され、レプリケーション効率が向上します。

**Topics**
+ [マルチ AZ DB クラスターのバイナリログトランザクション圧縮](#USER_Binlog.MultiAZ.compression)
+ [マルチ AZ DB クラスターのバイナリログトランザクション圧縮の設定](#USER_Binlog.MultiAZ.configuring)

## マルチ AZ DB クラスターのバイナリログトランザクション圧縮
<a name="USER_Binlog.MultiAZ.compression"></a>

バイナリログトランザクション圧縮では、zstd アルゴリズムを使用して、バイナリログに保存されるトランザクションデータのサイズを縮小します。有効にすると、MySQL データベースエンジンがトランザクションペイロードを 1 つのイベントに圧縮し、I/O とストレージのオーバーヘッドを最小限に抑えます。この機能によって、データベースのパフォーマンスが向上し、バイナリログのサイズが縮小して、マルチ AZ DB クラスターのログを管理およびレプリケートするためのリソースの使用が最適化されます。

Amazon RDS は、以下のパラメータを使用して RDS for MySQL マルチ AZ DB クラスターのバイナリログトランザクション圧縮を提供します。
+ `binlog_transaction_compression` – 有効にすると (`1`)、データベースエンジンはトランザクションペイロードを圧縮し、単一のイベントとしてバイナリログに書き込みます。これにより、ストレージの使用量と I/O オーバーヘッドが減少します。このパラメータは、デフォルトでは無効になっています。
+ `binlog_transaction_compression_level_zstd` – バイナリログトランザクションの zstd 圧縮レベルを設定します。値を大きくすると圧縮率が上がり、ストレージ要件はさらに軽減されますが、圧縮のための CPU とメモリの使用量が増加します。デフォルト値は 3 で、範囲は 1 ～ 22 です。

これらのパラメータを使用して、ワークロードの特性とリソースの可用性に基づいてバイナリログ圧縮を微調整できます。詳細については、MySQL ドキュメントの「[Binary Log Transaction Compression](https://dev.mysql.com/doc/refman/8.4/en/binary-log-transaction-compression.html)」を参照してください。

バイナリログトランザクション圧縮には、主に次の利点があります。
+ 特にトランザクションが大きいワークロードや書き込みボリュームが多いワークロードでは、圧縮によってバイナリログのサイズが小さくなります。
+ バイナリログが小さいほど、ネットワークと I/O のオーバーヘッドが減少し、レプリケーションのパフォーマンスが向上します。
+ `binlog_transaction_compression_level_zstd` パラメータで、圧縮率とリソース消費のバランスを制御できます。

## マルチ AZ DB クラスターのバイナリログトランザクション圧縮の設定
<a name="USER_Binlog.MultiAZ.configuring"></a>

RDS for MySQL マルチ AZ DB クラスターのバイナリログトランザクション圧縮を設定するには、ワークロードの要件に合わせて関連するクラスターパラメータ設定を変更します。

### コンソール
<a name="USER_Binlog.MultiAZ.configuring-console"></a>

**バイナリログトランザクション圧縮を有効にするには**

1. DB クラスターパラメータグループを変更して、`binlog_transaction_compression` パラメータを `1` に設定します。

1. (オプション) ワークロードの要件とリソースの可用性に基づいて、`binlog_transaction_compression_level_zstd` パラメータの値を調整します。

詳細については、「[ DB クラスターパラメータグループのパラメータの変更](USER_WorkingWithParamGroups.ModifyingCluster.md)」を参照してください。

### AWS CLI
<a name="USER_Binlog.MultiAZ.configuring-cli"></a>

AWS CLI を使用してバイナリログトランザクション圧縮を設定するには、[modify-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster-parameter-group.html) コマンドを使用します。

**Example**  
Linux、macOS、Unix の場合:  

```
aws rds modify-db-cluster-parameter-group \
  --db-cluster-parameter-group-name your-cluster-parameter-group \
  --parameters "ParameterName=binlog_transaction_compression,ParameterValue=1,ApplyMethod=pending-reboot"
```
Windows の場合:  

```
aws rds modify-db-cluster-parameter-group ^
  --db-cluster-parameter-group-name your-cluster-parameter-group ^
  --parameters "ParameterName=binlog_transaction_compression,ParameterValue=1,ApplyMethod=pending-reboot"
```

### RDS API
<a name="USER_Binlog.MultiAZ.configuring-api"></a>

Amazon RDS API を使用してバイナリログトランザクション圧縮を設定するには、[https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterParameterGroup.html) オペレーションを使用します。

# MySQL バイナリログにアクセスする
<a name="USER_LogAccess.MySQL.Binarylog"></a>

mysqlbinlog ユーティリティを使用して、RDS for MySQL DB インスタンスからバイナリログをダウンロードまたはストリーミングできます。バイナリログはローカルコンピュータにダウンロードされ、mysql ユーティリティを使用してログの再生などの操作を実行できます。mysqlbinlog ユーティリティの使用の詳細については、MySQL ドキュメントの「[バイナリログファイルのバックアップのための mysqlbinlog の使用](https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog-backup.html)」を参照してください。

Amazon RDS インスタンスに対して mysqlbinlog ユーティリティを実行するには、以下のオプションを使用します。
+ `--read-from-remote-server` – 必須。
+ `--host` - インスタンスのエンドポイントからの DNS 名。
+ `--port` - インスタンスによって使用されるポート。
+ `--user` – `REPLICATION SLAVE` アクセス許可を付与された MySQL ユーザー。
+ `--password` - MySQL ユーザーのパスワード。パスワード値を省略省略した場合、ユーティリティによってパスワードの入力を求められます。
+ `--raw` — バイナリ形式のファイルをダウンロードします。
+ `--result-file` - raw 出力を受け取るローカルファイル。
+ `--stop-never` — バイナリログファイルをストリーミングします。
+ `--verbose` — `ROW` binlog 形式を使用するとき、このオプションを含めると、行イベントが疑似 SQL ステートメントとして表示されます。`--verbose` オプションの詳細については、MySQL ドキュメントの「[mysqlbinlog row event display](https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog-row-events.html)」(mysqlbinlog の行イベントの表示) を参照してください。
+ 1 つ以上のバイナリログファイルの名前を指定します。使用可能なログのリストを取得するには、SQL コマンド `SHOW BINARY LOGS` を使用します。

mysqlbinlog のオプションの詳細については、MySQL ドキュメントの「[mysqlbinlog - バイナリログファイルを処理するためのユーティリティ](https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog.html)」を参照してください。

以下の例では、mysqlbinlog ユーティリティの使用方法を示します。

Linux、macOS、Unix の場合:

```
mysqlbinlog \
    --read-from-remote-server \
    --host=MySQLInstance1.cg034hpkmmjt.region.rds.amazonaws.com \
    --port=3306  \
    --user ReplUser \
    --password \
    --raw \
    --verbose \
    --result-file=/tmp/ \
    binlog.00098
```

Windows の場合:

```
mysqlbinlog ^
    --read-from-remote-server ^
    --host=MySQLInstance1.cg034hpkmmjt.region.rds.amazonaws.com ^
    --port=3306  ^
    --user ReplUser ^
    --password ^
    --raw ^
    --verbose ^
    --result-file=/tmp/ ^
    binlog.00098
```

mysqlbinlog ユーティリティがバイナリログにアクセスするには、バイナリログが DB インスタンスで利用可能な状態である必要があります。可用性を確保するには、[mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration) ストアドプロシージャを使用して、ログをダウンロードできる十分な期間を指定します。この設定を行わないと、Amazon RDS はバイナリログをできるだけ早く消去するため、mysqlbinlog ユーティリティが取得するバイナリログにギャップが生じます。

以下の例では、保持期間を 1 日に設定しています。

```
call mysql.rds_set_configuration('binlog retention hours', 24);
```

現在の設定を表示するには、[mysql.rds\$1show\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_show_configuration) ストアドプロシージャを使用します。

```
call mysql.rds_show_configuration;
```

# Amazon RDS for Oracle データベースのログファイル
<a name="USER_LogAccess.Concepts.Oracle"></a>

Amazon RDS コンソールまたは API を使用して、Oracle のアラートログ、監査ファイル、トレースファイルにアクセスできます。ファイルベースのデータベースログの表示、ダウンロード、モニタリングの詳細については、「[Amazon RDS ログファイルのモニタリング](USER_LogAccess.md)」を参照してください。

提供される Oracle の監査ファイルは、スタンダードの Oracle 監査ファイルです。Amazon RDS は、Oracle のきめ細かな監査 (FGA) 機能をサポートしています。ただし、ログアクセスは、`SYS.FGA_LOG$` テーブルに保存された FGA イベントと `DBA_FGA_AUDIT_TRAIL` ビューからアクセス可能な FGA イベントへのアクセスを提供しません。

DB インスタンスの使用可能な Oracle ログファイルを一覧表示する [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBLogFiles.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBLogFiles.html) API オペレーションでは、`MaxRecords` パラメータが無視され、最大 1,000 件のレコードが返されます。この呼び出しは、ミリ秒単位の POSIX 日付として `LastWritten` を返します。

**Topics**
+ [保持期間スケジュール](#USER_LogAccess.Concepts.Oracle.Retention)
+ [Oracle トレースファイルを使用する](#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles)
+ [Amazon CloudWatch Logs への Oracle ログの発行](#USER_LogAccess.Oracle.PublishtoCloudWatchLogs)
+ [アラートログとリスナーログへのアクセス](#USER_LogAccess.Concepts.Oracle.AlertLogAndListenerLog)

## 保持期間スケジュール
<a name="USER_LogAccess.Concepts.Oracle.Retention"></a>

Oracle データベースエンジンは、ログファイルが非常に大きくなるとローテーションする場合があります。監査ファイルまたはトレースファイルを保持するには、まずダウンロードします。ファイルをローカルに保存すると、Amazon RDS ストレージコストが削減され、データ用の領域が増えます。

次の表は、Amazon RDS における Oracle のアラートログ、監査ファイル、トレースファイルの保持スケジュールを示しています。


****  

| ログタイプ | 保持期間スケジュール | 
| --- | --- | 
|  アラートログ  |   テキストアラートログは、Amazon RDS による管理の 30 日の保持で毎日ローテーションされます。XML アラートのログは 7 日間以上保存されます。`ALERTLOG` ビューを使用してこのログにアクセスできます。  | 
|  監査ファイル  |   監査ファイルのデフォルトの保持期間は 7 日です。Amazon RDS は 7 日を経過した監査ファイルを削除する場合があります。  | 
|  トレースファイル  |  トレースファイルのデフォルトの保持期間は 7 日です。Amazon RDS は 7 日を経過したトレースファイルを削除する場合があります。  | 
|  リスナーログ  |   リスナーログのデフォルトの保持期間は 7 日です。Amazon RDS は 7 日を経過したリスナーログを削除する場合があります。  | 

**注記**  
監査ファイルとトレースファイルは同じ保持設定を共有します。

## Oracle トレースファイルを使用する
<a name="USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles"></a>

トレース ファイルを作成、更新、アクセス、削除する Amazon RDS の手順の説明を以下に示します。

**Topics**
+ [ファイルのリスト化](#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.ViewingBackgroundDumpDest)
+ [トレースファイルとトレースセッションを生成する](#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Generating)
+ [トレースファイルを取得する](#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Retrieving)
+ [トレースファイルを消去する](#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Purging)

### ファイルのリスト化
<a name="USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.ViewingBackgroundDumpDest"></a>

2 つのうちいずれかの手順を使用して、`background_dump_dest` パスのあらゆるファイルへのアクセスを許可できます。初期の手順では、`background_dump_dest` 内の最新のファイルのリストをすべて含むビューを更新します。

```
1. EXEC rdsadmin.manage_tracefiles.refresh_tracefile_listing;
```

ビューが更新されたら、以下のビューを照会して結果にアクセスします。

```
1. SELECT * FROM rdsadmin.tracefile_listing;
```

2 つ目の方法では、`FROM table` を使用して、非リレーショナルデータを表のような形式でストリーミングし、データベースディレクトリの内容を一覧表示します。

```
1. SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir('BDUMP'));
```

以下のクエリでは、ログファイルのテキストを表示しています。

```
1. SELECT text FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP','alert_dbname.log.date'));
```

リードレプリカで、`V$DATABASE.DB_UNIQUE_NAME` をクエリして BDUMP ディレクトリの名前を取得します。一意の名前が `DATABASE_B` の場合、BDUMP ディレクトリは `BDUMP_B` です。以下の例では、レプリカの BDUMP 名をクエリし、この名前を使用して `alert_DATABASE.log.2020-06-23` の内容をクエリします。

```
1. SELECT 'BDUMP' || (SELECT regexp_replace(DB_UNIQUE_NAME,'.*(_[A-Z])', '\1') FROM V$DATABASE) AS BDUMP_VARIABLE FROM DUAL;
2. 
3. BDUMP_VARIABLE
4. --------------
5. BDUMP_B
6. 
7. SELECT TEXT FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP_B','alert_DATABASE.log.2020-06-23'));
```

### トレースファイルとトレースセッションを生成する
<a name="USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Generating"></a>

`ALTER SESSION` には制限がないことから、Oracle でトレースファイルを生成するための多くのスタンダード的な方法は、Amazon RDS DB インスタンスでも使用できます。以下に、より高度なアクセス許可の必要なトレースファイル用の手順を示します。


****  

|  Oracle での方法  |  Amazon RDS方法 | 
| --- | --- | 
|  `oradebug hanganalyze 3 `  |  `EXEC rdsadmin.manage_tracefiles.hanganalyze; `  | 
|  `oradebug dump systemstate 266 `  |  `EXEC rdsadmin.manage_tracefiles.dump_systemstate;`  | 

Amazon RDS の Oracle DB インスタンスに接続する個々のセッションをトレースするには、複数の方法を使用できます。セッションのトレースを有効にするには、`DBMS_SESSION` や `DBMS_MONITOR` など、Oracle が提供する PL/SQL パッケージのサブプログラムを実行できます。詳細については、Oracle ドキュメントの「[Enabling Tracing for a Session](https://docs.oracle.com/database/121/TGSQL/tgsql_trace.htm#GUID-F872D6F9-E015-481F-80F6-8A7036A6AD29)」を参照してください。

### トレースファイルを取得する
<a name="USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Retrieving"></a>

Amazon RDS で管理される外部テーブルのスタンダード的な SQL クエリを使用して、`background_dump_dest` 内の任意のトレースファイルを取得できます。この方法を使用するには、このテーブルの場所として特定のトレースファイルを設定するプロシージャを実行する必要があります。

例えば、前述の `rdsadmin.tracefile_listing` ビューを使用して、システムのすべてのトレースファイルを一覧表示できます。その後、以下のプロシージャを使用して、目的のトレースファイルを参照するように `tracefile_table` ビューを設定できます。

```
1. EXEC rdsadmin.manage_tracefiles.set_tracefile_table_location('CUST01_ora_3260_SYSTEMSTATE.trc');
```

以下の例では、外部テーブルを最新のスキーマで作成し、このテーブルの場所として特定のファイルを設定しています。内容は、SQL クエリを使用してローカルファイルに取得できます。

```
1. SPOOL /tmp/tracefile.txt
2. SELECT * FROM tracefile_table;
3. SPOOL OFF;
```

### トレースファイルを消去する
<a name="USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.Purging"></a>

トレースファイルが蓄積されて、ディスク領域を消費することがあります。Amazon RDS では、7 日を経過すると、トレースファイルはデフォルトで消去され、ログファイルは消去されます。`show_configuration` プロシージャを使用してトレースファイルの保持期間を表示および設定できます。設定の結果を表示できるように、コマンド `SET SERVEROUTPUT ON` を実行する必要があります。

以下の例では、現在のトレースファイルの保持期間を表示し、新しいトレースファイルの保持期間を設定しています。

```
 1. # Show the current tracefile retention
 2. SQL> EXEC rdsadmin.rdsadmin_util.show_configuration;
 3. NAME:tracefile retention
 4. VALUE:10080
 5. DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted.
 6. 		
 7. # Set the tracefile retention to 24 hours:
 8. SQL> EXEC rdsadmin.rdsadmin_util.set_configuration('tracefile retention',1440);
 9. SQL> commit;
10. 
11. #show the new tracefile retention
12. SQL> EXEC rdsadmin.rdsadmin_util.show_configuration;
13. NAME:tracefile retention
14. VALUE:1440
15. DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted.
```

定期的な消去プロセスに加えて、`background_dump_dest` から手動でファイルを削除することもできます。以下の例では、5 分を経過したすべてのファイルを消去しています。

```
EXEC rdsadmin.manage_tracefiles.purge_tracefiles(5);
```

特定のパターンと一致するすべてのファイルを消去することもできます (そうする場合は .trc などのファイル拡張子を含めないでください)。次の例は、`SCHPOC1_ora_5935` で始まるすべてのファイルを消去する方法を示しています。

```
1. EXEC rdsadmin.manage_tracefiles.purge_tracefiles('SCHPOC1_ora_5935');
```

## Amazon CloudWatch Logs への Oracle ログの発行
<a name="USER_LogAccess.Oracle.PublishtoCloudWatchLogs"></a>

RDS for Oracle DB インスタンスを設定して、ログデータを Amazon CloudWatch Logs のロググループに発行することができます。CloudWatch Logs を使用すると、ログデータの分析や、CloudWatch を使用したアラームの作成、メトリクスの表示を行うことができます。CloudWatch Logs を使用して、耐久性の高いストレージにログレコードを格納できます。

Amazon RDS は、Oracle データベースログを、ロググループの別のデータストリーミングとしてそれぞれ発行します。例えば、エクスポート機能を設定して、監査ログを作成すると、監査データは、`/aws/rds/instance/my_instance/audit` ロググループの監査ログストリーミングに保存されます。次の表は、RDS for Oracle が Amazon CloudWatch Logs にログを発行するための要件をまとめたものです。


| ログ名 | 要件 | デフォルト | 
| --- | --- | --- | 
|  アラートログ  |  なし。このログを無効にすることはできません。  |  有効  | 
|  トレースログ  |  `trace_enabled` パラメータを `TRUE` に設定するか、デフォルトのままにします。  |  `TRUE`  | 
|  監査ログ  |  `audit_trail` パラメータを次のいずれかの許可された値に設定します。 <pre>{ none | os | db [, extended] | xml [, extended] }</pre>  |  `none`  | 
|  リスナーログ  |  なし。このログを無効にすることはできません。  |  有効  | 
|  Oracle Management Agent ログ  |  なし。このログを無効にすることはできません。  |  有効  | 

この Oracle Management Agent ログは、次の表に示すロググループで構成されています。


****  

| ログ名 | CloudWatch ロググループ | 
| --- | --- | 
| emctl.log | oemagent-emctl | 
| emdctlj.log | oemagent-emdctlj | 
| gcagent.log | oemagent-gcagent | 
| gcagent\$1errors.log | oemagent-gcagent-errors | 
| emagent.nohup | oemagent-emagent-nohup | 
| secure.log | oemagent-secure | 

詳細については、Oracle ドキュメントの「[Management Agent ログとトレースファイルの検索](https://docs.oracle.com/en/enterprise-manager/cloud-control/enterprise-manager-cloud-control/13.4/emadm/locating-management-agent-log-and-trace-files1.html#GUID-9C710D78-6AA4-42E4-83CD-47B5FF4892DF)」を参照してください。

### コンソール
<a name="USER_LogAccess.Oracle.PublishtoCloudWatchLogs.console"></a>

**AWS マネジメントコンソール から CloudWatch Logs に Oracle DB ログを公開するには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**データベース**] を選択し、変更する DB インスタンスを選択します。

1. [**Modify**] を選択します。

1. [**ログのエクスポート**] セクションで、CloudWatch Logs に公開するログを選択します。

1. [**続行**] を選択し、概要ページで [**Modify DB Instance**] (DB インスタンスの変更) を選択します。

### AWS CLI
<a name="USER_LogAccess.Oracle.PublishtoCloudWatchLogs.CLI"></a>

Oracle ログを発行するには、以下のパラメータを指定して [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) コマンドを使用します。
+ `--db-instance-identifier`
+ `--cloudwatch-logs-export-configuration`

**注記**  
`--cloudwatch-logs-export-configuration` オプションへの変更は常に DB インスタンスに即時適用されます。それで、`--apply-immediately` と `--no-apply-immediately` オプションは効果がありません。

以下のコマンドを使用して Oracle ログを発行することもできます。
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)

**Example**  
次の例では、CloudWatch Logs の発行を有効にした Oracle DB インスタンスを作成します。`--cloudwatch-logs-export-configuration` 値は、JSON 形式の文字列の配列です。この文字列は `alert`、`audit`、`listener` および `trace` の任意の組み合わせです。  
Linux、macOS、Unix の場合:  

```
aws rds create-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '["trace","audit","alert","listener","oemagent"]' \
    --db-instance-class db.m5.large \
    --allocated-storage 20 \
    --engine oracle-ee \
    --engine-version 19.0.0.0.ru-2024-04.rur-2024-04.r1 \
    --license-model bring-your-own-license \
    --master-username myadmin \
    --manage-master-user-password
```
Windows の場合:  

```
aws rds create-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration trace alert audit listener oemagent ^
    --db-instance-class db.m5.large ^
    --allocated-storage 20 ^
    --engine oracle-ee ^
    --engine-version 19.0.0.0.ru-2024-04.rur-2024-04.r1 ^
    --license-model bring-your-own-license ^
    --master-username myadmin ^
    --manage-master-user-password
```

**Example**  
次の例では、ログファイルが CloudWatch Logs に発行されるよう既存の Oracle DB インスタンスを変更します。`--cloudwatch-logs-export-configuration` 値は JSON オブジェクトです。このオブジェクトのキーは `EnableLogTypes` であり、値は `alert`、`audit`、`listener`、および `trace` を任意に組み合わせた文字列の配列です。  
Linux、macOS、Unix の場合:  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '{"EnableLogTypes":["trace","alert","audit","listener","oemagent"]}'
```
Windows の場合:  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration EnableLogTypes=\"trace\",\"alert\",\"audit\",\"listener\",\"oemagent\"
```

**Example**  
次の例では、CloudWatch Logs への監査およびリスナーログファイルの発行が無効になるよう既存の Oracle DB インスタンスを変更します。`--cloudwatch-logs-export-configuration` 値は JSON オブジェクトです。このオブジェクトのキーは `DisableLogTypes` であり、値は `alert`、`audit`、`listener`、および `trace` を任意に組み合わせた文字列の配列です。  
Linux、macOS、Unix の場合:  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '{"DisableLogTypes":["audit","listener"]}'
```
Windows の場合:  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration DisableLogTypes=\"audit\",\"listener\"
```

### RDS API
<a name="USER_LogAccess.Oracle.PublishtoCloudWatchLogs.API"></a>

Oracle DB ログは、RDS API を使用して発行することができます。以下のパラメータを使用して、[https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) アクションを呼び出せます。
+ `DBInstanceIdentifier`
+ `CloudwatchLogsExportConfiguration`

**注記**  
`CloudwatchLogsExportConfiguration` パラメータへの変更は常に DB インスタンスに即時適用されます。それで、`ApplyImmediately` パラメータは効果がありません。

以下の RDS API オペレーションを呼び出すことで Oracle ログを発行することもできます。
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html)

以下のパラメータでこの RDS API オペレーションの 1 つを実行します。
+ `DBInstanceIdentifier`
+ `EnableCloudwatchLogsExports`
+ `Engine`
+ `DBInstanceClass`

実行する RDS オペレーションに応じて、他のパラメータが必要となる場合があります。

## アラートログとリスナーログへのアクセス
<a name="USER_LogAccess.Concepts.Oracle.AlertLogAndListenerLog"></a>

Amazon RDS コンソールを使用してアラートログを表示できます。次の SQL ステートメントを使用することもできます。

```
1. SELECT message_text FROM alertlog;
```

Amazon CloudWatch Logs を使用してリスナーログにアクセスします。

**注記**  
Oracle では、アラートログとリスナーログは 10 MB を超えるとローテーションされます。その時点で、Amazon RDS のビューからは使用できなくなります。

# RDS for PostgreSQL データベースログファイル
<a name="USER_LogAccess.Concepts.PostgreSQL"></a>

次の種類の ログファイルをモニタリングできます。
+ PostgreSQL ログ
+ アップグレードログ
+ IAM データベース認証エラーログ
**注記**  
IAM データベース認証エラーログを有効にするには、まず RDS for PostgreSQL DB インスタンスの IAM データベース認証を有効にする必要があります。IAM データベース認証の有効化の詳細については、「[IAM データベース認証の有効化と無効化](UsingWithRDS.IAMDBAuth.Enabling.md)」を参照してください。

 RDS for PostgreSQL では、データベースアクティビティをデフォルトの PostgreSQL ログファイルに記録します。オンプレミスの PostgreSQL DB インスタンスの場合、これらのメッセージは `log/postgresql.log` にローカルに保存されます。、RDS for PostgreSQL DB インスタンスの場合、ログファイルは Amazon RDS インスタンスにあります。これらのログには、AWS マネジメントコンソール 経由でアクセスすることもできます。ここでは、ログを表示またはダウンロードできます。デフォルトのロギングレベルは、ログインの失敗、致命的なサーバーエラー、デッドロック、およびクエリエラーをキャプチャします。

ファイルベースのデータベースログの表示、ダウンロード、モニタリングの方法の詳細については、「[Amazon RDS ログファイルのモニタリング](USER_LogAccess.md)」を参照してください。PostgreSQL ログの詳細については、「[Amazon RDS および Aurora PostgreSQL ログの操作: パート 1](https://aws.amazon.com/blogs/database/working-with-rds-and-aurora-postgresql-logs-part-1/)」および「[Amazon RDS および Aurora PostgreSQL ログの操作: パート 2](https://aws.amazon.com/blogs/database/working-with-rds-and-aurora-postgresql-logs-part-2/)」を参照してください。

このトピックで説明した標準の PostgreSQL ログに加えて、 RDS for PostgreSQL は PostgreSQL 監査エクステンション (`pgAudit`) もサポートしています。規制対象の業界や政府機関のほとんどは、法的要件に準拠するために、データに加えられた変更の監査ログまたは監査証跡を維持する必要があります。pgAudit のインストールおよび使用の詳細については、「[pgAudit を使用してデータベースのアクティビティを記録する](Appendix.PostgreSQL.CommonDBATasks.pgaudit.md)」を参照してください。

**Topics**
+ [RDS for PostgreSQL でのログ記録のパラメータ](USER_LogAccess.Concepts.PostgreSQL.overview.parameter-groups.md)
+ [RDS for PostgreSQL DB インスタンスのクエリログ記録をオンにする](USER_LogAccess.Concepts.PostgreSQL.Query_Logging.md)
+ [Amazon CloudWatch Logs への PostgreSQL ログの発行](#USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs)

# RDS for PostgreSQL でのログ記録のパラメータ
<a name="USER_LogAccess.Concepts.PostgreSQL.overview.parameter-groups"></a>

さまざまなパラメータを変更することで、 RDS for PostgreSQL DB インスタンスのロギング動作をカスタマイズできます。次のテーブルには、ログの保存期間、ログをローテーションするタイミング、ログを CSV (カンマ区切り値) 形式で出力するかどうかなどに影響するパラメータがあります。他の設定の中でも、STDERR に送信されたテキスト出力を確認できます。変更可能なパラメータの設定を変更するには、のカスタム DB パラメータグループを使用します。RDS for PostgreSQL インスタンス。詳細については、「[Amazon RDS DB インスタンスの DB パラメータグループ](USER_WorkingWithDBInstanceParamGroups.md)」を参照してください。


| パラメータ  | デフォルト | 説明  | 
| --- | --- | --- | 
| log\$1destination | stderr | ログの出力形式を設定します。デフォルトは `stderr` ですが、設定に `csvlog` を追加してカンマ区切り値 (CSV) を指定することもできます。詳細については、「[ログの送信先の設定 (`stderr`、`csvlog`)](#USER_LogAccess.Concepts.PostgreSQL.Log_Format)」を参照してください。 | 
| log\$1filename |  postgresql.log.%Y-%m-%d-%H  | ログファイル名のパターンを指定します。デフォルトに加えて、このパラメータはファイル名パターンの `postgresql.log.%Y-%m-%d` と `postgresql.log.%Y-%m-%d-%H%M` をサポートします。 | 
| log\$1line\$1prefix | %t:%r:%u@%d:[%p]: | 時間 (%t)、リモート ホスト (%r)、ユーザー (%u)、データベース (%d)、およびプロセス ID (%p) を記録するために、`stderr` に書き込まれる各ログ行のプレフィックスを定義します。 | 
| log\$1rotation\$1age | 60 | ログファイルが自動的にローテーションされるまでの分数。この値は、1～1,440 分の間で変更できます。詳細については、「[ログファイルのローテーションの設定](#USER_LogAccess.Concepts.PostgreSQL.log_rotation)」を参照してください。 | 
| log\$1rotation\$1size | – | ログが自動的にローテーションされるサイズ (kB)。ログは `log_rotation_age` パラメータに基づいてローテーションされるため、デフォルトではこのパラメータは使用されません。詳細については[ログファイルのローテーションの設定](#USER_LogAccess.Concepts.PostgreSQL.log_rotation)を参照してください。 | 
| rds.log\$1retention\$1period | 4320 | 指定した時間 (分) より古い PostgreSQL ログは削除されます。デフォルト値の 4,320 分では、3 日後にログファイルが削除されます。詳細については、「[ログの保持期間の設定](#USER_LogAccess.Concepts.PostgreSQL.log_retention_period)」を参照してください。 | 

アプリケーションの問題を特定するには、ログでクエリの失敗、ログインの失敗、デッドロック、および致命的なサーバーエラーを探すことができます。例えば、従来のアプリケーションを Oracle から Amazon RDS PostgreSQL に変換したが、一部のクエリは正しく変換されなかったとします。これらの誤った形式のクエリは、ログにエラーメッセージを生成し、ログから問題を特定することができます。クエリログの詳細については、「[ RDS for PostgreSQL DB インスタンスのクエリログ記録をオンにする](USER_LogAccess.Concepts.PostgreSQL.Query_Logging.md)」参照してください。

次のトピックでは、PostgreSQL ログの基本的な詳細を制御するさまざまなパラメータの設定方法について説明します。

**Topics**
+ [ログの保持期間の設定](#USER_LogAccess.Concepts.PostgreSQL.log_retention_period)
+ [ログファイルのローテーションの設定](#USER_LogAccess.Concepts.PostgreSQL.log_rotation)
+ [ログの送信先の設定 (`stderr`、`csvlog`)](#USER_LogAccess.Concepts.PostgreSQL.Log_Format)
+ [log\$1line\$1prefix パラメータの概要](#USER_LogAccess.Concepts.PostgreSQL.Log_Format.log-line-prefix)

## ログの保持期間の設定
<a name="USER_LogAccess.Concepts.PostgreSQL.log_retention_period"></a>

`rds.log_retention_period` パラメータは、 RDS for PostgreSQL DB インスタンスがログファイルを保持する期間を指定します。デフォルトの設定は 3 日 (4,320 分) ですが、この値を 1 日 (1,440 分) から 7 日 (10,080 分) までの任意の時間に設定できます。 RDS for PostgreSQL DB インスタンスに、一定期間ログファイルを保持するのに十分なストレージがあることを確認してください。

ログを定期的に Amazon CloudWatch Logs に公開することをお勧めします。これにより、ログが から削除された後も、システムデータを表示して分析できます。RDS for PostgreSQL DB インスタンス。詳細については、「[Amazon CloudWatch Logs への PostgreSQL ログの発行](USER_LogAccess.Concepts.PostgreSQL.md#USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs)」を参照してください。

## ログファイルのローテーションの設定
<a name="USER_LogAccess.Concepts.PostgreSQL.log_rotation"></a>

 Amazon RDS は、デフォルトで 1 時間ごとに新しいログファイルを作成します。このタイミングは、`log_rotation_age` パラメータによって制御されます。このパラメータのデフォルト値は 60 (分) ですが、1 分から 24 時間 (1,440 分) までの任意の時間に設定できます。ローテーションの時期になると、新しい個別のログファイルが作成されます。ファイルには、`log_filename` パラメータによって指定されたパターンに従って名前が付けられます。

ログファイルは、`log_rotation_size` パラメータで指定されたサイズに従ってローテーションすることもできます。このパラメータは、ログが指定されたサイズ (キロバイト単位) に達したときにローテーションされるように指定します。RDS for PostgreSQL DB インスタンスの場合、`log_rotation_size` は未設定です。つまり、値が指定されていません。ただし、このパラメータは 0～2,097,151 KB (キロバイト) の範囲で設定できます。

ログファイル名は、`log_filename` パラメータで指定されたファイル名のパターンに基づきます。このパラメータに使用できる設定は次のとおりです。
+ `postgresql.log.%Y-%m-%d` — ログファイル名のデフォルトフォーマット。年、月、日をログファイルの名前に含めます。
+ `postgresql.log.%Y-%m-%d-%H` — ログファイル名形式に時間を含めます。

詳細については、PostgreSQL ドキュメントの「[https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-AGE](https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-AGE)」と「[https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-SIZE](https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-ROTATION-SIZE)」を参照してください。

## ログの送信先の設定 (`stderr`、`csvlog`)
<a name="USER_LogAccess.Concepts.PostgreSQL.Log_Format"></a>

デフォルトでは、 Amazon RDS PostgreSQL はスタンダードエラー (stderr) 形式でログを生成します。この形式は、`log_destination` パラメータのデフォルト設定です。各メッセージには、`log_line_prefix` パラメータで指定したパターンを使用してプレフィックスが付きます。詳細については、「[log\$1line\$1prefix パラメータの概要](#USER_LogAccess.Concepts.PostgreSQL.Log_Format.log-line-prefix)」を参照してください。

 RDS for PostgreSQL は、`csvlog` フォーマットでログを生成することもできます。`csvlog` は、ログデータをカンマ区切り値 (CSV) データとして分析する場合に便利です。例えば、`log_fdw` 拡張機能を使用して外部テーブルとしてログを使用するとします。`stderr` ログファイルについて作成された外部テーブルには、ログイベントデータを含む 1 つの列が含まれます。`log_destination` パラメータに `csvlog` を追加すると、外部テーブルの複数の列の区切りを含む CSV 形式のログファイルが取得できます。ログをより簡単に分類して分析できるようになりました。`log_fdw` を `csvlog` を指定して使用する方法については、「[SQL を使用した DB ログのアクセスのための log\$1fdw 拡張機能の使用](CHAP_PostgreSQL.Extensions.log_fdw.md)」を参照してください。

このパラメータに `csvlog` を指定する場合、`stderr` ファイル と `csvlog` ファイルの両方が生成されることに注意してください。ログのストレージと回転率に影響する `rds.log_retention_period` とその他の設定を考慮し、ログによって消費されるストレージに注意してください。`stderr` と `csvlog` を使用すると、ログで消費されるストレージが 2 倍以上になります。

`log_destination` に `csvlog` を追加して、`stderr` だけに戻す場合は、パラメータをリセットする必要があります。そのためには、Amazon RDS コンソールを開いて、インスタンスのカスタム DB パラメータグループを開きます。`log_destination` パラメータを選択し、**[Edit parameter]** (パラメータの編集) を選択し、**[Reset]** (リセット) を選択します。

ログの設定の詳細については、「[Amazon RDS および Aurora PostgreSQL ログの操作:パート 1](https://aws.amazon.com/blogs/database/working-with-rds-and-aurora-postgresql-logs-part-1/)」を参照してください。

## log\$1line\$1prefix パラメータの概要
<a name="USER_LogAccess.Concepts.PostgreSQL.Log_Format.log-line-prefix"></a>

`stderr` ログ形式では、各ログメッセージの先頭に `log_line_prefix` パラメータで指定した詳細が追加されます。デフォルト値は次のとおりです。

```
%t:%r:%u@%d:[%p]:t
```

Aurora PostgreSQL バージョン 16 以降では、以下を選択することもできます。

```
%m:%r:%u@%d:[%p]:%l:%e:%s:%v:%x:%c:%q%a
```

stderr に送信される各ログエントリには、選択した値に応じて次の情報が含まれます。
+ `%t` – ミリ秒なしのログエントリの時刻
+ `%m` – ミリ秒付きのログエントリの時刻
+  `%r` – リモートホストのアドレス。
+  `%u@%d` – ユーザー名 @ データベース名。
+  `[%p]` – プロセス ID (使用可能な場合)。
+  `%l` – セッションあたりのログ行数 
+  `%e` – SQL エラーコード 
+  `%s` – プロセス開始時間 
+  `%v` – 仮想トランザクション ID 
+  `%x` – トランザクション ID 
+  `%c` – セッション ID 
+  `%q` – セッション以外のターミネータ 
+  `%a` – アプリケーション名 

# RDS for PostgreSQL DB インスタンスのクエリログ記録をオンにする
<a name="USER_LogAccess.Concepts.PostgreSQL.Query_Logging"></a>

次のテーブルに示すパラメータの一部を設定することで、クエリ、ロック待ちのクエリ、チェックポイント、その他多くの詳細を含む、データベースアクティビティに関するより詳細な情報を収集できます。このトピックでは、クエリのログ記録に焦点を当てます。


| パラメータ  | デフォルト | 説明  | 
| --- | --- | --- | 
| log\$1connections | – | 成功した各接続をログに記録します。 | 
| log\$1disconnections | – | 各セッションの終了とその期間を記録します。 | 
| log\$1checkpoints | 1 | 各チェックポイントをログに記録します。 | 
| log\$1lock\$1waits | – | 長期間にわたるロックの待機をログに記録します。デフォルトでは、このパラメータは設定されていません。 | 
| log\$1min\$1duration\$1sample | – | (ms) ステートメントのサンプリングに関する最小実行時間を設定します。この値を超えるとステートメントがサンプリングされてログに記録されます。サンプルサイズは、log\$1statement\$1sample\$1rate パラメータを使用して設定されます。 | 
| log\$1min\$1duration\$1statement | – | 少なくとも指定された時間以上実行された SQL ステートメントはすべてログに記録されます。デフォルトでは、このパラメータは設定されていません。このパラメータを有効にすると、最適化されていないクエリを見つけるために役立ちます。 | 
| log\$1statement | – | ログに記録するステートメントのタイプを設定します。デフォルトでは、このパラメータは設定されていませんが、`all`、`ddl`、または `mod` に変更して、ログに記録する SQL ステートメントのタイプを指定できます。このパラメータの `none` 以外を指定する場合は、ログファイル内のパスワードが漏洩しないように、追加の手順も実行する必要があります。詳細については、「[クエリのログ記録を使用する際のパスワード漏洩リスクの軽減パスワード漏洩リスクの軽減](#USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk)」を参照してください。 | 
| log\$1statement\$1sample\$1rate | – | `log_min_duration_sample` で指定された時間を超えるステートメントがログに記録される割合で、0.0 から 1.0 の間の浮動小数点値で表されます。 | 
| log\$1statement\$1stats | – | 累積処理のパフォーマンスの統計情報をサーバーログに書き込みます。 | 

## ログ記録を使用してパフォーマンスの低いクエリを見つける
<a name="USER_LogAccess.Concepts.PostgreSQL.Query_Logging.using"></a>

SQL ステートメントとクエリをログに記録すると、パフォーマンスの悪いクエリを見つけるのに役立ちます。この機能を有効にするには、このセクションで説明されているとおり、`log_statement` および `log_min_duration` パラメータの設定を変更します。 RDS for PostgreSQL DB インスタンス、のクエリログ記録を有効にする前に、ログにパスワードが漏洩する可能性と、そのリスクを軽減する方法について知っておく必要があります。詳細については、「[クエリのログ記録を使用する際のパスワード漏洩リスクの軽減パスワード漏洩リスクの軽減](#USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk)」を参照してください。

`log_statement` および `log_min_duration` のパラメータに関する参照情報は、以下を参照してください。log\$1statement

このパラメータは、ログに送信する SQL ステートメントのタイプを指定します。デフォルト値は `none` です。このパラメータを `all`、`ddl`、または `mod` に変更する場合は、ログにパスワードが漏洩するリスクを軽減するために、必ず推奨アクションを適用してください。詳細については、「[クエリのログ記録を使用する際のパスワード漏洩リスクの軽減パスワード漏洩リスクの軽減](#USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk)」を参照してください。

**すべて**  
すべてのステートメントを記録します。この設定はデバッグ目的での使用を推奨します。

**ddl**  
CREATE、ALTER、DROP などのすべてのデータ定義言語 (DDL) ステートメントをログに記録します。

**mod**  
データを変更する DDL ステートメントと、INSERT、UPDATE、DELETE などのデータ操作言語 (DML) ステートメントをすべてログに記録します。

**なし**  
SQL ステートメントはログに記録されません。ログにパスワードが漏れてしまうリスクを避けるため、この設定をお勧めします。log\$1min\$1duration\$1statement

少なくとも指定された時間以上実行された SQL ステートメントはすべてログに記録されます。デフォルトでは、このパラメータは設定されていません。このパラメータを有効にすると、最適化されていないクエリを見つけるために役立ちます。

**–1–2147483647**  
ステートメントがログに記録される実行時間のミリ秒 (ms) 数。

**クエリのログ記録を設定するには**

これらのステップは、RDS for PostgreSQL DB インスタンスはカスタム DB パラメータグループを使用します。

1. `log_statement` パラメータを `all` に設定します。以下の例に示しているのは、このパラメータ設定で `postgresql.log` ファイルに書き込まれる情報です。

   ```
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:LOG: statement: SELECT feedback, s.sentiment,s.confidence
   FROM support,aws_comprehend.detect_sentiment(feedback, 'en') s
   ORDER BY s.confidence DESC;
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:LOG: QUERY STATISTICS
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:DETAIL: ! system usage stats:
   ! 0.017355 s user, 0.000000 s system, 0.168593 s elapsed
   ! [0.025146 s user, 0.000000 s system total]
   ! 36644 kB max resident size
   ! 0/8 [0/8] filesystem blocks in/out
   ! 0/733 [0/1364] page faults/reclaims, 0 [0] swaps
   ! 0 [0] signals rcvd, 0/0 [0/0] messages rcvd/sent
   ! 19/0 [27/0] voluntary/involuntary context switches
   2022-10-05 22:05:52 UTC:52.95.4.1(11335):postgres@labdb:[3639]:STATEMENT: SELECT feedback, s.sentiment,s.confidence
   FROM support,aws_comprehend.detect_sentiment(feedback, 'en') s
   ORDER BY s.confidence DESC;
   2022-10-05 22:05:56 UTC:52.95.4.1(11335):postgres@labdb:[3639]:ERROR: syntax error at or near "ORDER" at character 1
   2022-10-05 22:05:56 UTC:52.95.4.1(11335):postgres@labdb:[3639]:STATEMENT: ORDER BY s.confidence DESC;
   ----------------------- END OF LOG ----------------------
   ```

1. `log_min_duration_statement` パラメータを設定します。以下の例に示しているのは、パラメータを `postgresql.log` に設定したときに `1` ファイルに書き込まれる情報です。

   `log_min_duration_statement` パラメータで指定された期間を超えるクエリはログに記録されます。例を以下に示します。 RDS for PostgreSQL DB インスタンスのログファイルは Amazon RDS コンソールで表示できます。

   ```
   2022-10-05 19:05:19 UTC:52.95.4.1(6461):postgres@labdb:[6144]:LOG: statement: DROP table comments;
   2022-10-05 19:05:19 UTC:52.95.4.1(6461):postgres@labdb:[6144]:LOG: duration: 167.754 ms
   2022-10-05 19:08:07 UTC::@:[355]:LOG: checkpoint starting: time
   2022-10-05 19:08:08 UTC::@:[355]:LOG: checkpoint complete: wrote 11 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=1.013 s, sync=0.006 s, total=1.033 s; sync files=8, longest=0.004 s, average=0.001 s; distance=131028 kB, estimate=131028 kB
   ----------------------- END OF LOG ----------------------
   ```

### クエリのログ記録を使用する際のパスワード漏洩リスクの軽減
<a name="USER_LogAccess.Concepts.PostgreSQL.Query_Logging.mitigate-risk"></a>

パスワードが漏洩しないように、`log_statement` を `none` に設定したままにしておくことをお勧めします。`log_statement` を `all`、`ddl`、または `mod` に設定した場合は、次の手順を 1 つ以上実行することをお勧めします。
+ クライアントの場合は、機密情報を暗号化します。詳細については、PostgreSQL ドキュメントの「[暗号化オプション](https://www.postgresql.org/docs/current/encryption-options.html)」を参照してください。`CREATE` および `ALTER` ステートメントの `ENCRYPTED` (および`UNENCRYPTED`) オプションを使用してください。詳細については、PostgreSQL のドキュメントの「[CREATE USER](https://www.postgresql.org/docs/current/sql-createuser.html)」を参照してください。
+  RDS for PostgreSQL DB インスタンスでは 、PostgreSQL 監査 (pgAudit) 拡張機能をセットアップして使用します。この拡張機能は、ログに送信された CREATE および ALTER ステートメントの機密情報を編集します。詳細については、「[pgAudit を使用してデータベースのアクティビティを記録する](Appendix.PostgreSQL.CommonDBATasks.pgaudit.md)」を参照してください。
+ CloudWatch ログへのアクセスを制限します。
+ IAM など、より強力な認証メカニズムを使用してください。

## Amazon CloudWatch Logs への PostgreSQL ログの発行
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs"></a>

PostgreSQL ログレコードを高い耐久性の高いのストレージに保存するには、Amazon CloudWatch Logs を使用できます。CloudWatch Logs では、ログデータのリアルタイム分析を実行したり、CloudWatch を使用してメトリクスを表示したり、アラームを作成したりすることもできます。例えば、`log_statement` を `ddl` に設定した場合、DDL ステートメントが実行されるたびに警告するアラームを設定できます。RDS for PostgreSQL DB インスタンスの作成プロセス中に PostgreSQL が CloudWatch Logs のログをアップロードするように選択できます。その時点でログをアップロードしないことを選択した場合は、後でインスタンスを変更してその時点からログのアップロードを開始できます。つまり、既存のログはアップロードされません。変更した RDS for PostgreSQL DB インスタンスで作成された新しいログのみがアップロードされます。

現在の PostgreSQL バージョンで利用可能なすべての RDS は、CloudWatch Logs へのログファイルの発行をサポートしています。詳細については、「*Amazon RDS for PostgreSQL リリースノート*」の「[Amazon RDS for PostgreSQL の更新](https://docs.aws.amazon.com/AmazonRDS/latest/PostgreSQLReleaseNotes/postgresql-versions.html)」を参照してください。

CloudWatch Logs を操作するには、ログデータをロググループに発行するように PostgreSQL DB インスタンス用 RDS を設定します。

RDS for PostgreSQL では、次のログの種類を CloudWatch Logs に発行できます。
+ PostgreSQL ログ
+ アップグレードログ 
+ IAM データベース認証エラーログ

設定が完了すると、Amazon RDS はログイベントを CloudWatch ロググループのログストリーミングに発行します。例えば、PostgreSQL ログデータは `/aws/rds/instance/my_instance/postgresql` ロググループに保存されます。ログを表示するには、[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) で CloudWatch コンソールを開きます。

### コンソール
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs.CON"></a>

**コンソールを使用して CloudWatch Logs に PostgreSQL ログを発行するには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**データベース**] を選択します。

1. 変更する DB インスタンスを選択してから、[**変更**] を選択します。

1. [**ログのエクスポート**] セクションで、CloudWatch Logs に公開するログを選択します。

   [**ログのエクスポート**] セクションは、CloudWatch Logs への発行をサポートしている PostgreSQL バージョンでのみ使用できます。

1. [**続行**] を選択し、概要ページで [**Modify DB Instance**] (DB インスタンスの変更) を選択します。

### AWS CLI
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs.CLI"></a>

PostgreSQL ログは、AWS CLI を使用して発行することができます。以下のパラメータを使用して、[https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) コマンドを呼び出せます。
+ `--db-instance-identifier`
+ `--cloudwatch-logs-export-configuration`

**注記**  
`--cloudwatch-logs-export-configuration` オプションへの変更は常に DB インスタンスに即時適用されます。それで、`--apply-immediately` と `--no-apply-immediately` オプションは効果がありません。

以下の CLI コマンドを呼び出すことで PostgreSQL ログを発行することもできます。
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)

以下のオプションを使用して、これらの CLI コマンドの 1 つを実行します。
+ `--db-instance-identifier`
+ `--enable-cloudwatch-logs-exports`
+ `--db-instance-class`
+ `--engine`

実行する CLI コマンドに応じて、他のオプションが必要となる場合があります。

**Example CloudWatch Logs にログを発行するようにインスタンスを変更する**  
次の例では、ログファイルが CloudWatch Logs に発行されるよう既存の PostgreSQL DB インスタンスを変更します。`--cloudwatch-logs-export-configuration` 値は JSON オブジェクトです。このオブジェクトのキーは `EnableLogTypes` であり、値は `postgresql` と `upgrade` を任意に組み合わせた文字列の配列です。  
Linux、macOS、Unix の場合:  

```
1. aws rds modify-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql", "upgrade"]}'
```
Windows の場合:  

```
1. aws rds modify-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql","upgrade"]}'
```

**Example CloudWatch Logs にログを発行するようにインスタンスを作成する**  
次の例では、PostgreSQL DB インスタンスを作成してログファイルを CloudWatch Logs に発行します。`--enable-cloudwatch-logs-exports` 値は、JSON 形式の文字列の配列です。この文字列は `postgresql` と `upgrade` の任意の組み合わせです。  
Linux、macOS、Unix の場合:  

```
1. aws rds create-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --enable-cloudwatch-logs-exports '["postgresql","upgrade"]' \
4.     --db-instance-class db.m4.large \
5.     --engine postgres
```
Windows の場合:  

```
1. aws rds create-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --enable-cloudwatch-logs-exports '["postgresql","upgrade"]' ^
4.     --db-instance-class db.m4.large ^
5.     --engine postgres
```

### RDS API
<a name="USER_LogAccess.Concepts.PostgreSQL.PublishtoCloudWatchLogs.API"></a>

PostgreSQL ログは、RDS API を使用して発行することができます。以下のパラメータを使用して、[https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) アクションを呼び出せます。
+ `DBInstanceIdentifier`
+ `CloudwatchLogsExportConfiguration`

**注記**  
`CloudwatchLogsExportConfiguration` パラメータへの変更は常に DB インスタンスに即時適用されます。それで、`ApplyImmediately` パラメータは効果がありません。

以下の RDS API オペレーションを呼び出すことで PostgreSQL ログを発行することもできます。
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html)

以下のパラメータでこの RDS API オペレーションの 1 つを実行します。
+ `DBInstanceIdentifier`
+ `EnableCloudwatchLogsExports`
+ `Engine`
+ `DBInstanceClass`

実行するオペレーションに応じて、他のパラメータが必要となる場合があります。

 

# AWS CloudTrail での Amazon RDS API コールのモニタリング
<a name="logging-using-cloudtrail"></a>

AWS CloudTrail は、AWS アカウントの監査に役立つ AWS のサービスです。AWS CloudTrail は、AWS アカウントを作成すると、そのアカウントでオンに切り替わります。CloudTrail の詳細については、「[AWS CloudTrail ユーザーガイド](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)」を参照してください。

**Topics**
+ [CloudTrail と Amazon RDS の統合](#service-name-info-in-cloudtrail)
+ [Amazon RDS ログファイルエントリ](#understanding-service-name-entries)

## CloudTrail と Amazon RDS の統合
<a name="service-name-info-in-cloudtrail"></a>

すべての Amazon RDS アクションが、CloudTrail によってログ記録されます。CloudTrail では、Amazon RDS のユーザー、ロール、または AWS のサービスによって実行されたアクションの記録を確認できます。

### CloudTrail のイベント
<a name="service-name-info-in-cloudtrail.events"></a>

CloudTrail が、Amazon RDS のAPI コールをイベントとしてキャプチャします。イベント は、任意の出典からの単一のリクエストを表し、リクエストされたアクション、アクションの日時、リクエストパラメータなどに関する情報が含まれます。イベントには、Amazon RDS コンソールからの呼び出しと、Amazon RDS API 操作へのコード呼び出しが含まれます。

Amazon RDS アクティビティは、**[Event history]** (イベント履歴) の CloudTrail イベントに記録されます。CloudTrail コンソールを使用して、AWS リージョンの過去 90 日間に記録された API アクティビティとイベントを表示できます。詳細については、[CloudTrail イベント履歴でのイベントの表示](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)を参照してください。

### CloudTrail 証跡
<a name="service-name-info-in-cloudtrail.trails"></a>

AWS アカウントのイベント (Amazon RDS のイベントなど) を継続的に記録するには、証跡を作成します。証跡とは、指定した Amazon S3 バケットにイベントを配信するという設定です。CloudTrail は、通常、アカウントアクティビティから 15 分以内にログファイルを配信します。

**注記**  
追跡を設定しない場合でも、CloudTrail コンソールの **イベント履歴**で最新のイベントを表示できます。

AWS アカウントには、すべてのリージョンに適用される証跡と、1 つのリージョンに適用される証跡の 2 種類の証跡を作成できます。デフォルトでは、コンソールで証跡を作成すると、すべての リージョンに証跡が適用されます。

さらに、CloudTrail ログで収集したイベントデータをより詳細に分析し、それに基づく対応するためにその他の AWS のサービスを設定できます。詳細については、次を参照してください。
+ [証跡を作成するための概要](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ 「[CloudTrail がサポートされているサービスと統合](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)」
+ 「[CloudTrail の アマゾン SNS 通知の設定](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)」
+ [CloudTrail ログファイルを複数のリージョンから受け取る](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)と[複数のアカウントから CloudTrail ログファイルを受け取る](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

## Amazon RDS ログファイルエントリ
<a name="understanding-service-name-entries"></a>

CloudTrail のログファイルには、単一か複数のログエントリがあります。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。

次は、`CreateDBInstance` アクションを示す CloudTrail ログエントリの例です。

```
{
    "eventVersion": "1.04",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AKIAIOSFODNN7EXAMPLE",
        "arn": "arn:aws:iam::123456789012:user/johndoe",
        "accountId": "123456789012",
        "accessKeyId": "AKIAI44QH8DHBEXAMPLE",
        "userName": "johndoe"
    },
    "eventTime": "2018-07-30T22:14:06Z",
    "eventSource": "rds.amazonaws.com",
    "eventName": "CreateDBInstance",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "192.0.2.0",
    "userAgent": "aws-cli/1.15.42 Python/3.6.1 Darwin/17.7.0 botocore/1.10.42",
    "requestParameters": {
        "enableCloudwatchLogsExports": [
            "audit",
            "error",
            "general",
            "slowquery"
        ],
        "dBInstanceIdentifier": "test-instance",
        "engine": "mysql",
        "masterUsername": "myawsuser",
        "allocatedStorage": 20,
        "dBInstanceClass": "db.m1.small",
        "masterUserPassword": "****"
    },
    "responseElements": {
        "dBInstanceArn": "arn:aws:rds:us-east-1:123456789012:db:test-instance",
        "storageEncrypted": false,
        "preferredBackupWindow": "10:27-10:57",
        "preferredMaintenanceWindow": "sat:05:47-sat:06:17",
        "backupRetentionPeriod": 1,
        "allocatedStorage": 20,
        "storageType": "standard",
        "engineVersion": "8.0.28",
        "dbInstancePort": 0,
        "optionGroupMemberships": [
            {
                "status": "in-sync",
                "optionGroupName": "default:mysql-8-0"
            }
        ],
        "dBParameterGroups": [
            {
                "dBParameterGroupName": "default.mysql8.0",
                "parameterApplyStatus": "in-sync"
            }
        ],
        "monitoringInterval": 0,
        "dBInstanceClass": "db.m1.small",
        "readReplicaDBInstanceIdentifiers": [],
        "dBSubnetGroup": {
            "dBSubnetGroupName": "default",
            "dBSubnetGroupDescription": "default",
            "subnets": [
                {
                    "subnetAvailabilityZone": {"name": "us-east-1b"},
                    "subnetIdentifier": "subnet-cbfff283",
                    "subnetStatus": "Active"
                },
                {
                    "subnetAvailabilityZone": {"name": "us-east-1e"},
                    "subnetIdentifier": "subnet-d7c825e8",
                    "subnetStatus": "Active"
                },
                {
                    "subnetAvailabilityZone": {"name": "us-east-1f"},
                    "subnetIdentifier": "subnet-6746046b",
                    "subnetStatus": "Active"
                },
                {
                    "subnetAvailabilityZone": {"name": "us-east-1c"},
                    "subnetIdentifier": "subnet-bac383e0",
                    "subnetStatus": "Active"
                },
                {
                    "subnetAvailabilityZone": {"name": "us-east-1d"},
                    "subnetIdentifier": "subnet-42599426",
                    "subnetStatus": "Active"
                },
                {
                    "subnetAvailabilityZone": {"name": "us-east-1a"},
                    "subnetIdentifier": "subnet-da327bf6",
                    "subnetStatus": "Active"
                }
            ],
            "vpcId": "vpc-136a4c6a",
            "subnetGroupStatus": "Complete"
        },
        "masterUsername": "myawsuser",
        "multiAZ": false,
        "autoMinorVersionUpgrade": true,
        "engine": "mysql",
        "cACertificateIdentifier": "rds-ca-2015",
        "dbiResourceId": "db-ETDZIIXHEWY5N7GXVC4SH7H5IA",
        "dBSecurityGroups": [],
        "pendingModifiedValues": {
            "masterUserPassword": "****",
            "pendingCloudwatchLogsExports": {
                "logTypesToEnable": [
                    "audit",
                    "error",
                    "general",
                    "slowquery"
                ]
            }
        },
        "dBInstanceStatus": "creating",
        "publiclyAccessible": true,
        "domainMemberships": [],
        "copyTagsToSnapshot": false,
        "dBInstanceIdentifier": "test-instance",
        "licenseModel": "general-public-license",
        "iAMDatabaseAuthenticationEnabled": false,
        "performanceInsightsEnabled": false,
        "vpcSecurityGroups": [
            {
                "status": "active",
                "vpcSecurityGroupId": "sg-f839b688"
            }
        ]
    },
    "requestID": "daf2e3f5-96a3-4df7-a026-863f96db793e",
    "eventID": "797163d3-5726-441d-80a7-6eeb7464acd4",
    "eventType": "AwsApiCall",
    "recipientAccountId": "123456789012"
}
```

前の例の `userIdentity` 要素に示すように、すべてのイベントまたはログエントリには、誰がリクエストを生成したかに関する情報が含まれています。この ID 情報は以下のことを確認するのに役立ちます。
+ リクエストが、ルートと IAM ユーザー認証情報のどちらを使用して送信されたか。
+ リクエストがロールまたはフェデレーションユーザーの一時的なセキュリティ認証情報を使用して行われたかどうか。
+ リクエストが別の AWS サービスによって行われたかどうか。

`userIdentity` の詳細については、「[CloudTrail userIdentity 要素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)」を参照してください。`CreateDBInstance` およびその他の Amazon RDS アクションの詳細については、「[Amazon RDS API リファレンス](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/)」を参照してください。

# データベースアクティビティストリームを使用した Amazon RDS のモニタリング
<a name="DBActivityStreams"></a><a name="das"></a>

データベースアクティビティストリームを使用すると、データベースアクティビティのストリームをほぼリアルタイムでモニタリングできます。

**Topics**
+ [データベースアクティビティストリーミングの概要](#DBActivityStreams.Overview)
+ [Oracle Database の統合監査の設定](DBActivityStreams.configuring-auditing.md)
+ [Amazon RDS for Microsoft SQL Server の監査ポリシーの設定](DBActivityStreams.configuring-auditing-SQLServer.md)
+ [データベースアクティビティストリーミングのスタート](DBActivityStreams.Enabling.md)
+ [Amazon RDS のデータベースアクティビティストリーミングの変更](DBActivityStreams.Modifying.md)
+ [データベースアクティビティストリーミングのステータスの取得](DBActivityStreams.Status.md)
+ [データベースアクティビティストリーミングの停止](DBActivityStreams.Disabling.md)
+ [データベースアクティビティストリーミングのモニタリング](DBActivityStreams.Monitoring.md)
+ [データベースアクティビティストリームの IAM ポリシーの例](DBActivityStreams.ManagingAccess.md)

## データベースアクティビティストリーミングの概要
<a name="DBActivityStreams.Overview"></a>

Amazon RDS データベース管理者として、データベースを保護し、コンプライアンスおよび規制要件を満たす必要があります。1 つの戦略は、データベースアクティビティストリーミングをモニタリングツールに統合することです。このようにして、データベースでモニタリングを行い、監査アクティビティのアラームを設定します。

セキュリティの脅威は、外部と内部の両方です。内部の脅威から保護するために、データベースアクティビティストリーミング機能を設定して、データストリームへの管理者アクセスを制御できます。Amazon RDS DBA には、ストリームの収集、送信、保存、および処理に対するアクセス権限がありません。

**Contents**
+ [データベースアクティビティストリーミングの機能](#DBActivityStreams.Overview.how-they-work)
+ [Oracle データベースおよび Microsoft SQL Server データベースでの監査](#DBActivityStreams.Overview.auditing)
  + [Oracle Database での統合監査](#DBActivityStreams.Overview.unified-auditing)
  + [Microsoft SQL Server での監査](#DBActivityStreams.Overview.SQLServer-auditing)
  + [Oracle Database および SQL Server の非ネイティブ監査フィールド](#DBActivityStreams.Overview.unified-auditing.non-native)
  + [DB パラメータグループオーバーライド](#DBActivityStreams.Overview.unified-auditing.parameter-group)
+ [データベースアクティビティストリーミングの非同期モード](#DBActivityStreams.Overview.sync-mode)
+ [データベースアクティビティストリームの要件と制限](#DBActivityStreams.Overview.requirements)
+ [利用可能なリージョンとバージョン](#DBActivityStreams.RegionVersionAvailability)
+ [データベースアクティビティストリーミングでサポートされる DB インスタンスクラス](#DBActivityStreams.Overview.requirements.classes)

### データベースアクティビティストリーミングの機能
<a name="DBActivityStreams.Overview.how-they-work"></a>

Amazon RDS は、アクティビティをほぼリアルタイムで Amazon Kinesis データストリームにプッシュします。Kinesis ストリーミングが自動的に作成されます。Kinesis から、Amazon Data Firehose や AWS Lambda などの AWS サービスを設定して、ストリーミングを消費し、データを保存できます。

**重要**  
Amazon RDS のデータベースアクティビティストリーム機能は無料でご利用いただけますが、Amazon Kinesis のデータストリームに対しては課金されます。詳細については、「[Amazon Kinesis Data Streams の料金表](https://aws.amazon.com/kinesis/data-streams/pricing/)」を参照してください。

コンプライアンス管理のためのアプリケーションを設定して、データベースアクティビティストリーミングを使用できます。このようなアプリケーションでストリームを使用して、データベースについてのアラートと監査アクティビティを生成できます。

Amazon RDS は、マルチ AZ 配置でのデータベースアクティビティストリームをサポートしています。この場合、データベースアクティビティストリーミングはプライマリインスタンスとスタンバイインスタンスの両方を監査します。

### Oracle データベースおよび Microsoft SQL Server データベースでの監査
<a name="DBActivityStreams.Overview.auditing"></a>

監査とは、設定されたデータベースアクションをモニタリングし記録することです。Amazon RDS は、デフォルトではデータベースアクティビティをキャプチャしません。データベースで監査ポリシーを自分で作成し、管理します。

**Topics**
+ [Oracle Database での統合監査](#DBActivityStreams.Overview.unified-auditing)
+ [Microsoft SQL Server での監査](#DBActivityStreams.Overview.SQLServer-auditing)
+ [Oracle Database および SQL Server の非ネイティブ監査フィールド](#DBActivityStreams.Overview.unified-auditing.non-native)
+ [DB パラメータグループオーバーライド](#DBActivityStreams.Overview.unified-auditing.parameter-group)

#### Oracle Database での統合監査
<a name="DBActivityStreams.Overview.unified-auditing"></a>

Oracle データベースでは、*統合監査ポリシー*とは、ユーザーの動作のある面を監査するために使用できる監査設定の名前付きグループです。単一のユーザーのアクティビティを監査するといったシンプルなポリシーもあり得ます。条件を使用する複雑な監査ポリシーも作成できます。

Oracle データベースは、`SYS` 監査レコードを含む監査レコードを*統合監査証跡*に書き込みます。例えば、`INSERT` ステートメントでエラーが発生した場合、標準監査では、エラー番号と実行された SQL が示されます。監査証跡は、`AUDSYS` スキーマの読み取り専用テーブルに格納されます。これらのレコードにアクセスするには、`UNIFIED_AUDIT_TRAIL` データディクショナリビューにクエリを実行します。

通常、データベースアクティビティストリーミングは次のように設定します。

1. `CREATE AUDIT POLICY` コマンドを使用して、Oracle Database の監査ポリシーを作成します。

   Oracle Database は、監査レコードを生成します。

1. `AUDIT POLICY` コマンドを使用して、監査ポリシーを有効にします。

1. データベースアクティビティストリーミングを設定します。

   Oracle Database の監査ポリシーに適合するアクティビティのみがキャプチャされ、Amazon Kinesis データストリーミングに送信されます。データベースアクティビティストリーミングが有効な場合、Oracle データベース管理者は監査ポリシーを変更したり、監査ログを削除したりできません。

統合監査ポリシーの詳細については、*Oracle Database セキュリティガイド*の「[統合監査ポリシーおよび AUDIT を使用した監査アクティビティについて](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/configuring-audit-policies.html#GUID-2435D929-10AD-43C7-8A6C-5133170074D0)」を参照してください。

#### Microsoft SQL Server での監査
<a name="DBActivityStreams.Overview.SQLServer-auditing"></a>

データベースアクティビティストリームは、SQLAudit 機能を使用して SQL Server データベースを監査します。

RDS for SQL Server インスタンスには、以下が含まれます。
+ サーバー監査 — SQL サーバー監査では、サーバーレベルまたはデータベースレベルのアクションの単一のインスタンスと、監視するアクションのグループを収集します。サーバーレベルの監査 `RDS_DAS_AUDIT` と `RDS_DAS_AUDIT_CHANGES` は、RDS によって管理されます。
+ サーバー監査仕様 — サーバー監査仕様は、サーバーレベルのイベントを記録します。`RDS_DAS_SERVER_AUDIT_SPEC` 仕様は変更できます。この仕様はサーバー監査 `RDS_DAS_AUDIT` にリンクされています。`RDS_DAS_CHANGES_AUDIT_SPEC` 仕様は RDS によって管理されます。
+ データベース監査仕様 — データベース監査仕様は、データベースレベルのイベントを記録します。データベース監査仕様 `RDS_DAS_DB_<name>` を作成し、それを `RDS_DAS_AUDIT` サーバー監査にリンクできます。

データベースアクティビティストリームは、コンソールまたは CLI を使用して設定できます。通常、データベースアクティビティストリーミングは次のように設定します。

1. (オプション) `CREATE DATABASE AUDIT SPECIFICATION` コマンドを使用してデータベース監査仕様を作成し、それを `RDS_DAS_AUDIT` サーバー監査にリンクします。

1. (オプション) `ALTER SERVER AUDIT SPECIFICATION` コマンドを使用してサーバー監査仕様を変更し、ポリシーを定義します。

1. データベースおよびサーバー監査ポリシーを有効にします。例えば、次のようになります。

   `ALTER DATABASE AUDIT SPECIFICATION [<Your database specification>] WITH (STATE=ON)`

   `ALTER SERVER AUDIT SPECIFICATION [RDS_DAS_SERVER_AUDIT_SPEC] WITH (STATE=ON)`

1. データベースアクティビティストリーミングを設定します。

   サーバーおよびデータベース監査ポリシーに一致するアクティビティのみがキャプチャされ、Amazon Kinesis データストリームに送信されます。データベースアクティビティストリームが有効であり、ポリシーがロックされているときには、データベース管理者は監査ポリシーを変更したり、監査ログを削除したりできません。
**重要**  
特定のデータベースのデータベース監査仕様が有効であり、ポリシーがロック状態の場合、データベースを削除することはできません。

詳細については、*Microsoft SQL Server ドキュメント*の「[SQL Server 監査コンポーネント](https://learn.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-database-engine?view=sql-server-ver16)」を参照してください。



#### Oracle Database および SQL Server の非ネイティブ監査フィールド
<a name="DBActivityStreams.Overview.unified-auditing.non-native"></a>

データベースアクティビティストリーミングをスタートすると、すべてのデータベースイベントが対応するアクティビティストリーミングイベントを生成します。例えば、データベースユーザーが `SELECT` ステートメントと `INSERT` ステートメントを実行したとします。データベースは、これらのイベントを監査し、Amazon Kinesis データストリーミングに送信します。

イベントは、ストリーミングの中で、JSON オブジェクトとして表されます。JSON オブジェクトには、`DatabaseActivityMonitoringRecord` が含まれ、これには `databaseActivityEventList` アレイが含まれています。アレイ内の定義済みフィールドには、`class`、`clientApplication`、`command`などがあります。

デフォルトでは、アクティビティストリーミングにはエンジンネイティブの監査フィールドは含まれません。Amazon RDS for Oracle と SQL Server を設定して、これらの追加フィールドを `engineNativeAuditFields` JSON オブジェクトに含めることができます。

Oracle Database では、統合監査証跡のほとんどのイベントは、RDS データアクティビティストリームのフィールドにマップされます。例えば、統合監査の `UNIFIED_AUDIT_TRAIL.SQL_TEXT` フィールドは、データベースアクティビティストリーミング内の `commandText` フィールドにマッピングされます。ただし、`OS_USERNAME` などの Oracle Database 監査フィールドは、データベースアクティビティストリーミングの定義済みフィールドにマッピングされません。

SQL Server では、SQLAudit によって記録されるイベントのフィールドのほとんどが RDS データベースアクティビティストリームのフィールドにマップされます。例えば、監査の `sys.fn_get_audit_file` の`code` フィールドは、データベースアクティビティストリームの `commandText` フィールドにマップされます。ただし、`permission_bitmask` などの SQL Server データベース監査フィールドは、データベースアクティビティストリームの定義済みフィールドにマップされません。

databaseActivityEventList の詳細については、「[データベースアクティビティストリームの databaseActivityEventList JSON 配列](DBActivityStreams.AuditLog.databaseActivityEventList.md)」を参照してください。

#### DB パラメータグループオーバーライド
<a name="DBActivityStreams.Overview.unified-auditing.parameter-group"></a>

通常、RDS for Oracle で統一監査を有効にするには、パラメータグループをアタッチします。ただし、データベースアクティビティストリームには、追加の設定が必要です。カスタマーエクスペリエンスを向上させるため、Amazon RDS では以下を実行しています。
+ アクティビティストリームを有効にすると、RDS for Oracle はパラメータグループの監査パラメータを無視します。
+ アクティビティストリームを無効にすると、RDS for Oracle は監査パラメータの無視を停止します。

SQL Server のデータベースアクティビティストリームは、SQL Audit オプションで設定したパラメータとは無関係です。

### データベースアクティビティストリーミングの非同期モード
<a name="DBActivityStreams.Overview.sync-mode"></a>

Amazon RDS のアクティビティストリームは、常に非同期です。データベースセッションでアクティビティストリーミングイベントが生成されると、セッションは直ちに通常のアクティビティに戻ります。バックグラウンドでは、Amazon RDS によりアクティビティストリームイベントが永続的なレコードになります。

バックグラウンドタスクでエラーが発生した場合は、Amazon RDS はイベントを生成します。このイベントは、アクティビティストリーミングのイベントレコードが失われた可能性がある時間枠のスタートと終了を示します。非同期モードでは、アクティビティストリーミングの精度よりもデータベースのパフォーマンスが優先されます。

### データベースアクティビティストリームの要件と制限
<a name="DBActivityStreams.Overview.requirements"></a>

RDS では、データベースアクティビティストリームに、次の要件と制限があります。
+ データベースアクティビティストリーミングには、Amazon Kinesis が必要です。
+ 常に暗号化されているため、アクティビティストリーミングには AWS Key Management Service (AWS KMS) が必要です。
+ Amazon Kinesis データストリームに追加の暗号化を適用することは、AWS KMS キーで暗号化済みのデータベースアクティビティストリーミングと互換性がありません。
+ 監査ポリシーは自分で作成して、管理します。Amazon Aurora とは異なり、RDS for Oracle はデフォルトでデータベースアクティビティをキャプチャしません。
+ 監査ポリシーまたは仕様は自分で作成して、管理します。Amazon Aurora とは異なり、Amazon RDS はデフォルトではデータベースアクティビティをキャプチャしません。
+ マルチ AZ 配置では、プライマリ DB インスタンスのみでデータベースアクティビティストリームを開始してください。アクティビティストリーミングは、プライマリインスタンスとスタンバイ DB インスタンスの両方を自動的に監査します。フェイルオーバー中に追加のステップは必要ありません。
+ DB インスタンスの名前を変更しても、新しい Kinesis ストリームは作成されません。
+ CDB は、RDS for Oracle ではサポートされません。
+ リードレプリカはサポートされていません。

### 利用可能なリージョンとバージョン
<a name="DBActivityStreams.RegionVersionAvailability"></a>

機能の可用性とサポートは、各データベースエンジンの特定のバージョン、および AWS リージョン によって異なります。データベースアクティビティストリーミングでのバージョンとリージョンの可用性の詳細については、「[Amazon RDS のデータベースアクティビティストリームでサポートされているリージョンと DB エンジン](Concepts.RDS_Fea_Regions_DB-eng.Feature.DBActivityStreams.md)」を参照してください。

### データベースアクティビティストリーミングでサポートされる DB インスタンスクラス
<a name="DBActivityStreams.Overview.requirements.classes"></a>

RDS for Oracle では、次の DB インスタンスクラスでデータベースアクティビティストリームを使用できます。
+ db.m4.\$1large
+ db.m5.\$1large
+ db.m5d.\$1large
+ db.m6i.\$1large
+ db.r4.\$1large
+ db.r5.\$1large
+ db.r5.\$1large.tpc\$1.mem\$1x
+ db.r5b.\$1large
+ db.r5b.\$1large.tpc\$1.mem\$1x
+ db.r5d.\$1large
+ db.r6i.\$1large
+ db.r6i.\$1large.tpc\$1.mem\$1x
+ db.x2idn.\$1large
+ db.x2iedn.\$1large
+ db.x2iezn.\$1large
+ db.z1d.\$1large

RDS for Oracle では、次の DB インスタンスクラスでデータベースアクティビティストリームを使用できます。
+ db.m4.\$1large
+ db.m5.\$1large
+ db.m5d.\$1large
+ db.m6i.\$1large
+ db.r4.\$1large
+ db.r5.\$1large
+ db.r5b.\$1large
+ db.r5d.\$1large
+ db.r6i.\$1large
+ db.x1e.\$1large
+ db.x2iedn.\$1large
+ db.z1d.\$1large

インスタンスクラスのタイプの詳細については、「[ DB インスタンスクラス](Concepts.DBInstanceClass.md)」を参照してください。

# Oracle Database の統合監査の設定
<a name="DBActivityStreams.configuring-auditing"></a>

データベースアクティビティストリーミングで使用する統合監査を設定すると、次のような状況が発生する可能性があります。
+ Oracle データベースに対して統合監査は設定されていません。

  この場合、新しいポリシーを `CREATE AUDIT POLICY` コマンドで作成し、それを `AUDIT POLICY` コマンドで有効にします。次の例では、特定の権限とロールを持つユーザーをモニタリングするポリシーの作成および有効化を行います。

  ```
  CREATE AUDIT POLICY table_pol
  PRIVILEGES CREATE ANY TABLE, DROP ANY TABLE
  ROLES emp_admin, sales_admin;
  
  AUDIT POLICY table_pol;
  ```

  詳細な手順については、Oracle Database のドキュメントの「[監査ポリシーの設定](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/configuring-audit-policies.html#GUID-22CDB667-5AA2-4051-A262-FBD0236763CB)」を参照してください。
+ Oracle データベースに対して統合監査が設定されます。

  データベースアクティビティストリームを有効にすると、RDS for Oracle によって既存の監査データが自動的にクリアされます。また、監査証跡権限も取り消されます。RDS for Oracle では、次の処理を実行できなくなります。
  + 統合監査証跡レコードを消去する。
  + 統合監査ポリシーを追加、削除、または変更する。
  + 最後にアーカイブされたタイムスタンプを更新します。
**重要**  
データベースアクティビティストリームを有効にする前に、監査データをバックアップすることを強くお勧めします。

  `UNIFIED_AUDIT_TRAIL` ビューについては、「[UNIFIED\$1AUDIT\$1TRAIL](https://docs.oracle.com/database/121/REFRN/GUID-B7CE1C02-2FD4-47D6-80AA-CF74A60CDD1D.htm#REFRN29162)」を参照してください。Oracle Support のアカウントをお持ちの場合は、「[UNIFIED AUDIT TRAIL を消去する方法](https://support.oracle.com/knowledge/Oracle%20Database%20Products/1582627_1.html)」を参照してください。

# Amazon RDS for Microsoft SQL Server の監査ポリシーの設定
<a name="DBActivityStreams.configuring-auditing-SQLServer"></a>

SQL Server データベースインスタンスにはサーバー監査 `RDS_DAS_AUDIT` があり、Amazon RDS によって管理されます。サーバー監査仕様 `RDS_DAS_SERVER_AUDIT_SPEC` にサーバーイベントを記録するポリシーを定義できます。`RDS_DAS_DB_<name>` などのデータベース監査仕様を作成し、データベースイベントを記録するポリシーを定義できます。サーバーレベルとデータベースレベルの監査アクショングループのリストについては、*Microsoft SQL Server ドキュメント*の「[SQL Server 監査アクショングループとアクション](https://learn.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-action-groups-and-actions)」を参照してください。

デフォルトのサーバーポリシーは、失敗したログインと、データベースアクティビティストリームのデータベースまたはサーバー監査仕様の変更のみを監視します。

監査および監査仕様の制限には以下が含まれます。
+ データベースアクティビティストリームが*ロック*状態の場合、サーバーまたはデータベースの監査仕様を変更することはできません。
+ サーバー監査 `RDS_DAS_AUDIT` の仕様は変更できません。
+ SQL Server 監査 `RDS_DAS_CHANGES` または関連するサーバー監査仕様 `RDS_DAS_CHANGES_AUDIT_SPEC` は変更できません。
+ データベース監査仕様を作成するときには、`RDS_DAS_DB_databaseActions` などの形式 `RDS_DAS_DB_<name>` を使用する必要があります。

**重要**  
小規模なインスタンスクラスでは、すべてを監査せず、必要なデータだけを監査することをお勧めします。これにより、これらのインスタンスクラスに対するデータベースアクティビティストリームのパフォーマンスへの影響を軽減できます。

次のサンプルコードは、サーバー監査仕様 `RDS_DAS_SERVER_AUDIT_SPEC` を変更し、ログアウトと成功したログインアクションを監査します。

```
ALTER SERVER AUDIT SPECIFICATION [RDS_DAS_SERVER_AUDIT_SPEC]
      WITH (STATE=OFF);
ALTER SERVER AUDIT SPECIFICATION [RDS_DAS_SERVER_AUDIT_SPEC]
      ADD (LOGOUT_GROUP),
      ADD (SUCCESSFUL_LOGIN_GROUP)
      WITH (STATE = ON );
```

次のサンプルコードは、データベース監査仕様 `RDS_DAS_DB_database_spec` を作成し、それをサーバー監査 `RDS_DAS_AUDIT` に添付します。

```
USE testDB;
CREATE DATABASE AUDIT SPECIFICATION [RDS_DAS_DB_database_spec]
     FOR SERVER AUDIT [RDS_DAS_AUDIT]
     ADD ( INSERT, UPDATE, DELETE  
          ON testTable BY testUser )  
     WITH (STATE = ON);
```

監査仕様を設定したら、仕様 `RDS_DAS_SERVER_AUDIT_SPEC` および `RDS_DAS_DB_<name>` が `ON` の状態に設定されていることを確認します。これで、監査データをデータベースアクティビティストリームに送信できます。

# データベースアクティビティストリーミングのスタート
<a name="DBActivityStreams.Enabling"></a>

DB インスタンスのアクティビティストリームを開始すると、監査ポリシーで設定したデータベースアクティビティイベントごとに、アクティビティストリームイベントが生成されます。アクセスイベントは `CONNECT`、`SELECT` などの SQL コマンドから生成されます。変更イベントは `CREATE`、`INSERT` などの SQL コマンドから生成されます。

**重要**  
Oracle DB インスタンスのアクティビティストリーミングを有効にすると、既存の監査データが消去されます。また、監査証跡権限も取り消されます。ストリーミングを有効にすると、RDS for Oracle では次の処理を実行できなくなります。  
統合監査証跡レコードを消去する。
統合監査ポリシーを追加、削除、または変更する。
最後にアーカイブされたタイムスタンプを更新する。

------
#### [ Console ]

**データベースアクティビティストリーミングをスタートするには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、**[Databases]** (データベース) を選択します。

1. アクティビティストリームを有効にする Amazon RDS データベースインスタンスを選択します。マルチ AZ 配置では、プライマリインスタンスのみでストリーミングをスタートします。アクティビティストリーミングは、プライマリインスタンスとスタンバイインスタンスの両方を監査します。

1. [**アクション**] で [**アクティビティストリーミングの開始**] を選択します。

   [**データベースアクティビティストリーミングの開始: ***名前*] ウィンドウが表示されます。ここで、*name* は RDS インスタンスです。

1. 以下の設定を入力します。
   + [**AWS KMS key**] では、 AWS KMS keys のリストからキーを選択します。

     Amazon RDS は、KMS キーを使用してキーを暗号化し、それによってデータベースアクティビティを暗号化します。デフォルトキー以外の KMS キーを選択します。暗号化キーと AWS KMS の詳細については、*AWS Key Management Service デベロッパーガイド*の「[AWS Key Management Service とは？](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)」を参照してください。
   + **[データベースアクティビティイベント]** で、**[エンジンネイティブ監査フィールドを有効にする]** を選択して、エンジン固有の監査フィールドを含めます。
   + [**すぐに適用**] を選択します。

     **[直ちに]** を選択する場合直ちにとすると、RDS インスタンスがすぐに再起動します。を選択すると**次のメンテナンス時間中**とすると、RDS インスタンスはすぐには再起動しません。この場合、データベースアクティビティストリーミングは、次のメンテナンスウィンドウまでスタートされません。

1. **[Start database activity stream]** (データベースアクティビティストリームを開始) を選択します。

   データベースのステータスは、アクティビティストリームが開始していることを示します。
**注記**  
`You can't start a database activity stream in this configuration` というエラーが表示された場合は、[データベースアクティビティストリーミングでサポートされる DB インスタンスクラス](DBActivityStreams.md#DBActivityStreams.Overview.requirements.classes) で RDS インスタンスがサポートされているインスタンスクラスを使用しているかを確認してください。

------
#### [ AWS CLI ]

DB インスタンスのデータベースアクティビティストリームを開始するには、AWS CLI コマンド [start-activity-stream](https://docs.aws.amazon.com/cli/latest/reference/rds/start-activity-stream.html) を使用して データベースを設定します。
+ `--resource-arn arn` - DB インスタンスの Amazon リソースネーム (ARN) を指定します。
+ `--kms-key-id key` - データベースアクティビティストリーミング内のメッセージを暗号化するための KMS キー識別子を指定します。AWS KMS キー識別子は、キー ARN、キー ID、エイリアス ARN、または AWS KMS key のエイリアス名です。
+ `--engine-native-audit-fields-included` - エンジン固有の監査フィールドをデータストリームに含めます。これらのフィールドを除外するには、`--no-engine-native-audit-fields-included` (デフォルト) を指定します。

次の例では、非同期モードで DB インスタンスのデータベースアクティビティストリームを開始します。

Linux、macOS、Unix の場合:

```
aws rds start-activity-stream \
    --mode async \
    --kms-key-id my-kms-key-arn \
    --resource-arn my-instance-arn \
    --engine-native-audit-fields-included \
    --apply-immediately
```

Windows の場合:

```
aws rds start-activity-stream ^
    --mode async ^
    --kms-key-id my-kms-key-arn ^
    --resource-arn my-instance-arn ^
    --engine-native-audit-fields-included ^
    --apply-immediately
```

------
#### [ Amazon RDS API ]

DB インスタンスのデータベースアクティビティストリームを開始するには、[StartActivityStream](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StartActivityStream.html) オペレーションを使用してインスタンスを設定します。

以下のパラメータを使用してアクションを呼び出します。
+ `Region`
+ `KmsKeyId`
+ `ResourceArn`
+ `Mode`
+ `EngineNativeAuditFieldsIncluded`

------

# Amazon RDS のデータベースアクティビティストリーミングの変更
<a name="DBActivityStreams.Modifying"></a>

アクティビティストリームの開始時に Amazon RDS 監査ポリシーをカスタマイズしたい場合があります。アクティビティストリーミングを停止して時間とデータを失いたくない場合は、*ポリシーの状態の監査*を以下のいずれかの設定に変更します。

**ロック (デフォルト)**  
データベース内の監査ポリシーは読み取り専用です。

**ロック解除**  
データベース内の監査ポリシーは、読み取り/書き込みが可能です。

基本的なステップは次のとおりです。

1. 監査ポリシーの状態をロック解除に変更します。

1. 監査ポリシーをカスタマイズします。

1. 監査ポリシーの状態をロックに変更します。

## コンソール
<a name="DBActivityStreams.Modifying-collapsible-section-E1"></a>

**アクティビティストリーミングの監査ポリシーステータスを変更するには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**データベース**] を選択します。

1. **[Actions]** (アクション) で、選択してください**[Modify database activity stream]** (データベースアクティビティストリーミングの変更) を選択します。

   **[Modify database activity stream: *name*]** (データベースアクティビティストリームの変更: 名前) ウィンドウが表示されます。ここで、*名前*は RDS インスタンスです。

1. 次のいずれかのオプションを選択します。  
**ロック**  
監査ポリシーをロックすると、読み取り専用になります。ポリシーをロック解除するか、アクティビティストリーミングを停止しない限り、監査ポリシーを編集することはできません。  
**ロック解除**  
監査ポリシーをロック解除すると、読み取り/書き込みが可能になります。アクティビティストリーミングの起動中に監査ポリシーを編集できます。

1. **[Modify DB activity stream]** (DB アクティビティストリーミングの変更) を選択します。

   Amazon RDS データベースのステータスは、**[アクティビティストリームの設定中]** と表示されます。

1. (オプション) DB インスタンスリンクを選択します。そして、[**Configuration (設定)**] タブを選択します。

   **[Audit policy status]** (ポリシーステータスの監査) フィールドには、次のいずれかの値が表示されます。
   + **ロック**
   + **ロック解除**
   + **ロックのポリシー**
   + **ロック解除のポリシー**

## AWS CLI
<a name="DBActivityStreams.Modifying-collapsible-section-E2"></a>

データベースインスタンスのアクティビティストリームの状態を変更するには、[modify-activity-stream](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-activity-stream.html) AWS CLI コマンドを使用します。


****  

| オプション | 必須? | [Description] (説明) | 
| --- | --- | --- | 
|  `--resource-arn my-instance-ARN`  |  可能  |  RDS データベースインスタンスの Amazon リソースネーム (ARN)。  | 
|  `--audit-policy-state`  |  不可  |  インスタンスのデータベースアクティビティストリーミングの監査ポリシーの新しい状態: `locked` または `unlocked`。  | 

次の例では、*my-instance-ARN* で起動されたアクティビティストリーミングの監査ポリシーをロック解除します。

Linux、macOS、Unix の場合:

```
aws rds modify-activity-stream \
    --resource-arn my-instance-ARN \
    --audit-policy-state unlocked
```

Windows の場合:

```
aws rds modify-activity-stream ^
    --resource-arn my-instance-ARN ^
    --audit-policy-state unlocked
```

次の例ではインスタンス *my-instance* について説明します。出力例の一部は、監査ポリシーがロック解除されていることを示しています。

```
aws rds describe-db-instances --db-instance-identifier my-instance

{
    "DBInstances": [
        {
            ...
            "Engine": "oracle-ee",
            ...
            "ActivityStreamStatus": "started",
            "ActivityStreamKmsKeyId": "ab12345e-1111-2bc3-12a3-ab1cd12345e",
            "ActivityStreamKinesisStreamName": "aws-rds-das-db-AB1CDEFG23GHIJK4LMNOPQRST",
            "ActivityStreamMode": "async",
            "ActivityStreamEngineNativeAuditFieldsIncluded": true, 
            "ActivityStreamPolicyStatus": "unlocked",
            ...
        }
    ]
}
```

## RDS API
<a name="DBActivityStreams.Modifying-collapsible-section-E3"></a>

データベースアクティビティストリーミングのポリシーステートを変更するには、[ModifyActivityStream](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyActivityStream.html) オペレーションを使用します。

以下のパラメータを使用してアクションを呼び出します。
+ `AuditPolicyState`
+ `ResourceArn`

# データベースアクティビティストリーミングのステータスの取得
<a name="DBActivityStreams.Status"></a>

Amazon RDS データベースインスタンスのアクティビティストリームのステータスを取得するには、コンソールまたは AWS CLI を使用します。

## コンソール
<a name="DBActivityStreams.Status-collapsible-section-S1"></a>

**データベースアクティビティストリーミングのステータスを取得するには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**データベース**] を選択し、DB インスタンスのリンクを選択します。

1. [**設定**] タブを選択して、ステータスを取得する [**データベースアクティビティストリーミング**] をオンにします。

## AWS CLI
<a name="DBActivityStreams.Status-collapsible-section-S2"></a>

[describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) CLI リクエストに対するレスポンスとして、データベースインスタンスのアクティビティストリーム設定を取得できます。

次の例は、 *my-instance* を説明します。

```
aws rds --region my-region describe-db-instances --db-instance-identifier my-db
```

以下は JSON レスポンスの例です。次のフィールドが表示されます。
+ `ActivityStreamKinesisStreamName`
+ `ActivityStreamKmsKeyId`
+ `ActivityStreamStatus`
+ `ActivityStreamMode`
+ `ActivityStreamPolicyStatus`



```
{
    "DBInstances": [
        {
            ...
            "Engine": "oracle-ee",
            ...
            "ActivityStreamStatus": "starting",
            "ActivityStreamKmsKeyId": "ab12345e-1111-2bc3-12a3-ab1cd12345e",
            "ActivityStreamKinesisStreamName": "aws-rds-das-db-AB1CDEFG23GHIJK4LMNOPQRST",
            "ActivityStreamMode": "async",
            "ActivityStreamEngineNativeAuditFieldsIncluded": true, 
            "ActivityStreamPolicyStatus": locked",
            ...
        }
    ]
}
```

## RDS API
<a name="DBActivityStreams.Status-collapsible-section-S3"></a>

 [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) オペレーションに対するレスポンスとして、データベースのアクティビティストリーミングの設定を取得できます。

# データベースアクティビティストリーミングの停止
<a name="DBActivityStreams.Disabling"></a>

アクティビティストリーミングを停止するには、コンソールまたは AWS CLI を使用します。

Amazon RDS データベースインスタンスを削除すると、アクティビティストリームが停止し、基になる Amazon Kinesis ストリームが自動的に削除されます。

## コンソール
<a name="DBActivityStreams.Disabling-collapsible-section-D1"></a>

**アクティビティストリーミングを停止するには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**データベース**] を選択します。

1. データベースアクティビティストリーミングを停止する データベースを選択します。

1. [**アクション**] で [**アクティビティストリーミングの停止**] を選択します。[**データベースアクティビティストリーミング**] ウィンドウが表示されます。

   1. [**すぐに適用**] を選択します。

      **[直ちに]** を選択する場合直ちにとすると、RDS インスタンスがすぐに再起動します。を選択すると**次のメンテナンス時間中**とすると、RDS インスタンスはすぐには再起動しません。この場合、データベースアクティビティストリーミングは、次のメンテナンスウィンドウまで停止しません。

   1. [**続行**] を選択します。

## AWS CLI
<a name="DBActivityStreams.Disabling-collapsible-section-D2"></a>

データベースのデータベースアクティビティストリーミングを停止するには、AWS CLI コマンドの [stop-activity-stream](https://docs.aws.amazon.com/cli/latest/reference/rds/stop-activity-stream.html) を使用して DB インスタンスを設定します。のDB インスタンスの AWS リージョンを識別するには、`--region` パラメータを指定します。`--apply-immediately` パラメータはオプションです。

Linux、macOS、Unix の場合:

```
aws rds --region MY_REGION \
    stop-activity-stream \
    --resource-arn MY_DB_ARN \
    --apply-immediately
```

Windows の場合:

```
aws rds --region MY_REGION ^
    stop-activity-stream ^
    --resource-arn MY_DB_ARN ^
    --apply-immediately
```

## RDS API
<a name="DBActivityStreams.Disabling-collapsible-section-D3"></a>

データベースのデータベースアクティビティストリーミングを停止するには、[StopActivityStream](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_StopActivityStream.html) オペレーションを使用して、DB インスタンスを設定します。のDB インスタンスの AWS リージョンを識別するには、`Region` パラメータを指定します。`ApplyImmediately` パラメータはオプションです。

# データベースアクティビティストリーミングのモニタリング
<a name="DBActivityStreams.Monitoring"></a>

データベースアクティビティストリーミングは、アクティビティをモニタリングして報告します。アクティビティのストリーミングは、収集後、Amazon Kinesis に送信されます。Kinesis から、アクティビティストリーミングをモニタリングしたり、他のサービスやアプリケーションがアクティビティストリーミングを使用して詳細な分析を行うことができます。基礎となる Kinesis ストリーム名は、AWS CLI コマンドの `describe-db-instances` または RDS API `DescribeDBInstances` オペレーションを使用して検索できます。

Amazon RDS は、Kinesis ストリーミングを次のように管理します。
+ Amazon RDS は、24 時間の保存期間の Kinesis ストリーミングを自動的に作成します。
+  Amazon RDS は、必要に応じて Kinesis ストリーミングをスケールします。
+  データベースアクティビティストリーミングを停止したり、DB インスタンスを削除したりすると、Amazon RDS によって Kinesis ストリームが削除されます。

以下のカテゴリのアクティビティがモニタリングされ、アクティビティストリーミングの監査ログに追加されます。
+ **SQL コマンド** - すべての SQL コマンドに加えて、準備済みステートメント、組み込み関数、および PL/SQL の関数も監査されます。ストアドプロシージャへの呼び出しが監査されます。ストアドプロシージャまたは関数内で発行された SQL ステートメントも監査されます。
+ **他のデータベース情報** - モニタリングされるアクティビティには、完全な SQL ステートメント、DML コマンドから影響を受ける行の行数、アクセスされたオブジェクト、および一意のデータベース名が含まれます。また、データベースアクティビティストリーミングは、バインド可変とストアドプロシージャパラメータもモニタリングします。
**重要**  
各ステートメントの完全な SQL テキストは、機密データを含むアクティビティストリーミング監査ログに表示されます。ただし、Oracle が次の SQL ステートメントのようにコンテキストから判断できる場合、データベースユーザーのパスワードは訂正されます。  

  ```
  ALTER ROLE role-name WITH password
  ```
+ **接続情報** - モニタリングされるアクティビティには、セッションとネットワークの情報、サーバープロセス ID、および終了コードなどがあります。

DB インスタンスのモニタリング中にアクティビティストリーミングに障害が発生した場合は、RDS イベントを通じて通知されます。

以下のセクションでは、データベースアクティビティストリームへのアクセス、監査、処理を行うことができます。

**Topics**
+ [Amazon Kinesis からのアクティビティストリーミングへのアクセス](DBActivityStreams.KinesisAccess.md)
+ [データベースアクティビティストリームの監査ログコンテンツおよび例](DBActivityStreams.AuditLog.md)
+ [データベースアクティビティストリームの databaseActivityEventList JSON 配列](DBActivityStreams.AuditLog.databaseActivityEventList.md)
+ [AWS SDK を使用したデータベースアクティビティストリーミングの処理](DBActivityStreams.CodeExample.md)

# Amazon Kinesis からのアクティビティストリーミングへのアクセス
<a name="DBActivityStreams.KinesisAccess"></a>

データベースのアクティビティストリーミングを有効にすると、Kinesis ストリーミングが作成されます。データベースのアクティビティは、Kinesis からリアルタイムでモニタリングできます。データベースのアクティビティを詳細に分析するには、Kinesis ストリーミングをコンシューマーアプリケーションに接続します。また、IBM の Security Guardium または Imperva の SecureSphere Database Audit and Protection などのコンプライアンス管理アプリケーションにストリーミングを接続することもできます。

Kinesis ストリームには、RDS コンソールまたは Kinesis コンソールからアクセスできます。

**RDS コンソールを使用して、Kinesis からアクティビティストリーミングにアクセスするには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**データベース**] を選択します。

1. アクティビティストリームを開始する Amazon RDS データベースインスタンスを選択します。

1. **[設定]** を選択します。

1. **[Database activity stream]** (データベースアクティビティストリーム) で、**[Kinesis stream]** (Kinesis ストリーム) の下のリンクを選択します。

1. データベースアクティビティの観察を開始するには、Kinesis コンソールで **[Monitoring]** (モニタリング) を選択します。

**Kinesis コンソールを使用して、Kinesis からアクティビティストリーミングにアクセスするには**

1. Kinesis コンソール ([https://console.aws.amazon.com/kinesis](https://console.aws.amazon.com/kinesis)) を開きます。

1. Kinesis ストリーミングのリストからアクティビティストリーミングを選択します。

   アクティビティストリーミングの名前には、プレフィックス `aws-rds-das-db-` が付き、その後に データベースのリソース ID が続きます。次に例を示します。

   ```
   aws-rds-das-db-NHVOV4PCLWHGF52NP
   ```

   Amazon RDS コンソールを使用して データベースのリソース ID を検索するには、データベースのリストから DB インスタンスを選択した上で、[**設定**] タブを選択します。

   AWS CLI を使用して、アクティビティストリーミングの Kinesis ストリームの完全な名前を検索するには、 [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) CLI リクエストを使用し、そのレスポンスに含まれる `ActivityStreamKinesisStreamName` の値を書き留めます。

1. データベースアクティビティの観察をスタートするには、[**モニタリング**] を選択します。

Amazon Kinesis の使用の詳細については、「[Amazon Kinesis Data Streams とは](https://docs.aws.amazon.com/streams/latest/dev/introduction.html)」を参照してください。

# データベースアクティビティストリームの監査ログコンテンツおよび例
<a name="DBActivityStreams.AuditLog"></a>

モニタリングされるイベントは、データベースアクティビティストリーミングでは JSON 文字列として表されます。この構造は、`DatabaseActivityMonitoringRecord` を含む JSON オブジェクトで構成されます。このオブジェクトには、アクティビティイベントの `databaseActivityEventList` 配列が含まれます。

**注記**  
データベースアクティビティストリームの場合、`paramList` JSON 配列には Hibernate アプリケーションからの null 値は含まれません。

**Topics**
+ [アクティビティストリーミングの監査ログの例](#DBActivityStreams.AuditLog.Examples)
+ [DatabaseActivityMonitoringRecords JSON オブジェクト](#DBActivityStreams.AuditLog.DatabaseActivityMonitoringRecords)
+ [databaseActivityEvents JSON オブジェクト](#DBActivityStreams.AuditLog.databaseActivityEvents)

## アクティビティストリーミングの監査ログの例
<a name="DBActivityStreams.AuditLog.Examples"></a>

以下に、アクティビティイベントレコードの復号されたサンプルの JSON 監査ログを示します。

**Example CONNECT SQL ステートメント のアクティビティイベントレコード**  
次のアクティビティイベントレコードは、Oracle DB について、JDBC Thin Client (`clientApplication`) による `CONNECT` SQL ステートメント (`command`) を使用したログインを示しています。  

```
{
    "class": "Standard",
    "clientApplication": "JDBC Thin Client",
    "command": "LOGON",
    "commandText": null,
    "dbid": "0123456789",
    "databaseName": "ORCL",
    "dbProtocol": "oracle",
    "dbUserName": "TEST",
    "endTime": null,
    "errorMessage": null,
    "exitCode": 0,
    "logTime": "2021-01-15 00:15:36.233787",
    "netProtocol": "tcp",
    "objectName": null,
    "objectType": null,
    "paramList": [],
    "pid": 17904,
    "remoteHost": "123.456.789.012",
    "remotePort": "25440",
    "rowCount": null,
    "serverHost": "987.654.321.098",
    "serverType": "oracle",
    "serverVersion": "19.0.0.0.ru-2020-01.rur-2020-01.r1.EE.3",
    "serviceName": "oracle-ee",
    "sessionId": 987654321,
    "startTime": null,
    "statementId": 1,
    "substatementId": null,
    "transactionId": "0000000000000000",
    "engineNativeAuditFields": {
        "UNIFIED_AUDIT_POLICIES": "TEST_POL_EVERYTHING",
        "FGA_POLICY_NAME": null,
        "DV_OBJECT_STATUS": null,
        "SYSTEM_PRIVILEGE_USED": "CREATE SESSION",
        "OLS_LABEL_COMPONENT_TYPE": null,
        "XS_SESSIONID": null,
        "ADDITIONAL_INFO": null,
        "INSTANCE_ID": 1,
        "DBID": 123456789
        "DV_COMMENT": null,
        "RMAN_SESSION_STAMP": null,
        "NEW_NAME": null,
        "DV_ACTION_NAME": null,
        "OLS_PROGRAM_UNIT_NAME": null,
        "OLS_STRING_LABEL": null,
        "RMAN_SESSION_RECID": null,
        "OBJECT_PRIVILEGES": null,
        "OLS_OLD_VALUE": null,
        "XS_TARGET_PRINCIPAL_NAME": null,
        "XS_NS_ATTRIBUTE": null,
        "XS_NS_NAME": null,
        "DBLINK_INFO": null,
        "AUTHENTICATION_TYPE": "(TYPE\u003d(DATABASE));(CLIENT ADDRESS\u003d((ADDRESS\u003d(PROTOCOL\u003dtcp)(HOST\u003d205.251.233.183)(PORT\u003d25440))));",
        "OBJECT_EDITION": null,
        "OLS_PRIVILEGES_GRANTED": null,
        "EXCLUDED_USER": null,
        "DV_ACTION_OBJECT_NAME": null,
        "OLS_LABEL_COMPONENT_NAME": null,
        "EXCLUDED_SCHEMA": null,
        "DP_TEXT_PARAMETERS1": null,
        "XS_USER_NAME": null,
        "XS_ENABLED_ROLE": null,
        "XS_NS_ATTRIBUTE_NEW_VAL": null,
        "DIRECT_PATH_NUM_COLUMNS_LOADED": null,
        "AUDIT_OPTION": null,
        "DV_EXTENDED_ACTION_CODE": null,
        "XS_PACKAGE_NAME": null,
        "OLS_NEW_VALUE": null,
        "DV_RETURN_CODE": null,
        "XS_CALLBACK_EVENT_TYPE": null,
        "USERHOST": "a1b2c3d4e5f6.amazon.com",
        "GLOBAL_USERID": null,
        "CLIENT_IDENTIFIER": null,
        "RMAN_OPERATION": null,
        "TERMINAL": "unknown",
        "OS_USERNAME": "sumepate",
        "OLS_MAX_READ_LABEL": null,
        "XS_PROXY_USER_NAME": null,
        "XS_DATASEC_POLICY_NAME": null,
        "DV_FACTOR_CONTEXT": null,
        "OLS_MAX_WRITE_LABEL": null,
        "OLS_PARENT_GROUP_NAME": null,
        "EXCLUDED_OBJECT": null,
        "DV_RULE_SET_NAME": null,
        "EXTERNAL_USERID": null,
        "EXECUTION_ID": null,
        "ROLE": null,
        "PROXY_SESSIONID": 0,
        "DP_BOOLEAN_PARAMETERS1": null,
        "OLS_POLICY_NAME": null,
        "OLS_GRANTEE": null,
        "OLS_MIN_WRITE_LABEL": null,
        "APPLICATION_CONTEXTS": null,
        "XS_SCHEMA_NAME": null,
        "DV_GRANTEE": null,
        "XS_COOKIE": null,
        "DBPROXY_USERNAME": null,
        "DV_ACTION_CODE": null,
        "OLS_PRIVILEGES_USED": null,
        "RMAN_DEVICE_TYPE": null,
        "XS_NS_ATTRIBUTE_OLD_VAL": null,
        "TARGET_USER": null,
        "XS_ENTITY_TYPE": null,
        "ENTRY_ID": 1,
        "XS_PROCEDURE_NAME": null,
        "XS_INACTIVITY_TIMEOUT": null,
        "RMAN_OBJECT_TYPE": null,
        "SYSTEM_PRIVILEGE": null,
        "NEW_SCHEMA": null,
        "SCN": 5124715
    }
}
```
次のアクティビティイベントレコードは、SQL Server DB のログイン失敗を示しています。  

```
{
    "type": "DatabaseActivityMonitoringRecord",
    "clusterId": "",
    "instanceId": "db-4JCWQLUZVFYP7DIWP6JVQ77O3Q",
    "databaseActivityEventList": [
        {
            "class": "LOGIN",
            "clientApplication": "Microsoft SQL Server Management Studio",
            "command": "LOGIN FAILED",
            "commandText": "Login failed for user 'test'. Reason: Password did not match that for the login provided. [CLIENT: local-machine]",
            "databaseName": "",
            "dbProtocol": "SQLSERVER",
            "dbUserName": "test",
            "endTime": null,
            "errorMessage": null,
            "exitCode": 0,
            "logTime": "2022-10-06 21:34:42.7113072+00",
            "netProtocol": null,
            "objectName": "",
            "objectType": "LOGIN",
            "paramList": null,
            "pid": null,
            "remoteHost": "local machine",
            "remotePort": null,
            "rowCount": 0,
            "serverHost": "172.31.30.159",
            "serverType": "SQLSERVER",
            "serverVersion": "15.00.4073.23.v1.R1",
            "serviceName": "sqlserver-ee",
            "sessionId": 0,
            "startTime": null,
            "statementId": "0x1eb0d1808d34a94b9d3dcf5432750f02",
            "substatementId": 1,
            "transactionId": "0",
            "type": "record",
            "engineNativeAuditFields": {
                "target_database_principal_id": 0,
                "target_server_principal_id": 0,
                "target_database_principal_name": "",
                "server_principal_id": 0,
                "user_defined_information": "",
                "response_rows": 0,
                "database_principal_name": "",
                "target_server_principal_name": "",
                "schema_name": "",
                "is_column_permission": false,
                "object_id": 0,
                "server_instance_name": "EC2AMAZ-NFUJJNO",
                "target_server_principal_sid": null,
                "additional_information": "<action_info "xmlns=\"http://schemas.microsoft.com/sqlserver/2008/sqlaudit_data\"><pooled_connection>0</pooled_connection><error>0x00004818</error><state>8</state><address>local machine</address><PasswordFirstNibbleHash>B</PasswordFirstNibbleHash></action_info>"-->,
                "duration_milliseconds": 0,
                "permission_bitmask": "0x00000000000000000000000000000000",
                "data_sensitivity_information": "",
                "session_server_principal_name": "",
                "connection_id": "98B4F537-0F82-49E3-AB08-B9D33B5893EF",
                "audit_schema_version": 1,
                "database_principal_id": 0,
                "server_principal_sid": null,
                "user_defined_event_id": 0,
                "host_name": "EC2AMAZ-NFUJJNO"
            }
        }
    ]
}
```
データベースアクティビティストリーミングが有効になっていない場合、JSON ドキュメントの最後のフィールドは `"engineNativeAuditFields": { }` になります。

**Example CREATE TABLE ステートメントのアクティビティイベントレコード**  
次の例は、Oracle データベースの `CREATE TABLE` イベントを示しています。  

```
{
    "class": "Standard",
    "clientApplication": "sqlplus@ip-12-34-5-678 (TNS V1-V3)",
    "command": "CREATE TABLE",
    "commandText": "CREATE TABLE persons(\n    person_id NUMBER GENERATED BY DEFAULT AS IDENTITY,\n    first_name VARCHAR2(50) NOT NULL,\n    last_name VARCHAR2(50) NOT NULL,\n    PRIMARY KEY(person_id)\n)",
    "dbid": "0123456789",
    "databaseName": "ORCL",
    "dbProtocol": "oracle",
    "dbUserName": "TEST",
    "endTime": null,
    "errorMessage": null,
    "exitCode": 0,
    "logTime": "2021-01-15 00:22:49.535239",
    "netProtocol": "beq",
    "objectName": "PERSONS",
    "objectType": "TEST",
    "paramList": [],
    "pid": 17687,
    "remoteHost": "123.456.789.0",
    "remotePort": null,
    "rowCount": null,
    "serverHost": "987.654.321.01",
    "serverType": "oracle",
    "serverVersion": "19.0.0.0.ru-2020-01.rur-2020-01.r1.EE.3",
    "serviceName": "oracle-ee",
    "sessionId": 1234567890,
    "startTime": null,
    "statementId": 43,
    "substatementId": null,
    "transactionId": "090011007F0D0000",
    "engineNativeAuditFields": {
        "UNIFIED_AUDIT_POLICIES": "TEST_POL_EVERYTHING",
        "FGA_POLICY_NAME": null,
        "DV_OBJECT_STATUS": null,
        "SYSTEM_PRIVILEGE_USED": "CREATE SEQUENCE, CREATE TABLE",
        "OLS_LABEL_COMPONENT_TYPE": null,
        "XS_SESSIONID": null,
        "ADDITIONAL_INFO": null,
        "INSTANCE_ID": 1,
        "DV_COMMENT": null,
        "RMAN_SESSION_STAMP": null,
        "NEW_NAME": null,
        "DV_ACTION_NAME": null,
        "OLS_PROGRAM_UNIT_NAME": null,
        "OLS_STRING_LABEL": null,
        "RMAN_SESSION_RECID": null,
        "OBJECT_PRIVILEGES": null,
        "OLS_OLD_VALUE": null,
        "XS_TARGET_PRINCIPAL_NAME": null,
        "XS_NS_ATTRIBUTE": null,
        "XS_NS_NAME": null,
        "DBLINK_INFO": null,
        "AUTHENTICATION_TYPE": "(TYPE\u003d(DATABASE));(CLIENT ADDRESS\u003d((PROTOCOL\u003dbeq)(HOST\u003d123.456.789.0)));",
        "OBJECT_EDITION": null,
        "OLS_PRIVILEGES_GRANTED": null,
        "EXCLUDED_USER": null,
        "DV_ACTION_OBJECT_NAME": null,
        "OLS_LABEL_COMPONENT_NAME": null,
        "EXCLUDED_SCHEMA": null,
        "DP_TEXT_PARAMETERS1": null,
        "XS_USER_NAME": null,
        "XS_ENABLED_ROLE": null,
        "XS_NS_ATTRIBUTE_NEW_VAL": null,
        "DIRECT_PATH_NUM_COLUMNS_LOADED": null,
        "AUDIT_OPTION": null,
        "DV_EXTENDED_ACTION_CODE": null,
        "XS_PACKAGE_NAME": null,
        "OLS_NEW_VALUE": null,
        "DV_RETURN_CODE": null,
        "XS_CALLBACK_EVENT_TYPE": null,
        "USERHOST": "ip-10-13-0-122",
        "GLOBAL_USERID": null,
        "CLIENT_IDENTIFIER": null,
        "RMAN_OPERATION": null,
        "TERMINAL": "pts/1",
        "OS_USERNAME": "rdsdb",
        "OLS_MAX_READ_LABEL": null,
        "XS_PROXY_USER_NAME": null,
        "XS_DATASEC_POLICY_NAME": null,
        "DV_FACTOR_CONTEXT": null,
        "OLS_MAX_WRITE_LABEL": null,
        "OLS_PARENT_GROUP_NAME": null,
        "EXCLUDED_OBJECT": null,
        "DV_RULE_SET_NAME": null,
        "EXTERNAL_USERID": null,
        "EXECUTION_ID": null,
        "ROLE": null,
        "PROXY_SESSIONID": 0,
        "DP_BOOLEAN_PARAMETERS1": null,
        "OLS_POLICY_NAME": null,
        "OLS_GRANTEE": null,
        "OLS_MIN_WRITE_LABEL": null,
        "APPLICATION_CONTEXTS": null,
        "XS_SCHEMA_NAME": null,
        "DV_GRANTEE": null,
        "XS_COOKIE": null,
        "DBPROXY_USERNAME": null,
        "DV_ACTION_CODE": null,
        "OLS_PRIVILEGES_USED": null,
        "RMAN_DEVICE_TYPE": null,
        "XS_NS_ATTRIBUTE_OLD_VAL": null,
        "TARGET_USER": null,
        "XS_ENTITY_TYPE": null,
        "ENTRY_ID": 12,
        "XS_PROCEDURE_NAME": null,
        "XS_INACTIVITY_TIMEOUT": null,
        "RMAN_OBJECT_TYPE": null,
        "SYSTEM_PRIVILEGE": null,
        "NEW_SCHEMA": null,
        "SCN": 5133083
    }
}
```
次の例は、SQL Server データベースの `CREATE TABLE` イベントを示しています。  

```
{
    "type": "DatabaseActivityMonitoringRecord",
    "clusterId": "",
    "instanceId": "db-4JCWQLUZVFYP7DIWP6JVQ77O3Q",
    "databaseActivityEventList": [
        {
            "class": "SCHEMA",
            "clientApplication": "Microsoft SQL Server Management Studio - Query",
            "command": "ALTER",
            "commandText": "Create table [testDB].[dbo].[TestTable2](\r\ntextA varchar(6000),\r\n    textB varchar(6000)\r\n)",
            "databaseName": "testDB",
            "dbProtocol": "SQLSERVER",
            "dbUserName": "test",
            "endTime": null,
            "errorMessage": null,
            "exitCode": 1,
            "logTime": "2022-10-06 21:44:38.4120677+00",
            "netProtocol": null,
            "objectName": "dbo",
            "objectType": "SCHEMA",
            "paramList": null,
            "pid": null,
            "remoteHost": "local machine",
            "remotePort": null,
            "rowCount": 0,
            "serverHost": "172.31.30.159",
            "serverType": "SQLSERVER",
            "serverVersion": "15.00.4073.23.v1.R1",
            "serviceName": "sqlserver-ee",
            "sessionId": 84,
            "startTime": null,
            "statementId": "0x5178d33d56e95e419558b9607158a5bd",
            "substatementId": 1,
            "transactionId": "4561864",
            "type": "record",
            "engineNativeAuditFields": {
                "target_database_principal_id": 0,
                "target_server_principal_id": 0,
                "target_database_principal_name": "",
                "server_principal_id": 2,
                "user_defined_information": "",
                "response_rows": 0,
                "database_principal_name": "dbo",
                "target_server_principal_name": "",
                "schema_name": "",
                "is_column_permission": false,
                "object_id": 1,
                "server_instance_name": "EC2AMAZ-NFUJJNO",
                "target_server_principal_sid": null,
                "additional_information": "",
                "duration_milliseconds": 0,
                "permission_bitmask": "0x00000000000000000000000000000000",
                "data_sensitivity_information": "",
                "session_server_principal_name": "test",
                "connection_id": "EE1FE3FD-EF2C-41FD-AF45-9051E0CD983A",
                "audit_schema_version": 1,
                "database_principal_id": 1,
                "server_principal_sid": "0x010500000000000515000000bdc2795e2d0717901ba6998cf4010000",
                "user_defined_event_id": 0,
                "host_name": "EC2AMAZ-NFUJJNO"
            }
        }
    ]
}
```

**Example SELECT ステートメントのアクティビティイベントレコード**  
次の例は、Oracle DB の `SELECT` イベントを示しています。  

```
{
    "class": "Standard",
    "clientApplication": "sqlplus@ip-12-34-5-678 (TNS V1-V3)",
    "command": "SELECT",
    "commandText": "select count(*) from persons",
    "databaseName": "1234567890",
    "dbProtocol": "oracle",
    "dbUserName": "TEST",
    "endTime": null,
    "errorMessage": null,
    "exitCode": 0,
    "logTime": "2021-01-15 00:25:18.850375",
    "netProtocol": "beq",
    "objectName": "PERSONS",
    "objectType": "TEST",
    "paramList": [],
    "pid": 17687,
    "remoteHost": "123.456.789.0",
    "remotePort": null,
    "rowCount": null,
    "serverHost": "987.654.321.09",
    "serverType": "oracle",
    "serverVersion": "19.0.0.0.ru-2020-01.rur-2020-01.r1.EE.3",
    "serviceName": "oracle-ee",
    "sessionId": 1080639707,
    "startTime": null,
    "statementId": 44,
    "substatementId": null,
    "transactionId": null,
    "engineNativeAuditFields": {
        "UNIFIED_AUDIT_POLICIES": "TEST_POL_EVERYTHING",
        "FGA_POLICY_NAME": null,
        "DV_OBJECT_STATUS": null,
        "SYSTEM_PRIVILEGE_USED": null,
        "OLS_LABEL_COMPONENT_TYPE": null,
        "XS_SESSIONID": null,
        "ADDITIONAL_INFO": null,
        "INSTANCE_ID": 1,
        "DV_COMMENT": null,
        "RMAN_SESSION_STAMP": null,
        "NEW_NAME": null,
        "DV_ACTION_NAME": null,
        "OLS_PROGRAM_UNIT_NAME": null,
        "OLS_STRING_LABEL": null,
        "RMAN_SESSION_RECID": null,
        "OBJECT_PRIVILEGES": null,
        "OLS_OLD_VALUE": null,
        "XS_TARGET_PRINCIPAL_NAME": null,
        "XS_NS_ATTRIBUTE": null,
        "XS_NS_NAME": null,
        "DBLINK_INFO": null,
        "AUTHENTICATION_TYPE": "(TYPE\u003d(DATABASE));(CLIENT ADDRESS\u003d((PROTOCOL\u003dbeq)(HOST\u003d123.456.789.0)));",
        "OBJECT_EDITION": null,
        "OLS_PRIVILEGES_GRANTED": null,
        "EXCLUDED_USER": null,
        "DV_ACTION_OBJECT_NAME": null,
        "OLS_LABEL_COMPONENT_NAME": null,
        "EXCLUDED_SCHEMA": null,
        "DP_TEXT_PARAMETERS1": null,
        "XS_USER_NAME": null,
        "XS_ENABLED_ROLE": null,
        "XS_NS_ATTRIBUTE_NEW_VAL": null,
        "DIRECT_PATH_NUM_COLUMNS_LOADED": null,
        "AUDIT_OPTION": null,
        "DV_EXTENDED_ACTION_CODE": null,
        "XS_PACKAGE_NAME": null,
        "OLS_NEW_VALUE": null,
        "DV_RETURN_CODE": null,
        "XS_CALLBACK_EVENT_TYPE": null,
        "USERHOST": "ip-12-34-5-678",
        "GLOBAL_USERID": null,
        "CLIENT_IDENTIFIER": null,
        "RMAN_OPERATION": null,
        "TERMINAL": "pts/1",
        "OS_USERNAME": "rdsdb",
        "OLS_MAX_READ_LABEL": null,
        "XS_PROXY_USER_NAME": null,
        "XS_DATASEC_POLICY_NAME": null,
        "DV_FACTOR_CONTEXT": null,
        "OLS_MAX_WRITE_LABEL": null,
        "OLS_PARENT_GROUP_NAME": null,
        "EXCLUDED_OBJECT": null,
        "DV_RULE_SET_NAME": null,
        "EXTERNAL_USERID": null,
        "EXECUTION_ID": null,
        "ROLE": null,
        "PROXY_SESSIONID": 0,
        "DP_BOOLEAN_PARAMETERS1": null,
        "OLS_POLICY_NAME": null,
        "OLS_GRANTEE": null,
        "OLS_MIN_WRITE_LABEL": null,
        "APPLICATION_CONTEXTS": null,
        "XS_SCHEMA_NAME": null,
        "DV_GRANTEE": null,
        "XS_COOKIE": null,
        "DBPROXY_USERNAME": null,
        "DV_ACTION_CODE": null,
        "OLS_PRIVILEGES_USED": null,
        "RMAN_DEVICE_TYPE": null,
        "XS_NS_ATTRIBUTE_OLD_VAL": null,
        "TARGET_USER": null,
        "XS_ENTITY_TYPE": null,
        "ENTRY_ID": 13,
        "XS_PROCEDURE_NAME": null,
        "XS_INACTIVITY_TIMEOUT": null,
        "RMAN_OBJECT_TYPE": null,
        "SYSTEM_PRIVILEGE": null,
        "NEW_SCHEMA": null,
        "SCN": 5136972
    }
}
```
次の例は、SQL Server DB の `SELECT` イベントを示しています。  

```
{
    "type": "DatabaseActivityMonitoringRecord",
    "clusterId": "",
    "instanceId": "db-4JCWQLUZVFYP7DIWP6JVQ77O3Q",
    "databaseActivityEventList": [
        {
            "class": "TABLE",
            "clientApplication": "Microsoft SQL Server Management Studio - Query",
            "command": "SELECT",
            "commandText": "select * from [testDB].[dbo].[TestTable]",
            "databaseName": "testDB",
            "dbProtocol": "SQLSERVER",
            "dbUserName": "test",
            "endTime": null,
            "errorMessage": null,
            "exitCode": 1,
            "logTime": "2022-10-06 21:24:59.9422268+00",
            "netProtocol": null,
            "objectName": "TestTable",
            "objectType": "TABLE",
            "paramList": null,
            "pid": null,
            "remoteHost": "local machine",
            "remotePort": null,
            "rowCount": 0,
            "serverHost": "172.31.30.159",
            "serverType": "SQLSERVER",
            "serverVersion": "15.00.4073.23.v1.R1",
            "serviceName": "sqlserver-ee",
            "sessionId": 62,
            "startTime": null,
            "statementId": "0x03baed90412f564fad640ebe51f89b99",
            "substatementId": 1,
            "transactionId": "4532935",
            "type": "record",
            "engineNativeAuditFields": {
                "target_database_principal_id": 0,
                "target_server_principal_id": 0,
                "target_database_principal_name": "",
                "server_principal_id": 2,
                "user_defined_information": "",
                "response_rows": 0,
                "database_principal_name": "dbo",
                "target_server_principal_name": "",
                "schema_name": "dbo",
                "is_column_permission": true,
                "object_id": 581577110,
                "server_instance_name": "EC2AMAZ-NFUJJNO",
                "target_server_principal_sid": null,
                "additional_information": "",
                "duration_milliseconds": 0,
                "permission_bitmask": "0x00000000000000000000000000000001",
                "data_sensitivity_information": "",
                "session_server_principal_name": "test",
                "connection_id": "AD3A5084-FB83-45C1-8334-E923459A8109",
                "audit_schema_version": 1,
                "database_principal_id": 1,
                "server_principal_sid": "0x010500000000000515000000bdc2795e2d0717901ba6998cf4010000",
                "user_defined_event_id": 0,
                "host_name": "EC2AMAZ-NFUJJNO"
            }
        }
    ]
}
```

## DatabaseActivityMonitoringRecords JSON オブジェクト
<a name="DBActivityStreams.AuditLog.DatabaseActivityMonitoringRecords"></a>

データベースアクティビティイベントレコードは、次の情報を含む JSON オブジェクトにあります。


****  

| JSON フィールド | データ型 | 説明 | 
| --- | --- | --- | 
|  `type`  | 文字列 |  JSON レコードのタイプ。値は `DatabaseActivityMonitoringRecords` です。  | 
| version | 文字列 |  データベースアクティビティモニタリングレコードのバージョン。Oracle DB ではバージョン 1.3、SQL Server ではバージョン 1.4 を使用します。これらのエンジンバージョンでは engineNativeAuditFields JSON オブジェクトが導入されています。  | 
|  [databaseActivityEvents](#DBActivityStreams.AuditLog.databaseActivityEvents)  | string |  アクティビティイベントを含む JSON オブジェクト。  | 
| key | string | [databaseActivityEventList JSON 配列](DBActivityStreams.AuditLog.databaseActivityEventList.md) の復号に使用する暗号化キー。 | 

## databaseActivityEvents JSON オブジェクト
<a name="DBActivityStreams.AuditLog.databaseActivityEvents"></a>

`databaseActivityEvents` JSON オブジェクトには、次の情報が含まれています。

### JSON レコードの最上位フィールド
<a name="DBActivityStreams.AuditLog.topLevel"></a>

 監査ログの各イベントは、JSON 形式のレコード内にラップされます。このレコードには、次のフィールドが含まれます。

**type**  
 このフィールドは常に値 `DatabaseActivityMonitoringRecords` を持ちます。

**バージョン**  
 このフィールドは、データベースアクティビティストリーミングデータプロトコルまたはコントラクトのバージョンを表します。これは、使用可能なフィールドを定義します。

**databaseActivityEvents**  
 1 つ以上のアクティビティイベントを表す暗号化された文字列。これは、base64 バイト配列として表されます。文字列を復号すると、このセクションの例に示すフィールドを持つ JSON 形式のレコードが生成されます。

**key**  
 `databaseActivityEvents` 文字列の暗号化に使用される暗号化されたデータキー。これは、データベースアクティビティストリーミングをスタートしたときに指定した AWS KMS key と同じです。

 以下の例は、このレコードの形式を示しています。

```
{
  "type":"DatabaseActivityMonitoringRecords",
  "version":"1.3",
  "databaseActivityEvents":"encrypted audit records",
  "key":"encrypted key"
}
```

```
           "type":"DatabaseActivityMonitoringRecords",
           "version":"1.4",
           "databaseActivityEvents":"encrypted audit records",
           "key":"encrypted key"
```

`databaseActivityEvents` フィールドの内容を復号化するには、次のステップを実行します。

1.  データベースアクティビティストリーミングをスタートするときに指定した KMS キーを使用して、`key` JSON フィールドの値を復号します。これにより、データ暗号化キーがクリアテキストで返されます。

1.  `databaseActivityEvents` JSON フィールドの値を Base64 デコードして、監査ペイロードの暗号化テキストをバイナリ形式で取得します。

1.  初期のステップでデコードしたデータ暗号化キーを使用して、バイナリ暗号文を復号化します。

1.  復号化されたペイロードを解凍します。
   +  暗号化されたペイロードは、`databaseActivityEvents` フィールドにあります。
   +  `databaseActivityEventList` フィールドには、監査レコードの配列が含まれます。配列内の `type` フィールドには、 `record` または `heartbeat` を使用できます。

監査ログのアクティビティイベントレコードは、次の情報を含む JSON オブジェクトです。


****  

| JSON フィールド | データ型 | 説明 | 
| --- | --- | --- | 
|  `type`  | 文字列 |  JSON レコードのタイプ。値は `DatabaseActivityMonitoringRecord` です。  | 
| instanceId | 文字列 | DB インスタンスのリソース識別子。DB インスタンス属性 DbiResourceId に対応します。 | 
|  [databaseActivityEventList JSON 配列](DBActivityStreams.AuditLog.databaseActivityEventList.md)   | 文字列 |  アクティビティ監査レコードまたはハートビートメッセージの配列。  | 

# データベースアクティビティストリームの databaseActivityEventList JSON 配列
<a name="DBActivityStreams.AuditLog.databaseActivityEventList"></a>

監査ログのペイロードは、暗号化された `databaseActivityEventList` JSON 配列です。次の表に、監査ログの復号された `DatabaseActivityEventList` 配列内の各アクティビティイベントのフィールドをアルファベット順に示します。

Oracle Database で統合監査が有効になっている場合、この新しい監査証跡に監査レコードが配置されます。`UNIFIED_AUDIT_TRAIL` ビューでは、監査証跡から監査レコードを取得することにより、監査レコードを表形式で表示します。データベースアクティビティストリーミングをスタートすると、`UNIFIED_AUDIT_TRAIL` 内の列が `databaseActivityEventList` 配列のフィールドにマッピングされます。

**重要**  
イベントの構造は変わる場合があります。Amazon RDS では、将来、アクティビティイベントに新しいフィールドが追加される可能性があります。JSON データを分析するアプリケーションでは、コードが未知のフィールド名に対して無視または適切なアクションを実行できることを確認します。

## Amazon RDS for Oracle の databaseActivityEventList フィールド
<a name="DBActivityStreams.AuditLog.databaseActivityEventList.ro"></a>

Amazon RDS for Oracle の `databaseActivityEventList` フィールドは以下のとおりです。


| フィールド | データ型 | 送信元 | 説明 | 
| --- | --- | --- | --- | 
|  `class`  |  文字列  |  `UNIFIED_AUDIT_TRAIL` の `AUDIT_TYPE` 列  |  アクティビティイベントのクラス。これは `UNIFIED_AUDIT_TRAIL` ビューの `AUDIT_TYPE` 列に対応します。Amazon RDS for Oracle の有効な値は以下のとおりです。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/DBActivityStreams.AuditLog.databaseActivityEventList.html) 詳細については、Oracle ドキュメントの「[UNIFIED\$1AUDIT\$1TRAIL](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/UNIFIED_AUDIT_TRAIL.html#GUID-B7CE1C02-2FD4-47D6-80AA-CF74A60CDD1D)」を参照してください。  | 
|  `clientApplication`  |  文字列  |  `CLIENT_PROGRAM_NAME` ( 内)`UNIFIED_AUDIT_TRAIL`  |  クライアントのレポートどおりにクライアントが接続に使用していたアプリケーション。クライアントはこの情報を指定する必要はないため、値は null でも問題ありません。サンプル値は`JDBC Thin Client`。  | 
|  `command`  |  文字列  |  `UNIFIED_AUDIT_TRAIL` の `ACTION_NAME` 列  |  ユーザーによって実行されるアクションの名前。完全なアクションを把握するには、コマンド名と `AUDIT_TYPE` 値の両方を読み取ります。サンプル値は`ALTER DATABASE`。  | 
|  `commandText`  |  文字列  |  `UNIFIED_AUDIT_TRAIL` の `SQL_TEXT` 列  |  イベントに関連付けられる SQL ステートメント。サンプル値は`ALTER DATABASE BEGIN BACKUP`。  | 
|  `databaseName`  |  文字列  |  `V$DATABASE` の `NAME` 列  |  データベースの名前。  | 
|  `dbid`  |  number  |  `UNIFIED_AUDIT_TRAIL` の `DBID` 列  |  データベースの数値識別子。サンプル値は`1559204751`。  | 
|  `dbProtocol`  |  文字列  |  該当なし  |  データベースプロトコル。このベータ版では、値は `oracle` です。  | 
|  `dbUserName`  |  文字列  |  `UNIFIED_AUDIT_TRAIL` の `DBUSERNAME` 列  |  アクションが監査されたデータベースユーザーの名前。サンプル値は`RDSADMIN`。  | 
|  `endTime`  |  文字列  |  該当なし  |  このフィールドは RDS for Oracle には使用されず、常に null です。  | 
|  `engineNativeAuditFields`  |  オブジェクト  |  `UNIFIED_AUDIT_TRAIL`  |  デフォルトでは、このオブジェクトは空です。`--engine-native-audit-fields-included` オプションでアクティビティストリーミングをスタートすると、このオブジェクトには以下の列とその値が含まれます。 <pre>ADDITIONAL_INFO<br />APPLICATION_CONTEXTS<br />AUDIT_OPTION<br />AUTHENTICATION_TYPE<br />CLIENT_IDENTIFIER<br />CURRENT_USER<br />DBLINK_INFO<br />DBPROXY_USERNAME<br />DIRECT_PATH_NUM_COLUMNS_LOADED<br />DP_BOOLEAN_PARAMETERS1<br />DP_TEXT_PARAMETERS1<br />DV_ACTION_CODE<br />DV_ACTION_NAME<br />DV_ACTION_OBJECT_NAME<br />DV_COMMENT<br />DV_EXTENDED_ACTION_CODE<br />DV_FACTOR_CONTEXT<br />DV_GRANTEE<br />DV_OBJECT_STATUS<br />DV_RETURN_CODE<br />DV_RULE_SET_NAME<br />ENTRY_ID<br />EXCLUDED_OBJECT<br />EXCLUDED_SCHEMA<br />EXCLUDED_USER<br />EXECUTION_ID<br />EXTERNAL_USERID<br />FGA_POLICY_NAME<br />GLOBAL_USERID<br />INSTANCE_ID<br />KSACL_SERVICE_NAME<br />KSACL_SOURCE_LOCATION<br />KSACL_USER_NAME<br />NEW_NAME<br />NEW_SCHEMA<br />OBJECT_EDITION<br />OBJECT_PRIVILEGES<br />OLS_GRANTEE<br />OLS_LABEL_COMPONENT_NAME<br />OLS_LABEL_COMPONENT_TYPE<br />OLS_MAX_READ_LABEL<br />OLS_MAX_WRITE_LABEL<br />OLS_MIN_WRITE_LABEL<br />OLS_NEW_VALUE<br />OLS_OLD_VALUE<br />OLS_PARENT_GROUP_NAME<br />OLS_POLICY_NAME<br />OLS_PRIVILEGES_GRANTED<br />OLS_PRIVILEGES_USED<br />OLS_PROGRAM_UNIT_NAME<br />OLS_STRING_LABEL<br />OS_USERNAME<br />PROTOCOL_ACTION_NAME<br />PROTOCOL_MESSAGE<br />PROTOCOL_RETURN_CODE<br />PROTOCOL_SESSION_ID<br />PROTOCOL_USERHOST<br />PROXY_SESSIONID<br />RLS_INFO<br />RMAN_DEVICE_TYPE<br />RMAN_OBJECT_TYPE<br />RMAN_OPERATION<br />RMAN_SESSION_RECID<br />RMAN_SESSION_STAMP<br />ROLE<br />SCN<br />SYSTEM_PRIVILEGE<br />SYSTEM_PRIVILEGE_USED<br />TARGET_USER<br />TERMINAL<br />UNIFIED_AUDIT_POLICIES<br />USERHOST<br />XS_CALLBACK_EVENT_TYPE<br />XS_COOKIE<br />XS_DATASEC_POLICY_NAME<br />XS_ENABLED_ROLE<br />XS_ENTITY_TYPE<br />XS_INACTIVITY_TIMEOUT<br />XS_NS_ATTRIBUTE<br />XS_NS_ATTRIBUTE_NEW_VAL<br />XS_NS_ATTRIBUTE_OLD_VAL<br />XS_NS_NAME<br />XS_PACKAGE_NAME<br />XS_PROCEDURE_NAME<br />XS_PROXY_USER_NAME<br />XS_SCHEMA_NAME<br />XS_SESSIONID<br />XS_TARGET_PRINCIPAL_NAME<br />XS_USER_NAME</pre> 詳細については、Oracle Database ドキュメントの「[UNIFIED\$1AUDIT\$1TRAIL](https://docs.oracle.com/database/121/REFRN/GUID-B7CE1C02-2FD4-47D6-80AA-CF74A60CDD1D.htm#REFRN29162)」を参照してください。  | 
|  `errorMessage`  |  文字列  |  該当なし  |  このフィールドは RDS for Oracle には使用されず、常に null です。  | 
|  `exitCode`  |  number  |  `UNIFIED_AUDIT_TRAIL` の `RETURN_CODE` 列  |  アクションによって生成された Oracle データベースのエラーコード。アクションが成功した場合、値は `0` です。  | 
|  `logTime`  |  文字列  |  `UNIFIED_AUDIT_TRAIL` の `EVENT_TIMESTAMP_UTC` 列  |  監査証跡エントリの作成のタイムスタンプ。サンプル値は`2020-11-27 06:56:14.981404`。  | 
|  `netProtocol`  |  文字列  |  `UNIFIED_AUDIT_TRAIL` の `AUTHENTICATION_TYPE` 列  |  ネットワーク通信プロトコル。サンプル値は`TCP`。  | 
|  `objectName`  |  文字列  |  `UNIFIED_AUDIT_TRAIL` の `OBJECT_NAME` 列  |  アクションによって影響を及ぼされるオブジェクトの名前。サンプル値は`employees`。  | 
|  `objectType`  |  文字列  |  `UNIFIED_AUDIT_TRAIL` の `OBJECT_SCHEMA` 列  |  アクションによって影響を及ぼされるオブジェクトのスキーマ名。サンプル値は`hr`。  | 
|  `paramList`  |  リスト  |  `UNIFIED_AUDIT_TRAIL` の `SQL_BINDS` 列  |  `SQL_TEXT` に関連付けられているバインド可変のリスト (存在する場合)。サンプル値は`parameter_1,parameter_2`。  | 
|  `pid`  |  number  |  `UNIFIED_AUDIT_TRAIL` の `OS_PROCESS` 列  |  Oracle データベースプロセスのオペレーティングシステムプロセス識別子。サンプル値は`22396`。  | 
|  `remoteHost`  |  文字列  |  `UNIFIED_AUDIT_TRAIL` の `AUTHENTICATION_TYPE` 列  |  セッションを生成したホストのクライアント IP アドレスまたは名前です。サンプル値は`123.456.789.123`。  | 
|  `remotePort`  |  文字列  |  `UNIFIED_AUDIT_TRAIL` の `AUTHENTICATION_TYPE` 列  |  クライアントのポート番号。Oracle Database 環境における一般的な値は `1521` です。  | 
|  `rowCount`  |  number  |  該当なし  |  このフィールドは RDS for Oracle には使用されず、常に null です。  | 
|  `serverHost`  |  文字列  |  データーベースホスト:   |  データベースサーバーのホスト IP アドレス。サンプル値は`123.456.789.123`。  | 
|  `serverType`  |  文字列  |  該当なし  |  データベースサーバーのタイプ。値は常に `ORACLE` です。  | 
|  `serverVersion`  |  文字列  |  データーベースホスト:   |  Amazon RDS for Oracle のバージョン、リリースアップデート (RU)、およびリリースアップデートリビジョン (RUR)。サンプル値は`19.0.0.0.ru-2020-01.rur-2020-01.r1.EE.3`。  | 
|  `serviceName`  |  文字列  |  データーベースホスト:   |  サービスの名前。サンプル値は`oracle-ee`。  | 
|  `sessionId`  |  number  |  `UNIFIED_AUDIT_TRAIL` の `SESSIONID` 列  |  監査のセッション識別子。例: 「`1894327130`」。  | 
|  `startTime`  |  文字列  |  該当なし  |  このフィールドは RDS for Oracle には使用されず、常に null です。  | 
|  `statementId`  |  number  |  `UNIFIED_AUDIT_TRAIL` の `STATEMENT_ID` 列  |  実行する各ステートメントの数値 ID。1 つのステートメントで多くのアクションが起こる可能性があります。サンプル値は`142197`。  | 
|  `substatementId`  |  該当なし  |  該当なし  |  このフィールドは RDS for Oracle には使用されず、常に null です。  | 
|  `transactionId`  |  文字列  |  `UNIFIED_AUDIT_TRAIL` の `TRANSACTION_ID` 列  |  オブジェクトが変更されるトランザクションの識別子。サンプル値は`02000800D5030000`。  | 

## Amazon RDS for SQL Server の databaseActivityEventList フィールド
<a name="DBActivityStreams.AuditLog.databaseActivityEventList.rss"></a>

Amazon RDS for SQL Server の `databaseActivityEventList` フィールドは次のとおりです。


| フィールド | データ型 | 送信元 | 説明 | 
| --- | --- | --- | --- | 
|  `class`  |  string  |  ` sys.fn_get_audit_file.class_type` のマッピング先 `sys.dm_audit_class_type_map.class_type_desc`  |  アクティビティイベントのクラス。詳細については、Microsoft ドキュメントの「[SQL Server 監査 (データベースエンジン)](https://learn.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-database-engine?view=sql-server-ver16)」を参照してください。  | 
|  `clientApplication`  |  文字列  |  `sys.fn_get_audit_file.application_name`  |  クライアントから報告されたとおりにクライアントが接続するアプリケーション (SQL Server バージョン 14 以降)。SQL Server バージョン 13 では、このフィールドは NULL になっています。  | 
|  `command`  |  文字列  |  `sys.fn_get_audit_file.action_id` のマッピング先 `sys.dm_audit_actions.name`  |  SQL ステートメントの一般的なカテゴリ。このフィールドの値はクラスの値によって異なります。  | 
|  `commandText`  |  文字列  |  `sys.fn_get_audit_file.statement`  |  このフィールドは SQL ステートメントを示します。  | 
|  `databaseName`  |  文字列  |  `sys.fn_get_audit_file.database_name`  |  データベースの名前  | 
|  `dbProtocol`  |  文字列  |  該当なし  |  データベースプロトコル。値は `SQLSERVER` です。  | 
|  `dbUserName`  |  文字列  |  `sys.fn_get_audit_file.server_principal_name`  |  クライアント認証のためのデータベースユーザー。  | 
|  `endTime`  |  文字列  |  該当なし  |  このフィールドは Amazon RDS for SQL Server では使用されず、値は null です。  | 
|  `engineNativeAuditFields`  |  オブジェクト  |  この列にリストされていない `sys.fn_get_audit_file` の各フィールド。  |  デフォルトでは、このオブジェクトは空です。`--engine-native-audit-fields-included` オプションでアクティビティストリームを開始すると、このオブジェクトには他のネイティブエンジン監査フィールドが含まれ、この JSON マップでは返されません。  | 
|  `errorMessage`  |  文字列  |  該当なし  |  このフィールドは Amazon RDS for SQL Server では使用されず、値は null です。  | 
|  `exitCode`  |  integer  |  `sys.fn_get_audit_file.succeeded`  |  イベントを開始したアクションが成功したかどうかを示します。このフィールドを null にすることはできません。ログインイベントを除くすべてのイベントについて、このフィールドはアクセス許可チェックの成否を報告しますが、操作の成否は報告しません。 値には以下のものが含まれます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/DBActivityStreams.AuditLog.databaseActivityEventList.html)  | 
|  `logTime`  |  文字列  |  `sys.fn_get_audit_file.event_time`  |  SQL Server によって記録されるイベントのタイムスタンプ。  | 
|  `netProtocol`  |  文字列  |  該当なし  |  このフィールドは Amazon RDS for SQL Server では使用されず、値は null です。  | 
|  `objectName`  |  文字列  |  `sys.fn_get_audit_file.object_name`  |  SQL ステートメントがオブジェクトに対して使用されている場合のデータベースオブジェクトの名前。  | 
|  `objectType`  |  文字列  |  `sys.fn_get_audit_file.class_type` のマッピング先 `sys.dm_audit_class_type_map.class_type_desc`  |  SQL ステートメントがオブジェクトタイプに対して使用されている場合のデータベースオブジェクトタイプ。  | 
|  `paramList`  |  文字列  |  該当なし  |  このフィールドは Amazon RDS for SQL Server では使用されず、値は null です。  | 
|  `pid`  |  integer  |  該当なし  |  このフィールドは Amazon RDS for SQL Server では使用されず、値は null です。  | 
|  `remoteHost`  |  文字列  |  `sys.fn_get_audit_file.client_ip`  |  SQL ステートメントを発行したクライアントの IP アドレスまたはホスト名 (SQL Server バージョン 14 以降)。SQL Server バージョン 13 では、このフィールドは NULL になっています。  | 
|  `remotePort`  |  integer  |  該当なし  |  このフィールドは Amazon RDS for SQL Server では使用されず、値は null です。  | 
|  `rowCount`  |  integer  |  `sys.fn_get_audit_file.affected_rows`  |  SQL ステートメントによって影響を受けるテーブルの行数 (SQL Server バージョン 14 以降)。SQL Server バージョン 13 では、このフィールドは null になっています。  | 
|  `serverHost`  |  文字列  |  データーベースホスト   |  ホストデータベースサーバーの IP アドレス。  | 
|  `serverType`  |  文字列  |  該当なし  |  データベースサーバーのタイプ。値は `SQLSERVER` です。  | 
|  `serverVersion`  |  文字列  |  データーベースホスト   |  データベースサーバーのバージョン。SQL Server 2017 の場合は 15.00.4073.23.v1.R1 などです。  | 
|  `serviceName`  |  文字列  |  データーベースホスト   |  サービスの名前。値の例は `sqlserver-ee` です。  | 
|  `sessionId`  |  integer  |  `sys.fn_get_audit_file.session_id`  |  セッションの一意識別子。  | 
|  `startTime`  |  文字列  |  該当なし  |  このフィールドは Amazon RDS for SQL Server では使用されず、値は null です。  | 
|  `statementId`  |  文字列  |  `sys.fn_get_audit_file.sequence_group_id`  |  クライアントの SQL ステートメントの一意識別子。識別子は、生成されるイベントごとに異なります。サンプル値は`0x38eaf4156267184094bb82071aaab644`。  | 
|  `substatementId`  |  integer  |  `sys.fn_get_audit_file.sequence_number`  |  ステートメントのシーケンス番号を決定する識別子。この識別子は、大きなレコードが複数のレコードに分割されている場合に役立ちます。  | 
|  `transactionId`  |  integer  |  `sys.fn_get_audit_file.transaction_id`  |  トランザクションの識別子。アクティブなトランザクションがない場合、値は 0 です。  | 
|  `type`  |  文字列  |  データベースアクティビティストリームが生成されました  |  イベントのタイプ。値は `record` または `heartbeat` です。  | 

# AWS SDK を使用したデータベースアクティビティストリーミングの処理
<a name="DBActivityStreams.CodeExample"></a>

アクティビティストリーミングをプログラムで処理するには、AWS SDK を使用します。以下は、インスタンスベースの有効化に Database Activity Streams レコードを使用する、完全に機能する Java および Python の例です。

------
#### [ Java ]

```
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.Security;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.zip.GZIPInputStream;

import javax.crypto.Cipher;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.SecretKeySpec;

import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.encryptionsdk.AwsCrypto;
import com.amazonaws.encryptionsdk.CryptoInputStream;
import com.amazonaws.encryptionsdk.jce.JceMasterKey;
import com.amazonaws.services.kinesis.clientlibrary.exceptions.InvalidStateException;
import com.amazonaws.services.kinesis.clientlibrary.exceptions.ShutdownException;
import com.amazonaws.services.kinesis.clientlibrary.exceptions.ThrottlingException;
import com.amazonaws.services.kinesis.clientlibrary.interfaces.IRecordProcessor;
import com.amazonaws.services.kinesis.clientlibrary.interfaces.IRecordProcessorCheckpointer;
import com.amazonaws.services.kinesis.clientlibrary.interfaces.IRecordProcessorFactory;
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStream;
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration;
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.ShutdownReason;
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker;
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker.Builder;
import com.amazonaws.services.kinesis.model.Record;
import com.amazonaws.services.kms.AWSKMS;
import com.amazonaws.services.kms.AWSKMSClientBuilder;
import com.amazonaws.services.kms.model.DecryptRequest;
import com.amazonaws.services.kms.model.DecryptResult;
import com.amazonaws.util.Base64;
import com.amazonaws.util.IOUtils;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.SerializedName;
import org.bouncycastle.jce.provider.BouncyCastleProvider;

public class DemoConsumer {

    private static final String STREAM_NAME = "aws-rds-das-[instance-external-resource-id]"; // aws-rds-das-db-ABCD123456
    private static final String APPLICATION_NAME = "AnyApplication"; //unique application name for dynamo table generation that holds kinesis shard tracking
    private static final String AWS_ACCESS_KEY = "[AWS_ACCESS_KEY_TO_ACCESS_KINESIS]";
    private static final String AWS_SECRET_KEY = "[AWS_SECRET_KEY_TO_ACCESS_KINESIS]";
    private static final String RESOURCE_ID = "[external-resource-id]"; // db-ABCD123456
    private static final String REGION_NAME = "[region-name]"; //us-east-1, us-east-2...
    private static final BasicAWSCredentials CREDENTIALS = new BasicAWSCredentials(AWS_ACCESS_KEY, AWS_SECRET_KEY);
    private static final AWSStaticCredentialsProvider CREDENTIALS_PROVIDER = new AWSStaticCredentialsProvider(CREDENTIALS);

    private static final AwsCrypto CRYPTO = new AwsCrypto();
    private static final AWSKMS KMS = AWSKMSClientBuilder.standard()
            .withRegion(REGION_NAME)
            .withCredentials(CREDENTIALS_PROVIDER).build();

    class Activity {
        String type;
        String version;
        String databaseActivityEvents;
        String key;
    }

    class ActivityEvent {
        @SerializedName("class") String _class;
        String clientApplication;
        String command;
        String commandText;
        String databaseName;
        String dbProtocol;
        String dbUserName;
        String endTime;
        String errorMessage;
        String exitCode;
        String logTime;
        String netProtocol;
        String objectName;
        String objectType;
        List<String> paramList;
        String pid;
        String remoteHost;
        String remotePort;
        String rowCount;
        String serverHost;
        String serverType;
        String serverVersion;
        String serviceName;
        String sessionId;
        String startTime;
        String statementId;
        String substatementId;
        String transactionId;
        String type;
    }

    class ActivityRecords {
        String type;
        String clusterId; // note that clusterId will contain an empty string on RDS Oracle and RDS SQL Server
        String instanceId;
        List<ActivityEvent> databaseActivityEventList;
    }

    static class RecordProcessorFactory implements IRecordProcessorFactory {
        @Override
        public IRecordProcessor createProcessor() {
            return new RecordProcessor();
        }
    }

    static class RecordProcessor implements IRecordProcessor {

        private static final long BACKOFF_TIME_IN_MILLIS = 3000L;
        private static final int PROCESSING_RETRIES_MAX = 10;
        private static final long CHECKPOINT_INTERVAL_MILLIS = 60000L;
        private static final Gson GSON = new GsonBuilder().serializeNulls().create();

        private static final Cipher CIPHER;
        static {
            Security.insertProviderAt(new BouncyCastleProvider(), 1);
            try {
                CIPHER = Cipher.getInstance("AES/GCM/NoPadding", "BC");
            } catch (NoSuchAlgorithmException | NoSuchPaddingException | NoSuchProviderException e) {
                throw new ExceptionInInitializerError(e);
            }
        }

        private long nextCheckpointTimeInMillis;

        @Override
        public void initialize(String shardId) {
        }

        @Override
        public void processRecords(final List<Record> records, final IRecordProcessorCheckpointer checkpointer) {
            for (final Record record : records) {
                processSingleBlob(record.getData());
            }

            if (System.currentTimeMillis() > nextCheckpointTimeInMillis) {
                checkpoint(checkpointer);
                nextCheckpointTimeInMillis = System.currentTimeMillis() + CHECKPOINT_INTERVAL_MILLIS;
            }
        }

        @Override
        public void shutdown(IRecordProcessorCheckpointer checkpointer, ShutdownReason reason) {
            if (reason == ShutdownReason.TERMINATE) {
                checkpoint(checkpointer);
            }
        }

        private void processSingleBlob(final ByteBuffer bytes) {
            try {
                // JSON $Activity
                final Activity activity = GSON.fromJson(new String(bytes.array(), StandardCharsets.UTF_8), Activity.class);

                // Base64.Decode
                final byte[] decoded = Base64.decode(activity.databaseActivityEvents);
                final byte[] decodedDataKey = Base64.decode(activity.key);

                Map<String, String> context = new HashMap<>();
                context.put("aws:rds:db-id", RESOURCE_ID);

                // Decrypt
                final DecryptRequest decryptRequest = new DecryptRequest()
                        .withCiphertextBlob(ByteBuffer.wrap(decodedDataKey)).withEncryptionContext(context);
                final DecryptResult decryptResult = KMS.decrypt(decryptRequest);
                final byte[] decrypted = decrypt(decoded, getByteArray(decryptResult.getPlaintext()));

                // GZip Decompress
                final byte[] decompressed = decompress(decrypted);
                // JSON $ActivityRecords
                final ActivityRecords activityRecords = GSON.fromJson(new String(decompressed, StandardCharsets.UTF_8), ActivityRecords.class);

                // Iterate throught $ActivityEvents
                for (final ActivityEvent event : activityRecords.databaseActivityEventList) {
                    System.out.println(GSON.toJson(event));
                }
            } catch (Exception e) {
                // Handle error.
                e.printStackTrace();
            }
        }

        private static byte[] decompress(final byte[] src) throws IOException {
            ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(src);
            GZIPInputStream gzipInputStream = new GZIPInputStream(byteArrayInputStream);
            return IOUtils.toByteArray(gzipInputStream);
        }

        private void checkpoint(IRecordProcessorCheckpointer checkpointer) {
            for (int i = 0; i < PROCESSING_RETRIES_MAX; i++) {
                try {
                    checkpointer.checkpoint();
                    break;
                } catch (ShutdownException se) {
                    // Ignore checkpoint if the processor instance has been shutdown (fail over).
                    System.out.println("Caught shutdown exception, skipping checkpoint." + se);
                    break;
                } catch (ThrottlingException e) {
                    // Backoff and re-attempt checkpoint upon transient failures
                    if (i >= (PROCESSING_RETRIES_MAX - 1)) {
                        System.out.println("Checkpoint failed after " + (i + 1) + "attempts." + e);
                        break;
                    } else {
                        System.out.println("Transient issue when checkpointing - attempt " + (i + 1) + " of " + PROCESSING_RETRIES_MAX + e);
                    }
                } catch (InvalidStateException e) {
                    // This indicates an issue with the DynamoDB table (check for table, provisioned IOPS).
                    System.out.println("Cannot save checkpoint to the DynamoDB table used by the Amazon Kinesis Client Library." + e);
                    break;
                }
                try {
                    Thread.sleep(BACKOFF_TIME_IN_MILLIS);
                } catch (InterruptedException e) {
                    System.out.println("Interrupted sleep" + e);
                }
            }
        }
    }

    private static byte[] decrypt(final byte[] decoded, final byte[] decodedDataKey) throws IOException {
        // Create a JCE master key provider using the random key and an AES-GCM encryption algorithm
        final JceMasterKey masterKey = JceMasterKey.getInstance(new SecretKeySpec(decodedDataKey, "AES"),
                "BC", "DataKey", "AES/GCM/NoPadding");
        try (final CryptoInputStream<JceMasterKey> decryptingStream = CRYPTO.createDecryptingStream(masterKey, new ByteArrayInputStream(decoded));
             final ByteArrayOutputStream out = new ByteArrayOutputStream()) {
            IOUtils.copy(decryptingStream, out);
            return out.toByteArray();
        }
    }

    public static void main(String[] args) throws Exception {
        final String workerId = InetAddress.getLocalHost().getCanonicalHostName() + ":" + UUID.randomUUID();
        final KinesisClientLibConfiguration kinesisClientLibConfiguration =
                new KinesisClientLibConfiguration(APPLICATION_NAME, STREAM_NAME, CREDENTIALS_PROVIDER, workerId);
        kinesisClientLibConfiguration.withInitialPositionInStream(InitialPositionInStream.LATEST);
        kinesisClientLibConfiguration.withRegionName(REGION_NAME);
        final Worker worker = new Builder()
                .recordProcessorFactory(new RecordProcessorFactory())
                .config(kinesisClientLibConfiguration)
                .build();

        System.out.printf("Running %s to process stream %s as worker %s...\n", APPLICATION_NAME, STREAM_NAME, workerId);

        try {
            worker.run();
        } catch (Throwable t) {
            System.err.println("Caught throwable while processing data.");
            t.printStackTrace();
            System.exit(1);
        }
        System.exit(0);
    }

    private static byte[] getByteArray(final ByteBuffer b) {
        byte[] byteArray = new byte[b.remaining()];
        b.get(byteArray);
        return byteArray;
    }
}
```

------
#### [ Python ]

```
import base64
import json
import zlib
import aws_encryption_sdk
from aws_encryption_sdk import CommitmentPolicy
from aws_encryption_sdk.internal.crypto import WrappingKey
from aws_encryption_sdk.key_providers.raw import RawMasterKeyProvider
from aws_encryption_sdk.identifiers import WrappingAlgorithm, EncryptionKeyType
import boto3

REGION_NAME = '<region>'                    # us-east-1
RESOURCE_ID = '<external-resource-id>'      # db-ABCD123456
STREAM_NAME = 'aws-rds-das-' + RESOURCE_ID  # aws-rds-das-db-ABCD123456

enc_client = aws_encryption_sdk.EncryptionSDKClient(commitment_policy=CommitmentPolicy.FORBID_ENCRYPT_ALLOW_DECRYPT)

class MyRawMasterKeyProvider(RawMasterKeyProvider):
    provider_id = "BC"

    def __new__(cls, *args, **kwargs):
        obj = super(RawMasterKeyProvider, cls).__new__(cls)
        return obj

    def __init__(self, plain_key):
        RawMasterKeyProvider.__init__(self)
        self.wrapping_key = WrappingKey(wrapping_algorithm=WrappingAlgorithm.AES_256_GCM_IV12_TAG16_NO_PADDING,
                                        wrapping_key=plain_key, wrapping_key_type=EncryptionKeyType.SYMMETRIC)

    def _get_raw_key(self, key_id):
        return self.wrapping_key


def decrypt_payload(payload, data_key):
    my_key_provider = MyRawMasterKeyProvider(data_key)
    my_key_provider.add_master_key("DataKey")
    decrypted_plaintext, header = enc_client.decrypt(
        source=payload,
        materials_manager=aws_encryption_sdk.materials_managers.default.DefaultCryptoMaterialsManager(master_key_provider=my_key_provider))
    return decrypted_plaintext


def decrypt_decompress(payload, key):
    decrypted = decrypt_payload(payload, key)
    return zlib.decompress(decrypted, zlib.MAX_WBITS + 16)


def main():
    session = boto3.session.Session()
    kms = session.client('kms', region_name=REGION_NAME)
    kinesis = session.client('kinesis', region_name=REGION_NAME)

    response = kinesis.describe_stream(StreamName=STREAM_NAME)
    shard_iters = []
    for shard in response['StreamDescription']['Shards']:
        shard_iter_response = kinesis.get_shard_iterator(StreamName=STREAM_NAME, ShardId=shard['ShardId'],
                                                         ShardIteratorType='LATEST')
        shard_iters.append(shard_iter_response['ShardIterator'])

    while len(shard_iters) > 0:
        next_shard_iters = []
        for shard_iter in shard_iters:
            response = kinesis.get_records(ShardIterator=shard_iter, Limit=10000)
            for record in response['Records']:
                record_data = record['Data']
                record_data = json.loads(record_data)
                payload_decoded = base64.b64decode(record_data['databaseActivityEvents'])
                data_key_decoded = base64.b64decode(record_data['key'])
                data_key_decrypt_result = kms.decrypt(CiphertextBlob=data_key_decoded,
                                                      EncryptionContext={'aws:rds:db-id': RESOURCE_ID})
                print (decrypt_decompress(payload_decoded, data_key_decrypt_result['Plaintext']))
            if 'NextShardIterator' in response:
                next_shard_iters.append(response['NextShardIterator'])
        shard_iters = next_shard_iters


if __name__ == '__main__':
    main()
```

------

# データベースアクティビティストリームの IAM ポリシーの例
<a name="DBActivityStreams.ManagingAccess"></a>

データベースアクティビティストリーミングに対する適切な AWS Identity and Access Management (IAM) ロールの権限が付与されているユーザーは、DB インスタンスのアクティビティストリーミング設定の作成、スタート、停止、および変更ができます。これらのアクションはストリーミングの監査ログに含まれています。コンプライアンスのベストプラクティスとして、これらの権限は DBA に付与しないことをお勧めします。

データベースアクティビティストリーミングへのアクセスを設定するには、IAM ポリシーを使用します。Amazon RDS 認証の詳細については、「[Amazon RDS での Identity and Access Management](UsingWithRDS.IAM.md)」を参照してください。IAM ポリシーの作成の詳細については、「[IAM データベースアクセス用の IAM ポリシーの作成と使用](UsingWithRDS.IAMDBAuth.IAMPolicy.md)」を参照してください。

**Example データベースアクティビティストリーミングの設定を許可するポリシー**  
アクティビティストリーミングを変更するためのきめ細かいアクセスをユーザーに付与するには、IAM ポリシーでサービス固有のオペレーションコンテキストキー (`rds:StartActivityStream` および `rds:StopActivityStream`) を使用します。次の IAM ポリシーの例では、ユーザーまたはロールがアクティビティストリーミングを設定することを許可します。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ConfigureActivityStreams",
            "Effect": "Allow",
            "Action": [
                "rds:StartActivityStream",
                "rds:StopActivityStream"
            ],
            "Resource": "*"
        }
    ]
}
```

**Example データベースアクティビティストリーミングのスタートを許可するポリシー**  
次の IAM ポリシーの例では、ユーザーまたはロールがアクティビティストリーミングをスタートすることを許可します。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
        {
            "Sid":"AllowStartActivityStreams",
            "Effect":"Allow",
            "Action":"rds:StartActivityStream",
            "Resource":"*"
        }
    ]
}
```

**Example データベースアクティビティストリーミングの停止を許可するポリシー**  
次の IAM ポリシーの例では、ユーザーまたはロールがアクティビティストリーミングを停止することを許可します。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
        {
            "Sid":"AllowStopActivityStreams",
            "Effect":"Allow",
            "Action":"rds:StopActivityStream",
            "Resource":"*"
        }
     ]
}
```

**Example データベースアクティビティストリーミングのスタートを拒否するポリシー**  
次の IAM ポリシーの例では、ユーザーまたはロールによるアクティビティストリーミングのスタートが阻止されます。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
        {
            "Sid":"DenyStartActivityStreams",
            "Effect":"Deny",
            "Action":"rds:StartActivityStream",
            "Resource":"*"
        }
     ]
}
```

**Example データベースアクティビティストリーミング停止を拒否するポリシー**  
次の IAM ポリシーの例では、ユーザーまたはロールによるアクティビティストリーミングの停止が阻止されます。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
        {
            "Sid":"DenyStopActivityStreams",
            "Effect":"Deny",
            "Action":"rds:StopActivityStream",
            "Resource":"*"
        }
    ]
}
```

# Amazon GuardDuty RDS Protection による脅威のモニタリング
<a name="guard-duty-rds-protection"></a>

Amazon GuardDuty は、AWS 環境内のアカウント、コンテナ、ワークロード、データを保護する脅威検知サービスです。GuardDuty は、機械学習（ML）モデル、異常および脅威検出機能を使用して、さまざまなログソースとランタイムアクティビティを継続的に監視し、環境内の潜在的なセキュリティリスクと悪意のあるアクティビティを特定して優先順位を付けます。

GuardDuty RDS Protection は、Amazon RDS データベースに対する潜在的なアクセス脅威がないか、ログインイベントを分析してプロファイリングします。RDS Protection を有効にすると、GuardDuty は RDS データベースの RDS ログインイベントを消費します。RDS Protection は、これらのイベントを監視し、潜在的な内部脅威や外部アクターがないかプロファイリングします。

GuardDuty RDS Protection の有効化の詳細については、「*Amazon GuardDuty ユーザーガイド*」の「[GuardDuty RDS Protection](https://docs.aws.amazon.com/guardduty/latest/ug/rds-protection.html)」を参照してください。

RDS Protection が潜在的な脅威 (一連の成功、失敗、未完了のログイン試行で異常なパターンが発生するなど) を検出すると、GuardDuty は侵害された可能性のあるデータベースに関する詳細を含む新しい検出結果を生成します。Amazon GuardDuty コンソールでは、検出結果の概要セクションで検出結果の詳細を見ることができます。検出結果の詳細は検出結果のタイプによって異なります。リソースタイプとリソースロールという基本的な情報によって、検出結果にどのような情報が表示されるか決まります。検索結果の一般的に入手可能な詳細と検出結果タイプの詳細については、「*Amazon GuardDuty ユーザーガイド*」の「[検出結果の詳細](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_findings-summary.html)」と「[GuardDuty RDS Protection の検索結果タイプ](https://docs.aws.amazon.com/guardduty/latest/ug/findings-rds-protection.html)」を参照してください。

RDS Protection 機能は、この機能が使用可能な任意の AWS リージョン の任意の AWS アカウント について、有効または無効にできます。RDS Protection が有効になっていない場合、GuardDuty は侵害された可能性のある RDS データベースを検出したり、侵害の詳細を提供したりしません。

既存の GuardDuty アカウントでは、RDS Protection を 30 日間お試しいただけます。新しい GuardDuty アカウントでは、RDS Protection が既に有効になっており、30 日間の無料トライアル期間に含まれています。詳細については、「*Amazon GuardDuty ユーザーガイド*」の「[GuardDuty コストの見積もり](https://docs.aws.amazon.com/guardduty/latest/ug/monitoring_costs.html)」を参照してください。

GuardDuty がまだ RDS Protection をサポートしていない AWS リージョンについては、「*Amazon GuardDuty ユーザーガイド*」の「[リージョン固有機能の可用性](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_regions.html#gd-regional-feature-availability)」を参照してください。

GuardDuty RDS Protection がサポートする RDS データベースのバージョンについては、「*Amazon Amazon GuardDutyユーザーガイド*」の「[Supported Amazon Aurora, Amazon RDS, and Aurora Limitless databases](https://docs.aws.amazon.com/guardduty/latest/ug/rds-protection.html#rds-pro-supported-db)」を参照してください。