AWS CLI を使って RDS のパラメータグループの差分を取る
Posted on
- #aws
RDS for MySQL から Amazon Aurora へ移行するために、既存の MySQL に設定したパラメータグループの変更点を確認する必要がありました。
ですが Management Console ではパラメータグループ同士の差分を取ることができません。見落としていましたが、Management Console からも差分を取れました。
ちょっと面倒ですが AWS CLI を使ってやってみました。
AWS CLI を使ってパラメータグループの差分を取る
まずはパラメータグループ名の一覧を取得します。
$ aws rds describe-db-parameter-groups \
--query 'DBParameterGroups[].DBParameterGroupName'
[
"default.aurora5.6",
"default.mysql5.6",
(snip)
]
目的のパラメータグループから --query
オプションを使って ParameterValue
が null
でないものだけ抜き出して JSON を組み立てます。
$ aws rds describe-db-parameters \
--db-parameter-group-name default.mysql5.6 \
--query 'Parameters[?ParameterValue!=`null`].{ParameterName:ParameterName, ParameterValue:ParameterValue}'
[
{
"ParameterName": "basedir",
"ParameterValue": "/rdsdbbin/mysql"
},
{
"ParameterName": "binlog_cache_size",
"ParameterValue": "32768"
},
{
"ParameterName": "binlog_format",
"ParameterValue": "MIXED"
},
(snip)
]
比較しやすいように jq コマンドで sort してからファイルに書き出します。これを比較したいパラメータグループに対して行います。
$ aws rds describe-db-parameters \
--db-parameter-group-name default.mysql5.6 \
--query 'Parameters[?ParameterValue!=`null`].{ParameterName:ParameterName, ParameterValue:ParameterValue}' | \
jq -r 'sort_by(.ParameterName)' > default.mysql5.6.json
あとは diff コマンドで書き出したファイルの差分を取ります。
$ diff -u *.json
--- default.aurora5.6.json 2017-02-17 12:58:46.000000000 +0900
+++ default.mysql5.6.json 2017-02-17 12:56:28.000000000 +0900
@@ -1,22 +1,22 @@
[
{
- "ParameterName": "aurora_lab_mode",
- "ParameterValue": "0"
- },
- {
"ParameterName": "basedir",
- "ParameterValue": "/rdsdbbin/oscar"
+ "ParameterValue": "/rdsdbbin/mysql"
},
(snip)
まとめ
RDS for MySQL にしろ Amazon Aurora にしろパラメータグループを正しく設定しないと本来の性能を引き出せません。差分をしっかり確認して漏れのないようにしたいですね。