CDKでRDS(mysql)のslowlogをCloudWatch Logsに出力する

AWS CDKを使ってRDS(mysql5.7)インスタンスを作成する際に、slowlogをCloudWatch Logsに出力するようにした。

手順としてはまずパラメータグループにslow_query_log設定を追加し、log_outputをFILEに設定する。

そして、DatabaseInstanceのパラメータにcloudwatchLogsExportsを設定すればOK。

import * as rds from '@aws-cdk/aws-rds'

// ...

const parameterGroup = new rds.ParameterGroup(this, 'RdsParameterGroup', {
  family: 'mysql5.7',
  parameters: {
    time_zone: 'Asia/Tokyo',
    character_set_client: 'utf8mb4',
    character_set_connection: 'utf8mb4',
    character_set_database: 'utf8mb4',
    character_set_results: 'utf8mb4',
    character_set_server: 'utf8mb4',
    collation_connection: 'utf8mb4_bin',
    slow_query_log: '1',
    long_query_time: '1',
    log_output: 'FILE',
  },
})

const db = new rds.DatabaseInstance(this, 'Rds', {
  parameterGroup,
  engine: rds.DatabaseInstanceEngine.MYSQL,
  engineVersion: '5.7',
  cloudwatchLogsExports: ['slowquery'],
})

参考