restore-db-cluster-to-point-in-time を実行したらクラスターだけが作成され、DB インスタンスがいつまでも起動しない場合の対処方法

2022.08.17

困っていたこと

restore-db-cluster-to-point-in-time を実行したらクラスターだけが作成され、インスタンスがいつまでも起動しません。

なぜこのような現象が起きるのでしょうか。

どう対応すればいいの?

マネジメントコンソール上からクラスター DB のクローンを作成する場合、restore-db-cluster-to-point-in-time と create-db-instance が同時に実行されるため、クラスターと DB インスタンスが同時に作成されます。

しかし、CLI でクローンを作成する場合は、restore-db-cluster-to-point-in-time と create-db-instance をそれぞれ実行する必要があります。

以下は、公式ドキュメントの引用です。

AWS CLI を使用して Aurora DB クラスターのクローンを作成するには、いくつかのステップが必要です。

restore-db-cluster-to-point-in-time AWS CLI コマンドを使用すると、Aurora DB インスタンスの個数が 0 の空の Aurora DB クラスターができます。つまり、このコマンドは Aurora DB クラスターのみを復元し、クラスターの DB インスタンスは復元しません。これは、クローンが使用可能になった後に別途行います。プロセスは 2 ステップで、次のとおりです。

1. restore-db-cluster-to-point-in-time CLI コマンドを使用して、クローンを作成します。このコマンドで使用するパラメータで、作成する空の Aurora DB クラスター (クローン) の容量タイプなどの詳細が制御されます。

2. create-db-instance CLI コマンドを使用して、クローン用の Aurora DB インスタンスを作成し、復元された Aurora DB クラスターに Aurora DB インスタンスを再作成します。

同じドキュメントに、以下の通り tpch100g という名前のクラスターのクローンを作成するコマンド例が記載されています。

次の Linux でクローンを作成する例では、tpch100g-clone という名前のクローンクラスターと、新しいクラスター用の tpch100g-clone-instance という名前のプライマリインスタンスを作成します。 使用する DB エンジンについては指定が必要なため、この例では、describe-db-clusters を使用して --engine パラメータに使用する適切な値を取得しています。

$ aws rds restore-db-cluster-to-point-in-time \

--source-db-cluster-identifier tpch100g \

--db-cluster-identifier tpch100g-clone \

--restore-type copy-on-write \

--use-latest-restorable-time

$ aws rds describe-db-clusters \

--db-cluster-identifier tpch100g-clone \

--query '*[].[Engine]' \

--output text

$ aws rds create-db-instance \

--db-instance-identifier tpch100g-clone-instance \

--db-cluster-identifier tpch100g-clone \

--db-instance-class db.r5.4xlarge \

--engine aurora

参考

Amazon Aurora DB クラスターのボリュームのクローン作成