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

Step Functionsステートマシンから別のStep Functionsを呼び出す

複雑なステートマシンを小さいステートマシンに分割しておけばテストと確認がやりやすくなる

マネージメントコンソール上のエディタでLambdaのコードを書く際にnpmライブラリを追加したい

ローカルでライブラリをインストールしてからインポートする必要があった

Amazon API Gatewayのタイムアウト設定は最大29秒まで

上限緩和もできないので注意

MFA必須のスイッチロールアカウントでaws cliを使う

switch role用のprofileを追加する

AWSのコスト異常検出を設定する

意図しない課金を防ぐためにとりあえず設定しておくと良さそう