RDSってどんな製品(エンジン)が利用できるのだろうか。一覧とかだして、確認
することができたらいいな。AWSコンソールから操作すると、もし、何かミスをし
て、他のシステムに影響があったら困るし、課金されても困る。どんなエンジンが
あるかどうかさえ分かれば、いいのに。こんな時には、AWS CLIを使いましょう。
1.現在利用中のRDSの情報を出力しよう!
利用中のRDS一覧を出力する場合は、以下のコマンドを実行します。
aws rds describe-db-instances

json形式で沢山出力されます。
2.現在利用中のRDSで出力する情報を絞り込んでみよう!
オプションのqueryを使用することで絞り込みができます。
以下の例は、ClassとId,Engine,Endpointのアドレスに絞った例です。
トップレベルがDBInstanceで(画像C 階層と項目)DBInstanceIdentifer,
DBInstanceClass,Engineをdict{}に配置し、{EndPoint.Address}を分けて配置
させます。DBinstanceIdentiferと同列に書くと縦長に配置されて出力されます。
aws rds describe-db-instances \
--query "DBInstances[].[{ID:DBInstanceIdentifier,Class:DBInstanceClass,\
Engine:Engine},{Endpoint:Endpoint.Address}]" \
--out table


3.利用可能なRDSのEngineとVersion情報を出力しよう!
利用中のリージョンで、利用可能なRDS一覧を見たい場合に以下のコマンドを実行します。
aws rds describe-db-engine-versions

json形式でどばーっと出力されます
4 出力する情報を絞り込んでみよう!
オプションのqueryを使用することで絞り込みができます。
以下の例はDBParameterGroupFamilyとEngineversionのみに絞ったものです。
DBParameterGroupFamilyが、このDBパラメータグループファミリー互換性のある名前で
EngineVersion が、このエンジンのバージョンです。
aws rds describe-db-engine-versions \
--query "DBEngineVersions[*].[{FamiryName:DBParameterGroupFamily,Vesion:EngineVersion}]" \
--out table

queryオプションの設定は以下のようになります 結果は、Json形式で出力されます。
これを踏まえて絞り込む内容を記述します。
トップレベルが、DBEngineVersions[*]. (画像F 階層と項目)
DBEngineVersions[*] .[{FamiryName:DBParameterGroupFamily,Vesion:EngineVersion}]
下の階層(画像C 階層と項目)DBParameterGroupFamily項目)の値と、EngineVersion項目の値を
{key1:value,key2:value}のdict形式でフォーマットして、項目名を出力するようにする

5 RDSのエンジンを指定してそのエンジン情報のみ出力しよう!
5.1 エンジンにaurora-mysqlを指定
aurora-mysqlのみ出力したい場合は、engineにaurora-mysqlを指定します。
更にFamiryNameとVesionのみを出力するようにします。
aws rds describe-db-engine-versions --engine aurora-mysql \
--query "DBEngineVersions[*].[{FamiryName:DBParameterGroupFamily,Vesion:EngineVersion}]"\
--out table

5.2 エンジンにoracle-eeを指定
oracleの場合は、oracle-eeとoracle-seが利用可能です。–engineオプション にoracle-ee
まで指定する必要があります。
aws ds describe-db-engine-versions --engine oracle-ee \
--query "DBEngineVersions[*].[{FamiryName:DBParameterGroupFamily,Vesion:EngineVersion}]"\
--out table

6 VersionUp可能なエンジンを表示しよう!
6.1 MariaDB 10.2.37からバージョンアップ可能なRDS一覧
RDSを利用していると、現在利用しているエンジンのバージョンアップを要求される
ことがあります。どのバージョンにアップしたら良いのか(可能なのか)が
AWS CLIコマンドで確認できます。以下の例はmariadb 10.2.37からバージョンアップ
可能なエンジンの一覧を出力するものです。
echo 'mariadb 10.2.37 up'
aws rds describe-db-engine-versions \
--engine mariadb --engine-version 10.2.37 \
--query "DBEngineVersions[].ValidUpgradeTarget[].[{Des:Description,Auto:AutoUp
grade,Major:IsMajorVersionUpgrade,UpVersion:EngineVersion}]" \
--out table

queryオプションの指定はトップレベルが(画像K 階層と項目)DBEngineVersions 一つ下の
レベルがValidUpgradeTargetそこを全て見るのでDBEngineVersions[*].ValidUpgradeTarget[*]
その下の項目(画像L 指定項目)、Description,AutoUpgrade,IsMajorverVersion,EngineVersion
をDict形式で指定する


6.2 Oracle-ee 12.1.0.2.v2からバージョンアップ可能なRDS
以下の例はoracle-ee 12.1.0.2.v2からバージョンアップ可能なエンジンの一覧を出力するものです。
echo 'oracle-ee 12.1.0.2.v2 up'
aws rds describe-db-engine-versions \
--engine oracle-ee --engine-version 12.1.0.2.v2 \
--query "DBEngineVersions[].ValidUpgradeTarget[].[{Version:EngineVersion,Auto:
AutoUpgrade,Major:IsMajorVersionUpgrade}]" \
--out table

7.感想
RDSの情報でニーズがありそうな項目を出力するコマンドを実行してみました。
今利用のバージョンからバージョンアップ可能な物は何があるかは、良く問い合わせがあります。
何かのお役に立てば何よりです。
Linux版その1 EC2の情報出力 https://opt-p.co.jp/blog/aws/post-1633/
Linux版その3 VPCの情報出力 https://opt-p.co.jp/blog/aws/post-2080/
Linux版その4 色々な情報出力 https://opt-p.co.jp/blog/aws/post-2421/