DRY

Web関連の技術の事、食事/お酒の事、旅行の事など

MacでAWSのRDSコマンドを試す

RDSのmy.cnfを任意にいろいろ変更したいので、rds-???コマンドを試してみる。

Webで検索するといろいろなやり方が出てきて、古い記事もあるので自分の環境で動かした方法をメモしておく(2011/11/11)

■環境
MacBookPro OS x 10.7.2
AWS
 リージョン:US_EAST
 DB Engine Version:5.1.57


MacJAVAのインストール


してなければここから
http://support.apple.com/kb/DL1421?viewlocale=ja_JP
Amazon RDS Command Line Toolkitのダウンロード

http://aws.amazon.com/developertools/Amazon-RDS/2928
※任意の位置に配置
私は「/Users/ke-16/Develop/amazon」の下に配置しました

# 便利っぽいので、こちらを参考にOracle SQL Developerを入れておく
http://blog.brainhearts-next.com/2009/11/amazon-rds.html

環境変数設定


$ vi ~/.bash_profile

# Java Setting
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6./Home

# Amazon EC2 Setting
export EC2_CERT=/Users/ke-16/Develop/amazon/cert-xxx.pem
export EC2_PRIVATE_KEY=/Users/ke-16/Develop/amazon/pk-xxx.pem
export EC2_URL=https://ec2.us-east-1.amazonaws.com
export EC2_REGION=us-east-1

# RDS Setting
export AWS_RDS_HOME=/Users/ke-16/Develop/amazon/RDSCli-1.4.007
export AWS_CREDENTIAL_FILE=$AWS_RDS_HOME/credential-file-path.txt
export PATH=$PATH:$AWS_RDS_HOME/bin

※cer-txxx.pemとpk-xxx.pemはAcount > Security Credentials の X509Certificate から取得

環境変数の確認


$ java -version
java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11-402-11M3527)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02-402, mixed mode)

$ rds -version
Relational Database Service CLI version 1.4.007 (API 2011-04-01)

※いずれか出なければ環境変数を再確認

■ RDSに設定されているDB Security Groupsの確認

$ rds-describe-db-parameter-groups
DBPARAMETERGROUP default.mysql5.1 mysql5.1 Default parameter group for mysql5.1
DBPARAMETERGROUP default.mysql5.5 mysql5.5 Default parameter group for mysql5.5

ちなみに上記のように環境変数を設定してなければ、下記で同義
$ rds-describe-db-parameter-groups -I <アクセスキー ID> -S <シークレットアクセスキー> --region us-east-1

■ RDSのパラメータを変更してみる

ex)
ログはテーブル(mysql.slow_log)に出力する。
実行に1秒以上かかったクエリを記録する
100行以上を読み込んだクエリを記録する

$ rds-describe-db-parameters default.mysql5.1 -p "name=slow_query_log, value=ON, method=immediate"
$ rds-describe-db-parameters default.mysql5.1 -p "name=long_query_time, value=1, method=immediate"
$ rds-describe-db-parameters default.mysql5.1 -p "name=min_examined_row_limit, value=100, method=immediate"

■ 変更したパラメータの確認

$ rds-describe-db-parameters default.mysql5.1 --source user


以上。これで任意にMySQLのチューニングが出来る事かと。