Amazon Aurora
Aurora のユーザーガイド

Amazon Aurora MySQL への Amazon CloudWatch Logs ログの発行

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

ログを CloudWatch Logs に発行するには、それぞれのログを有効にする必要があります。エラーログはデフォルトで有効になっていますが、他のタイプのログは明示的に有効にする必要があります。MySQL でログを有効にする方法については、MySQL ドキュメントの「Selecting General Query and Slow Query Log Output Destinations (全般クエリとスロークエリログ出力先の選択)」を参照してください。Aurora MySQL 監査ログを有効にする方法については、「高度な監査の有効化」を参照してください。

注記

以下の点に注意してください。

  • 中国 (寧夏) リージョン向けに CloudWatch Logs にログを発行することはできません。

  • Aurora は、無効化された監査ログデータをエクスポートする場合に、既存のロググループまたはログストリームを削除しません。既存の監査ログデータが無効化されている場合、既存のログは保持期間により、CloudWatch Logs で使用可能となり、保管された監査ログデータに変更を加えることもできます。ログストリームとロググループは、CloudWatch Logs コンソール、AWS CLI または CloudWatch Logs API を使用して削除できます。

  • CloudWatch Logs に監査ログを発行する別の方法は、高度な監査を有効にし、クラスターレベルの DB パラメータ server_audit_logs_upload1 に設定することです。server_audit_logs_upload パラメータのデフォルト値は 0 です。

    この代替メソッドを使用する場合、CloudWatch Logs にアクセスして aws_default_logs_role クラスターレベルパラメータをこのロールの ARN に設定するには、IAM ロールが必要です。ロールの作成の詳細については、「AWS のサービスにアクセスするための IAM ロールの設定」を参照してください。ただし、AWSServiceRoleForRDS サービスにリンクされたロールがある場合、CloudWatch Logs へのアクセスが提供され、カスタム定義のロールが上書きされます。Amazon RDS のサービスにリンクされたロールの詳細については、「Amazon Aurora のサービスにリンクされたロールの使用」を参照してください。

  • 監査ログを CloudWatch Logs にエクスポートしない場合は、監査ログをエクスポートするすべてのメソッドが無効になっていることを確認してください。これらのメソッドは、AWS マネジメントコンソール、AWS CLI、RDS API、および server_audit_logs_upload パラメータです。

  • この手順は、Aurora サーバーレスクラスターとプロビジョンドクラスターの間ではわずかに異なります。サーバーレスクラスターでは、設定パラメータで有効にしたすべてのタイプのログが自動的にアップロードされます。したがって、サーバーレスクラスターでログのアップロードを有効/無効にするには、DB クラスターのパラメータグループでログタイプ別にオン/オフを切り替えます。AWS マネジメントコンソール、AWS CLI、または RDS API でクラスター自体の設定は変更しません。サーバーレスクラスターの MySQL ログの有効化については、「Aurora サーバーレスとパラメータグループ」を参照してください。

コンソール

コンソールを使用して、プロビジョンドクラスターの Aurora MySQL ログを CloudWatch Logs に発行できます。

コンソールから Aurora MySQL ログを発行するには

  1. https://console.aws.amazon.com/rds/ にある Amazon RDS コンソールを開きます。

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

  3. ログデータを公開する Aurora MySQL DB クラスターを選択します。

  4. [アクション]、[変更] の順に選択します。

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

  6. [続行] を選択し、概要ページで [Modify DB Cluster (DB クラスターの変更)] を選択します。

AWS CLI

AWS CLI を使用して、プロビジョンドクラスターの Aurora MySQL ログを発行できます。これを行うには、以下のオプションを指定して modify-db-cluster AWS CLI コマンドを実行します。

  • --db-cluster-identifier— DB クラスター識別子。

  • --cloudwatch-logs-export-configuration — DB クラスターの CloudWatch Logs へのエクスポートに使用できるログタイプの構成設定。

以下の AWS CLI コマンドのいずれかを実行することで Aurora MySQL ログを発行することもできます。

