RDS for PostgreSQL から Aurora PostgreSQL へのスナップショットやAurora リードレプリカを利用した移行がマネジメントコンソールから行えない場合の対処方法
マネジメントコンソールでの対応がうまくいかない場合は、AWS CLI での対応を行うことで問題の回避ができることがあります。
困っていた内容
ドキュメントを参考にマネジメントコンソールで RDS for PostgreSQL から Aurora PostgreSQL への移行をスナップショットか Aurora リードレプリカを作成して行おうとしています。
ドキュメントに記載の手順をコンソールで実施していくと「スナップショットの移行」の項目がグレーアウトしており、「Aurora リードレプリカの作成」の選択肢も表示されません。対応方法について教えてください。
どう対応すればいいの?
RDS for PostgreSQL のバージョンによっては、AWS CLIを利用することでスナップショットや Aurora リードレプリカの作成が可能です。
スナップショットの場合
$ aws rds restore-db-cluster-from-snapshot \ --snapshot-identifier <DBスナップショットのARN> \ --engine-version <エンジンバージョン> \ --db-cluster-identifier <DBクラスタ名> \ --engine aurora-postgresql
$ aws rds create-db-instance \ --db-cluster-identifier <DBクラスタ名> \ --db-instance-class <<DBインスタンスクラス> \ --db-instance-identifier <DBインスタンス名> \ --engine aurora-postgresql
Aurora リードレプリカの場合
$ aws rds create-db-cluster \ --db-cluster-identifier <クラスター名> \ --engine-version <エンジンバージョン> \ --db-subnet-group-name <DBサブネットグループ名> \ --replication-source-identifier <ソースDBインスタンスのARN> \ --engine aurora-postgresql
$ aws rds create-db-instance \ --db-cluster-identifier <DBクラスタ名> \ --db-instance-class <<DBインスタンスクラス> \ --db-instance-identifier <DBインスタンス名> \ --engine aurora-postgresql
変更可能なエンジンバージョンかを確認する
RDS for PostgreSQL のエンジンバージョンとそれに対応する Aurora PostgreSQL のエンジンバージョン、マネジメントコンソールと AWS CLI での変更可否を検証してみました(※ 2021年10月23日時点)。
RDS for PostgreSQL | Aurora PostgreSQL | コンソール | AWS CLI |
---|---|---|---|
9.6.20 | 9.6.21 | ○ | ○ |
9.6.21 | 9.6.21 | ○ | ○ |
9.6.22 | 9.6.22 | × | ○ |
9.6.23 | × | × | × |
10.15 | 10.14, 10.16 | ○ | ○ |
10.16 | 10.16 | ○ | ○ |
10.17 | 10.17 | × | ○ |
10.18 | × | × | × |
11.10 | 11.11 | ○ | ○ |
11.11 | 11.11 | ○ | ○ |
11.12 | 11.12 | × | ○ |
11.13 | × | × | × |
12.5 | 12.6 | ○ | ○ |
12.6 | 12.6 | ○ | ○ |
12.7 | 12.7 | × | ○ |
12.8 | × | × | × |
13.1 | 13.3 | ○ | ○ |
13.2 | 13.3 | ○ | ○ |
13.3 | 13.3 | ○ | ○ |
13.4 | × | × | × |
上記の表をもとに移行が可能であるか、コンソールでの対応が可能であるかをご確認ください。