保持期間内のRDS自動スナップショットを削除する方法はありますか
この記事は アノテーション株式会社 AWS Technical Support Advent Calendar 2024 | Advent Calendar 2024 - Qiita 13日目の記事です。
困っていた内容
RDSの自動スナップショットを削除しようとすると以下エラー文が出て、削除ができません。保持期間内の自動スナップショットを強制的に削除する方法はありますか?
スナップショットを削除できません システムスナップショットは削除できません。アクティブな DB インスタンスのシステムスナップショットを削除するには、DB インスタンスを変更し、自動バックアップウィンドウを減らします。削除されたインスタンスのシステムスナップショットを削除するには、保持されている自動バックアップを削除します。
どう対応すればいいの?
自動スナップショットは指定した保持期間を超過しない限り、個別に自動または手動での削除を実行することはできません。
また、自動バックアップ保存期間の計算時に対象DBインスタンスが停止状態にあった時間は含まれません。
バックアップの保存期間 - Amazon Relational Database Service
この仕様を利用した代替案として、DBインスタンスの現在定められているスナップショット保持期間を一時的に変更し、短縮させることで、保持期間外のスナップショットを削除することができます。
やってみた
1.マネジメントコンソールの「RDS」→「データベース」から任意のタイプのデータベースを作成します。「追加設定」の「バックアップ保持期間」を4日間に設定します。
2.データベース作成後、「スナップショット」→「システムスナップショット」から自動スナップショットが作成されていることを確認します。
3.このスナップショットの削除を試みますが、設定した保持期間を超過していないため、エラーが起こります。
4.先ほど作成したデータベースの保持期間を変更します。今回検証のため0日間に変更します。
5.自動スナップショットのタブを確認します。保持期間内のため削除できなかった自動スナップショットを削除することができました。
考慮点
上記の削除方法を実施する際は以下2点のように、削除対象でないスナップショットのデータ保持の観点から検討すべきだと考えられます。
- 対象DBインスタンスの稼働時間の合計を算出し、削除対象のスナップショットのみを削除できる保持期間を設定する。
- 削除すべきでない自動スナップショットを手動スナップショットとして別途保存し、削除対象でないデータの保持を実施する。
参考資料