以下のオプションを使用して、この AWS CLI コマンドの 1 つを実行します。

  • --db-cluster-identifier—DB クラスター識別子。

  • --engine — データベースエンジン。

  • --enable-cloudwatch-logs-exports — DB クラスターの CloudWatch Logs へのエクスポートに使用できるログタイプの構成設定。

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

次のコマンドでは、ログファイルが CloudWatch Logs に発行されるよう既存の Aurora MySQL DB クラスターを変更します。

Linux、OS X、Unix の場合:

aws rds modify-db-cluster \ --db-cluster-identifier mydbcluster \ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["error","general","slowquery","audit"]}'

Windows の場合:

aws rds modify-db-cluster ^ --db-cluster-identifier mydbcluster ^ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["error","general","slowquery","audit"]}'

次のコマンドでは、ログファイルが CloudWatch Logs に発行されるよう Aurora MySQL DB クラスターを作成します。

Linux、OS X、Unix の場合:

aws rds create-db-cluster \ --db-cluster-identifier mydbcluster \ --engine aurora \ --enable-cloudwatch-logs-exports '["error","general","slowquery","audit"]'

Windows の場合:

aws rds create-db-cluster ^ --db-cluster-identifier mydbcluster ^ --engine aurora ^ --enable-cloudwatch-logs-exports '["error","general","slowquery","audit"]'
RDS API

RDS API を使用して、プロビジョンドクラスターの Aurora MySQL ログを発行できます。これを行うには、以下のオプションを指定して ModifyDBCluster オペレーションを実行します。

  • DBClusterIdentifier—DB クラスター識別子。

  • CloudwatchLogsExportConfiguration — DB クラスターの CloudWatch Logs へのエクスポートに使用できるログタイプの構成設定。

以下の RDS API オペレーションのいずれかを実行することで、RDS API を使用して Aurora MySQL ログを発行することもできます。

次のパラメータを指定して、RDS API オペレーションを実行します。

  • DBClusterIdentifier—DB クラスター識別子。

  • Engine — データベースエンジン。

  • EnableCloudwatchLogsExports — DB クラスターの CloudWatch Logs へのエクスポートに使用できるログタイプの構成設定。

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

Amazon CloudWatch でログイベントをモニタリングする

Aurora MySQL ログイベントを有効にすると、Amazon CloudWatch Logs でイベントをモニタリングできます。新しいクラスターロググループは、cluster-name が DB クラスター名となり、log_type がログタイプとなる次のプレフィックスの Aurora DB クラスターに自動的に作成されます。

/aws/rds/cluster/cluster-name/log_type

たとえば、エクスポート関数を設定して、mydbcluster という名前の DB クラスターのスロークエリログを作成すると、スロークエリデータは、/aws/rds/cluster/mydbcluster/slowquery ロググループのスロークエリログストリームに保存されます。

DB クラスターのすべての DB インスタンス におけるすべてのイベントは、別々のログストリームを使用してロググループにプッシュされます。

指定する名前のロググループがすでに存在する場合、Aurora はこのロググループを使用して Aurora DB クラスターにログデータをエクスポートします。事前定義された保持期間、メトリックフィルター、カスタムアクセスのロググループを作成するには、AWS CloudFormation のような自動設定を使用できます。それ以外の場合は、デフォルトのログ保持期間である [失効しない] を使用して新規のロググループが自動的に CloudWatch Logs に作成されます。ログの保持期間を変更するには、CloudWatch Logs コンソール、AWS CLI または CloudWatch Logs API を使用できます。CloudWatch Logs でログの保持期間を変更する方法の詳細については、「CloudWatch Logs でのログデータ保管期間の変更」を参照してください。

DB クラスターのログイベントで情報を検索するには、CloudWatch Logs コンソール、AWS CLI、または CloudWatch Logs API を使用できます。検索およびログデータのフィルタ処理の詳細については、「ログデータの検索およびフィルタ処理」を参照してください。