🛢️

RDSのバックアップ・スナップショット・リストア・リカバリを理解する

2021/03/30に公開

概要

RDSを触っていると色々な用語が出てきて混乱することが多々あるため、よく出てくる似通った用語たちをRDSの文脈で整理してみた。この分野は様々な解釈がありそうなので私の考えで説明する(一部分かりやすさを優先し厳密でない箇所がある)。

バックアップ

データが破損した場合に備えて、ストレージのデータのコピーを作成しておくこと。取っておいたコピーを用いてデータを復元することを目的とする。「バックアップをとっておく」などと言う。

RDSの機能としては、自動バックアップというものがあり、最大35日間分のデータのコピーを毎日自動で作成しておくことができる。

スナップショット

バックアップ方法の一種で、ある瞬間のデータ状態を丸ごと写し取ったコピーのこと。サーバーに負荷をかけないとか、速いとかで近年よく使われる技術。

RDSのバックアップにはスナップショットが使われており、先述の自動バックアップでスナップショットを作成したり、ユーザーが手動で任意の時点のスナップショットを作成できる。

自動バックアップで作成されたスナップショットは設定期限を過ぎると破棄されるが、手動バックアップで取得したスナップショットは削除されない。

また、自動バックアップをONにしておくことで、ポイントインタイムリカバリという特定時点への復元が可能となる(かなり細かい時間を指定できる)。

リストア(復元)

スナップショットからデータを戻すこと。ある過去時点のデータ状態にまるっと戻すだけなので復元という。

RDSが提供する方法としては、手動スナップショットによるリストアと、ポイントインタイムリカバリによるリストアがある。どちらもスナップショットを使っているが後者は先に説明したように細かな時間を指定できる。リカバリなのにリストア?と思うかもしれないがリストアはリカバリに含まれるので矛盾はしていない。

またバックトラックも、厳密にはリストアとは言えないが「ある過去時点のデータ状態にまるっと戻す」と言う意味で同様の役割を果たす。

リカバリ(復旧)

実際に稼働できる状態までデータを戻すこと。例えば、ユーザーAのデータだけが破損してしまった場合、バックアップから過去時点のデータを複製し、そのデータを用いて破損したデータを元に戻すことはリカバリと言える。もちろんリストアだけでリカバリするケースもある。

Discussion