【Amazon Aurora×Cloud Watch Logs】ログをCloud Watch Logsで確認できるようにする

Amazon AuroraのSQLログをCloudWatch Logsで確認できるようにする手順です。

## 環境
- クライアントOS：Windows10
- Amazon Aurora(MySQL5.7)2.07.2（「開発/テスト」用）
- CloudWatch

## 手順

### 1. Amazon Aurora DBクラスターの作成、 パラメータグループの作成・設定
[【Amazon Aurora】日本の環境で快適に使うための初期設定手順 ～ 文字コード、タイムゾーン、パブリックアクセス ～ | Qiita](https://qiita.com/C_HERO/items/4929502c2641b2406475)<br>に記載しておりますので、そちらを参考に作成・設定してください。

### 2. Amazon Auroraでログを有効にする
(1) マネジメントコンソール > RDSとアクセスしたら、ナビゲーションペインにて、「パラメータグループ」をクリックし（①）、対象のDBインスタンスに紐づけた、DBクラスターのパラメータグループ（②）を選択して、「編集」をクリック（③）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/356958/2f37ff9c-e672-b04e-a9bd-8c84dae79ac4.png)

(2) 以下の通りパラメータの設定を行い、「変更の保存」をクリック。

|パラメータ|値|意味|
|---|---|---|
|general_log|1|有効|
|slow_query_log|1|有効|
|long_query_time|2|2秒より長く実行されるクエリがslow_query_logの対象となる|
|server_audit_logging|1|有効|
|server_audit_events|QUERY_DCL, QUERY_DDL|DCL, DDLを返す（※）|
|log_output|FILE|ログをファイル出力する|

※QUERYを設定すると、DCL, DDL, DMLを返してくれますが、今回はDMLは対象外としました。

(3) ナビゲーションペインにて「データベース」をクリックし（①）、変更を適用したいデータベースインスタンスを選択し（②）、「再起動」をクリック(③）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/356958/a81c2029-7859-5402-268b-2d993a9c7739.png)

(4) 「DBインスタンスの再起動」画面に遷移するので、「再起動」をクリック。
再起動が完了すると、DBパラメータグループへの変更が適用されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/356958/aedccad6-3081-9494-ec5a-6e385eec9557.png)



### 3. ログをCloudWatchに公開する
(1) 2-(4)で再起動が完了後、RDSのナビゲーションペインにて「データベース」をクリックし（①）、対象のデータベースインスタンスを選択して（②）「変更」をクリックする（③）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/356958/edbd5867-53f4-03be-cc85-66e2c2718d3b.png)

(2)「DBインスタンスの変更」画面になるので、下へスクロール。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/356958/5d6240b9-157c-4615-d217-f9933583c7f6.png)

(3) 「ログのエクスポート」欄にて、CloudWatch Logsに出力したいログにチェックを入れる（今回は全部にしました）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/356958/0cbf5b75-5ef2-97a4-fc9a-7f76080262b7.png)

(4) 画面いちばん下までスクロールし、「次へ」をクリック。

(5) 変更内容を確認し、「DBインスタンスの変更」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/356958/a2f0f945-e0f5-02a5-cab5-50fa305eb6ec.png)

(6) マネジメントコンソールにて、CloudWatchを選択し、画面遷移したら、ナビゲーションペインにて、「ロググループ」をクリック（①）。すると、ログが確認できるようになっています（②）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/356958/20597d6a-ce3a-4151-a5ea-a52cd2ee3e43.png)

※ログとロググループの対応は以下の通り。対象のログが存在しない場合はロググループは表示されません。

|ログ|ロググループ|
|---|---|
|監査ログ|/aws/rds/cluster/database-1/audit|
|エラーログ|/aws/rds/cluster/database-1/error|
|全般ログ|/aws/rds/cluster/database-1/general|
|スロークエリログ|/aws/rds/cluster/database-1/slowquery|

ちなみに、アジアパシフィック（東京）リージョンの、ログ1GB当たりの料金は0.76USDになります。

## 参考

- [Amazon RDS MySQL DB インスタンスのログを有効にしてモニタリングする方法を教えてください。 | AWS](https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-mysql-logs/)
- [Amazon RDS または Aurora for MySQL インスタンスのログを CloudWatch に公開するにはどうすれば良いですか? | AWS](https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-aurora-mysql-logs-cloudwatch/)
- [Amazon Aurora MySQL DB クラスターでの高度な監査の使用 | AWS](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Auditing.html)
- [【アップデート】Amazon Auroraでスロークエリや一般ログがCloudWatch Logsへ出力可能に | Developers.IO](https://dev.classmethod.jp/articles/amazon-aurora-export-cloudwatch-logs/)
- [Amazon CloudWatch の料金 | AWS(Amazon CloudWatch)](https://aws.amazon.com/jp/cloudwatch/pricing/)