LoginSignup
0
0

More than 5 years have passed since last update.

複数アカウントのRDS(MySQL)のVersionを取得する。

Posted at

はじめに

複数アカウント管理していると、
「RDS(MySQL)のVersionって何使ってたっけ… ?」
「5.7.x ってどのアカウントで使ってたっけ… ?」ってあるあるじゃないですか?

マネジメントコンソール見て回るのも良いけど、管理しているアカウントが多いと、現実的じゃないですよねw

って事で、jqの練習も兼ねて、
aws-cliとjqを組み合わせてさくっと作ってみました。
カスタマイズして、こんな使い方も出来んじゃね?とかあれば、是非是非教えて下さい!

動作環境

  • Amazon Linux AMI release 2017.03
  • aws-cli/1.11.83 Python/2.7.12 Linux/4.9.32-15.41.amzn1.x86_64 botocore/1.5.46

jq インストール

# yum install jq
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main                                                | 2.1 kB     00:00
amzn-updates                                             | 2.3 kB     00:00
Resolving Dependencies
--> Running transaction check
---> Package jq.x86_64 0:1.5-1.2.amzn1 will be installed
--> Processing Dependency: jq-libs(x86-64) = 1.5-1.2.amzn1 for package: jq-1.5-1                                                                                                     .2.amzn1.x86_64
--> Processing Dependency: oniguruma for package: jq-1.5-1.2.amzn1.x86_64
--> Processing Dependency: libjq.so.1()(64bit) for package: jq-1.5-1.2.amzn1.x86                                                                                                     _64
--> Processing Dependency: libonig.so.2()(64bit) for package: jq-1.5-1.2.amzn1.x                                                                                                     86_64
--> Running transaction check
---> Package jq-libs.x86_64 0:1.5-1.2.amzn1 will be installed
---> Package oniguruma.x86_64 0:5.9.1-3.1.2.amzn1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package          Arch          Version                  Repository        Size
================================================================================
Installing:
 jq               x86_64        1.5-1.2.amzn1            amzn-main         44 k
Installing for dependencies:
 jq-libs          x86_64        1.5-1.2.amzn1            amzn-main        121 k
 oniguruma        x86_64        5.9.1-3.1.2.amzn1        amzn-main        149 k

Transaction Summary
================================================================================
Install  1 Package (+2 Dependent packages)

Total download size: 314 k
Installed size: 885 k
Is this ok [y/d/N]: y
Downloading packages:
(1/3): jq-1.5-1.2.amzn1.x86_64.rpm                         |  44 kB   00:00
(2/3): jq-libs-1.5-1.2.amzn1.x86_64.rpm                    | 121 kB   00:00
(3/3): oniguruma-5.9.1-3.1.2.amzn1.x86_64.rpm              | 149 kB   00:00
--------------------------------------------------------------------------------
Total                                              2.6 MB/s | 314 kB  00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : oniguruma-5.9.1-3.1.2.amzn1.x86_64                           1/3
  Installing : jq-libs-1.5-1.2.amzn1.x86_64                                 2/3
  Installing : jq-1.5-1.2.amzn1.x86_64                                      3/3
  Verifying  : oniguruma-5.9.1-3.1.2.amzn1.x86_64                           1/3
  Verifying  : jq-1.5-1.2.amzn1.x86_64                                      2/3
  Verifying  : jq-libs-1.5-1.2.amzn1.x86_64                                 3/3

Installed:
  jq.x86_64 0:1.5-1.2.amzn1

Dependency Installed:
  jq-libs.x86_64 0:1.5-1.2.amzn1      oniguruma.x86_64 0:5.9.1-3.1.2.amzn1

Complete!

CSVファイル準備

↓の様にチェックしたいアカウントのIAMユーザの
AccessKeyとSeacretKeyをカンマ区切りにして、並べてください。
※事故も怖いのでReadOnlyのIAMユーザでやりましょうね!

rds-ver-check.csv
AKIATTDOLZZ6XXXXYYYY,rmgioaAGHriaKGAeig/angoiaemMgamrionaogga
AKIATTDOLZZ6DDDDYYYY,8n098q2tmo98afe$nuigpoRh/UxFNZigabOmp+cj
・
・
・

スクリプト作成

jqを使って、
Engine が mysql かつ
Version に 5.7. が含まれる
という条件で、DBInstance名とVersionNoを取得してます。
※保存した後、実行権限付与して下さいね!

rds-ver-check.sh
#!/bin/sh

export AWS_DEFAULT_REGION=ap-northeast-1
CSV_FILE="$1"
for line in `cat ${CSV_FILE} | grep -v ^#`
do
  AWS_AK=`echo ${line} | cut -d ',' -f 1`
  AWS_SK=`echo ${line} | cut -d ',' -f 2`
  export AWS_ACCESS_KEY_ID=${AWS_AK}
  export AWS_SECRET_ACCESS_KEY=${AWS_SK}

  aws rds describe-db-instances | jq -r -c '.DBInstances[] | select( (.Engine == "mysql") and (.EngineVersion | contains("5.7.")) ) | .DBInstanceIdentifier + " " + .EngineVersion'
done

実行結果

実行するときにCSVファイルを引数として、指定して下さいね!

# ./rds-ver-check.sh rds-ver-check.csv
account01-jump-db01 5.7.17
account01-jump-db02 5.7.10
account02-jump-db01 5.7.16
account02-jump-db02 5.7.17
account03-jump-db03 5.7.17

おわりに

jqの練習がてら使ってみましたが、いいですね!
応用していろんなモノに使えると思うので、良かったらご参考下さい!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0