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 コンソールを開きます。
- ナビゲーションペインから [Databases] (データベース) を選択し、クラスターを選択します。
- [Actions] (アクション)、[Delete Cluster] (クラスターの削除) の順に選択します。
注: [Delete Cluster] (クラスターの削除) がグレーアウトしている、または選択できない場合、削除する必要のあるクラスター内にインスタンスが残っている可能性があります。この場合、クラスター内のすべてのインスタンスを削除します。Amazon RDS コンソールを使用してクラスター内の最後のインスタンスを削除すると、クラスターは自動的に削除されます。
次のエラーが表示される場合は、次の手順に従います。
「このデータベースでは削除保護オプションが有効になっています。最後の Aurora DB インスタンスを削除するには、Aurora クラスターを変更して、削除保護を無効化してください」
- Amazon RDS コンソールを開きます。
- ナビゲーションペインから [Databases] (データベース) を選択し、クラスターを選択します。
- [Actions] (アクション)、[Modify Cluster] (クラスターの変更) の順に選択します。
- [Disable deletion protection] (削除保護を無効化)、[Continue] (続行) の順に選択します。
- [Apply immediately] (すぐに適用) を選択します。
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 オプションを使用します。このコマンドを実行すると、次のエラーが表示されることがあります。
「DeleteDBCluster 操作の呼び出し時にエラー (InvalidDBClusterStateFault) が発生しました。クラスターを削除できません。まだ削除されていない状態の DB インスタンスが含まれています」
これは、クラスター内にインスタンスが存在するため、クラスターを削除できないことを示すものです。クラスターを削除する前に、クラスターに関連付けられているすべてのインスタンスを削除してください。
2. クラスター内のインスタンスを削除する
次のコマンドを実行します。
aws rds delete-db-instance --db-instance-identifier sample-instance
クラスター内のインスタンスを削除しようとすると、次のいずれかのエラーメッセージが表示されることがあります。
- 「InvalidParameterCombination: DeleteDBInstance 操作を呼び出すときにエラーが発生しました (InvalidParameterCombination): クラスターインスタンスの削除時に FinalDBSnapshotIdentifier を指定できません」
クラスター内のインスタンスを削除する際、コマンドを実行するときに --final-db-snapshot-identifier オプションを使用すると、このエラーが表示されます。このエラーは、クラスター内のインスタンスを削除するときに最終的なスナップショットを作成できないことを警告するものです。--final-db-snapshot-identifier オプションを削除するか、--skip-final-snapshot オプションを使用し、コマンドを再実行します。
- 「InvalidDBClusterStateFault: リードレプリカ DB クラスターの最後のインスタンスを削除できません。削除するには、DB クラスターをスタンドアロン DB クラスターに昇格させてください」
このエラーは、削除しようとしている Aurora クラスターがレプリカとして機能しているが、クラスターがスタンドアロンに昇格するまでクラスターの最後のインスタンスを削除できないことを示すものです。
3. レプリカクラスターを昇格させる
次のコマンドを実行して、レプリカクラスターを昇格させます。
aws rds promote-read-replica-db-cluster --db-cluster-identifier rds-mysql-aurora-replica-cluster
関連情報
RDS リソースを削除または終了するにはどうすればよいですか?
Amazon Aurora DB クラスターの管理
Aurora DB クラスターの DB インスタンスを削除する