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'],
})