RDSでスロークエリログを取れるように設定したときの メモ

1. クレデンシャルファイルの作成

# vi /opt/aws/apitools/rds/cred.txt
AWSAccessKeyId=アクセスキーID
AWSSecretKey=シークレットキー

# アクセスキーID と シークレットキーは下記から
# https://portal.aws.amazon.com/gp/aws/securityCredentials


2. 設定

export AWS_RDS_HOME=/opt/aws/apitools/rds
export AWS_CREDENTIAL_FILE=/opt/aws/apitools/rds/cred.txt
export PATH=$PATH:/opt/aws/bin/
export EC2_HOME=/opt/aws/apitools/ec2
export JAVA_HOME=/usr/lib/jvm/jre

export EC2_REGION=`ec2-metadata |\
  sed -n 's/^local-hostname: ip-[0-9-]*\.\(.*\)\.compute\.internal/\1/p'`

rds-create-db-parameter-group hoge-parameter-group \
 -d "parameter group for hoge-parameter-group" -f MySQL5.5

rds-modify-db-parameter-group hoge-parameter-group \ <- 1秒以上かかったクエリを記録する
 --parameters="name=slow_query_log, value=ON, method=immediate" \
 --parameters="name=long_query_time, value=1, method=immediate"

rds-modify-db-instance hoge-stg-mysql01 \
 --db-parameter-group-name=hoge-parameter-group

# RDS の DB Instances の Parameter Group を確認して (pending-reboot) になっていたら
# RDS 再起動
DB Parameter Group:Database parameter group to associate with this DB instance.hoge-parameter-group (pending-reboot)


3. 確認

$ mysql -u hogeID -phogePW \
 -h hoge-stg-mysql01.aaaaaaaaa.ap-northeast-1.rds.amazonaws.com hogedb

mysql> show global variables like 'slow_query_log';
mysql> show global variables like 'long_query_time';

mysql> select * from mysql.slow_log; <- スロークエリをみるSQL