RDSのバックアップ保持期間はスナップショットの世代数ではない

記事タイトルとURLをコピーする

こんにちは、屋根裏エンジニアの折戸です。

今回はAmazon RDS(以下、RDS)のバックアップ保持期間はスナップショットの世代数ではないということを伝えたいと思います。

背景

RDSは自動バックアップという便利な機能があり、保持期間を設定できます。

aws.amazon.comhttps://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupRetention

当初の私の理解は バックアップ保持期間日数=ローテーションされるスナップショットの世代数でした。
しかし、これは 間違った理解 で実際は違います。

検証

自動バックアップを有効にし、バックアップ保持期間を設定

7日間と設定しました。

変更画面

データベース > 変更 > バックアップ > バックアップ保持期間

データベース情報

データベース > メンテナンスとバックアップ > バックアップ > 自動バックアップ

スナップショット数の確認

後日、スナップショットを確認します。
10日以上経過した状態がこちら。

RDS > スナップショット > 自動 > システムスナップショット

10個のスナップショットが保存されており、保持期間の日数である7よりも多くのスナップショットが保存されています。
どういうことでしょうか。

結論

詳細はよくある質問に記載してます。

aws.amazon.com

リテンション期間の日数よりも 1 日か 2 日自動化 DB のスナップショットの日数が多いのは正常です。自動化スナップショットは 1 日余計にとられていて、リテンション期間中のいつにでも復帰できる時点を設けています。例えば、バックアップウィンドウが 1 日に設定されている場合、自動化スナップショットは 2 つ必要で、これで過去 24 時間中の任意の時点への復帰をサポートしています。また、さらに多くの自動化スナップショットがある場合もありますが、これは新たな自動化スナップショットが、最も古い自動化スナップショットを削除する前に常に生成されるためです。

つまり、タイミングによって保持期間の数よりも多くのスナップショットが保存されるということです。

レプリケートされたバックアップ保持期間も同様

この仕様は別のAWS リージョンへの自動バックアップのレプリケーションを有効化したときのレプリケートされたバックアップ保持期間にも適用されます。

docs.aws.amazon.com

自動バックアップ情報

RDS > 自動バックアップ > レプリケートされたバックアップ保持期間

この場合もバックアップ保持期間と同様に、レプリケートされたバックアップ保持期間の数よりも多くのスナップショットがコピー先のリージョンへ保持されます。

RDSインスタンスを停止時間は保持期間の計算にはカウントされない

今回の仕様とは別で、RDSインスタンスを停止していた期間・時間帯があった場合、 そのインスタンス停止時間は保持期間の計算にはカウントされないという仕様もあります。 blog.serverworks.co.jp

最後に

どなたかのお役に立てれば幸いです。
でわ。

折戸 亮太(執筆記事の一覧)

2021年10月1日入社
クラウドインテグレーション部技術1課

屋根裏エンジニア