AWS CLIで利用可能なRDSインスタンスクラスとエンジンバージョンの組み合わせを取得する

やりたいこと

Amazon RDS はインスタンスクラスによってサポートされているエンジンとエンジンバージョンに制限がある。
RDS と Aurora それぞれのサポート状況は下記を確認できる。

これを AWS CLI で見やすい形式にして取得したい。

AWS CLIコマンド

インスタンスクラスとエンジン、エンジンバージョンの組み合わせは describe-orderable-db-instance-options コマンドで取得できる。

CLI だけ

--engine オプションのみ必須なので、インスタンスクラスかエンジンバージョンを指定すればそれぞれのサポート状況を確認できる。

$ aws rds describe-orderable-db-instance-options \
--engine aurora-mysql \
# --db-instance-class db.t4g.medium \
--engine-version 8.0.mysql_aurora.3.02.2 \
--query 'OrderableDBInstanceOptions[].[DBInstanceClass,EngineVersion]' \
--output table
------------------------------------------------
| DescribeOrderableDBInstanceOptions |
+------------------+---------------------------+
| db.r5.12xlarge | 8.0.mysql_aurora.3.02.2 |
| db.r5.16xlarge | 8.0.mysql_aurora.3.02.2 |
| db.r5.24xlarge | 8.0.mysql_aurora.3.02.2 |
| db.r5.2xlarge | 8.0.mysql_aurora.3.02.2 |
| db.r5.4xlarge | 8.0.mysql_aurora.3.02.2 |
| ..... |
| db.serverless | 8.0.mysql_aurora.3.02.2 |
| db.t3.large | 8.0.mysql_aurora.3.02.2 |
| db.t3.medium | 8.0.mysql_aurora.3.02.2 |
| db.t4g.large | 8.0.mysql_aurora.3.02.2 |
| db.t4g.medium | 8.0.mysql_aurora.3.02.2 |
+------------------+---------------------------+

jq コマンドと組み合わせ

CLI だけでも十分だが、文字列マッチングなどで柔軟な取得をしたい場合は jq コマンドと組み合わせると便利。

jq Manual

$ aws rds describe-orderable-db-instance-options \
--engine aurora-mysql \
| jq -r '.OrderableDBInstanceOptions[] | select((.EngineVersion | test("8.0.mysql_aurora.3")) and (.DBInstanceClass | test("(small|medium)"))) | [.DBInstanceClass,.EngineVersion] | @tsv'
db.t3.medium 8.0.mysql_aurora.3.01.0
db.t4g.medium 8.0.mysql_aurora.3.01.0
db.t3.medium 8.0.mysql_aurora.3.01.1
db.t4g.medium 8.0.mysql_aurora.3.01.1
db.t3.medium 8.0.mysql_aurora.3.02.0
db.t4g.medium 8.0.mysql_aurora.3.02.0
db.t3.medium 8.0.mysql_aurora.3.02.1
db.t4g.medium 8.0.mysql_aurora.3.02.1
db.t3.medium 8.0.mysql_aurora.3.02.2
db.t4g.medium 8.0.mysql_aurora.3.02.2

基本的にドキュメントで確認可能だが、Terraform などエンジンバージョンの正確な設定値がほしい場合に便利。

以上。

← Blog