Amazon Aurora クラスターを削除しようとすると、 エラーメッセージが表示されます。Amazon Relational Database Service (Amazon RDS) コンソールでは、削除のオプションがグレー表示されており使用できません。この問題をトラブルシューティングし、クラスターを削除するにはどうすればよいですか?
簡単な説明
Amazon RDS コンソールまたは AWS コマンドラインインターフェイス (AWS CLI) を使用して、Amazon Aurora クラスターを削除できます。詳細については、「DB インスタンスを削除する」を参照してください。
AWS CLI を使用して Aurora クラスターを削除するには、まずクラスター内の DB インスタンスをすべて削除します。クラスター内のすべての DB インスタンスを削除したら、delete-db-cluster を使用してクラスターを削除できます。Amazon RDS コンソールを使用してクラスター内の最後の DB インスタンスを削除すると、空になったクラスターは自動的に削除されます。
解決策
注: AWS CLI コマンドの実行中にエラーが発生した場合は、最新バージョンの AWS CLI を使用しているかどうかを確認してください。
クラスターを削除する前に、以下の点を考慮します。
- DB インスタンスが 1 つだけのクラスターがあり、Amazon RDS コンソールを使用してその DB インスタンスを削除する場合は、その DB インスタンスとクラスターを削除します。
- 1 つのライターインスタンスと 1 つ以上のリーダーインスタンス/リードレプリカが存在するクラスターがあり、リーダーインスタンスを削除する場合は、ライターインスタンスとクラスターに影響が及ぶことはありません。ライターインスタンスを削除すると、リーダーインスタンスは自動的にライターとして昇格します。このフェイルオーバー操作により、ダウンタイムが発生します。
Amazon RDS コンソールを使用して、内部にインスタンスがない Aurora クラスターを削除する
Amazon RDS コンソールで以下の手順を実行します。
- Amazon RDS コンソールを開きます。
- ナビゲーションペインで [データベース] を選択し、クラスターを選択します。
- [アクション]、[クラスターを削除] の順に選択します。
注:****[クラスターを削除] がグレー表示になっている、または選択できない場合は、削除する必要のあるクラスター内にインスタンスが残っている可能性があります。この場合は、クラスター内のすべてのインスタンスを削除してください。Amazon RDS コンソールを使用してクラスターの最後のインスタンスを削除すると、クラスターは自動的に削除されます。
次のエラーが表示される場合は、以下の手順に従います。
「This database has deletion protection option enabled, to be able to delete the last Aurora DB instance, modify the Aurora cluster and disable deletion protection」
- Amazon RDS コンソールを開きます。
- ナビゲーションペインで [データベース] を選択し、クラスターを選択します。
- [アクション]、[クラスターの変更] の順に選択します。
- [削除保護を無効化]、[続行] の順に選択します。
- [すぐに適用] を選択します。
AWS CLI を使用して Aurora クラスターを削除する
注: 以下の手順は、Aurora MySQL と Aurora PostgreSQL の両方に適用されます。
1.Aurora クラスターを削除します。
以下のコマンドを実行します。
aws rds delete-db-cluster --db-cluster-identifier sample-cluster --final-db-snapshot-identifier mydbinstancefinal
このコマンドはクラスターを削除し、最終的な DB クラスターのスナップショットを取得します。最終的なスナップショットを作成しない場合は、このコマンドの実行時に ---skip-final-snapshot オプションを使用します。このコマンドを実行すると、次のエラーが表示されることがあります。
「An error occurred (InvalidDBClusterStateFault) when calling the DeleteDBCluster operation: Cluster cannot be deleted, it still contains DB instances in non-deleting state」
これは、クラスター内にインスタンスが存在するため、クラスターを削除できないことを示しています。クラスターを削除する前に、クラスターに関連付けられているすべてのインスタンスを必ず削除してください。
2.クラスター内のインスタンスを削除する
以下のコマンドを実行します。
aws rds delete-db-instance --db-instance-identifier sample-instance
クラスター内のインスタンスを削除しようとすると、次のいずれかのエラーメッセージが表示されることがあります。
-
「InvalidParameterCombination: An error occurred (InvalidParameterCombination) when calling the DeleteDBInstance operation: FinalDBSnapshotIdentifier cannot be specified when deleting a cluster instance」
クラスター内のインスタンスを削除するためにコマンドを実行する際際に、--final-db-snapshot-identifier オプションを使用するとこのエラーが表示されます。このエラーは、クラスター内のインスタンスを削除するときに最終スナップショットを作成できないことを警告するものです。--final-db-snapshot-identifier オプションを削除するか、--skip-final-snapshot オプションを使用してコマンドを再実行します。
-
「InvalidDBClusterStateFault: Cannot delete the last instance of the read replica DB cluster.Promote the DB cluster to a standalone DB cluster in order to delete it」
このエラーは、削除しようとしている Aurora クラスターがレプリカとして機能しているものの、クラスターがスタンドアロンに昇格するまでクラスターの最後のインスタンスを削除できないことを示すものです。
3.レプリカクラスターを昇格させる
次のコマンドを実行して、レプリカクラスターを昇格させます。
aws rds promote-read-replica-db-cluster --db-cluster-identifier rds-mysql-aurora-replica-cluster
関連情報
RDS リソースを削除または終了するにはどうすればよいですか?
Amazon Aurora DB クラスターの管理
Aurora DB クラスターと DB インスタンスを削除する