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

参考


Related #aws

RDSを定期的に停止するLambdaを作る

手動起動は大変なので

AWS SESの受信メールを暗号化してs3に保存しLambdaで読み込む

jsの場合、複合処理を独自実装する必要がある

CloudWatchアラームを一時的に無効化する

AWS CLIで設定する必要がある

Alexaに気温と二酸化炭素濃度を教えてもらう

「Alexa、気温」でセンサー情報を教えてくれるようになった

CloudWatchのカスタムメトリクスを減らす

あまりチェックしないセンサー値の送信を止めた