[小ネタ]Aurora MySQL の スナップショットの復元、ポイントインタイムリカバリ、バックトラックの違いを簡単にまとめてみた

2020.11.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。コンサル部のYui(@MayForBlue)です。

Aurora MySQLの復元系の機能であるスナップショットの復元、ポイントインタイムリカバリ、バックトラックの概要、違いを簡単にまとめてみました。
初めてAurora MySQLを利用されるという方や、これらの機能を使ってみたいけど違いがよくわからないという方のご参考になれば幸いです。

それぞれの機能について

スナップショットからの復元

Amazon RDS により、DB クラスターのストレージボリュームのスナップショットが作成され、個々のデータベースだけではなく、その DB インスタンス全体がバックアップされます。この DB クラスタースナップショットからの復元で、DB クラスターを作成できます。DB クラスターを復元するとき、復元の元となる DB クラスタースナップショットの名前を指定し、復元オペレーションから作成される新しい DB クラスターの名前を指定します。DB クラスタースナップショットから既存の DB クラスターに復元することはできません。復元すると新しい DB クラスターが作成されます。

DB クラスターのスナップショットからの復元

「スナップショットからの復元」は文字通り、事前に取得したスナップショット(バックアップ)から別クラスターを作成する方法です。

スナップショットは自動で取得する方法と、手動で取得する方法があります。 スナップショットの作成については下記ドキュメントをご参照ください。
DB クラスタースナップショットの作成

また、スナップショットからの復元を実際に試したブログが以下となります。

ポイントインタイムリカバリ

DB クラスターを特定の時点に復元し、新しい DB クラスターを作成できます。DB クラスターを特定の時点に復元すると、デフォルトの DB セキュリティグループが新しい DB クラスターに適用されます。DB クラスターにカスタム DB セキュリティグループを適用する場合は、DB インスタンスが使用可能になったら、AWS マネジメントコンソール、AWS CLI の modify-db-cluster コマンド、または Amazon RDS API の ModifyDBCluster オペレーションを使用して明示的に適用する必要があります。

特定の時点への DB クラスターの復元

「特定の時点への DB クラスターの復元」(以下、ポイントインタイムリカバリ)は、自動バックアップ保持期間内の特定時点のDBクラスターを別のクラスターとして再作成できる機能です。
クラスター詳細画面の「メンテナンスとバックアップ」のタブに表示されている、「最も早い復元可能な時刻」と「最も遅い復元可能な時刻」の間の任意の時点を指定することができます。

ポイントインタイムリカバリを実際に試したブログが以下となります。

バックトラック

バックトラックは、指定した時間まで DB クラスターを「巻き戻し」ます。バックトラックは、DB クラスターをバックアップして特定の時点の状態に復元する操作に代わるものではありません。ただし、バックトラックは、従来のバックアップと復元に比べて、以下の利点があります。

・簡単にエラーを取り消すことができます。WHERE 句なしの DELETE などの破壊的なアクションを間違えて実行した場合、サービスの中断を最小限に抑えながら、破壊的なアクション以前の時点まで DB クラスターをバックトラックできます。

・DB クラスターのバックトラックは迅速に実行できます。DB クラスターを特定の時点の状態に復元するには、新しい DB クラスターを起動し、これに対してバックアップデータや DB クラスターのスナップショットから復元する必要があり、時間がかかります。DB クラスターのバックトラックでは、新しい DB クラスターを作成することなく、DB クラスターを数分で巻き戻します。

・以前のデータの変更を調べることができます。DB クラスターを前後に繰り返しバックトラックして、特定のデータの変更がどの時点で発生したかを確認できます。たとえば、DB クラスターを 3 時間前までバックトラックし、そこから 1 時間後まで戻すことができます。この場合、バックトラック時間は元の時間の 2 時間前となります。

Aurora DB クラスターのバックトラック

バックトラックは、上記2つの機能とは異なり新しいクラスターを作成するのではなく、対象のクラスターそのものに対して「巻き戻し」を行う機能です。
DBクラスター作成時にバックトラック機能を有効化し、バックトラックウィンドウ(巻き戻せる時間(最大72時間))を設定することで利用できます。

バックトラック機能にはいくつかの制約があるため、実際に利用される際には上記ドキュメントの「バックトラックの制限」をご参照ください。

バックトラックを実際に試したブログが以下となります。

まとめ

スナップショットの復元 ポイントインタイムリカバリ バックトラック
概要 事前に手動または自動で取得したスナップショットを元に新たなクラスターを作成する 自動バックアップ保存期間内の特定時点のクラスターを復元して新たなクラスターとして作成する 特定時点のクラスターの状態に巻き戻す
構築時の設定の要否 不要 不要(Auroraの場合は自動バックアップが有効化されている) バックトラックの有効化が必要
別のクラスターとして作成される Yes Yes No

さいごに

Aurora MySQL の スナップショットの復元、ポイントインタイムリカバリ、バックトラックの違いを簡単にまとめてみました。
実際にこれらの機能を利用される際には各種ドキュメントをご確認いただければと思いますが、「さくっと違いを知りたい」という方のご参考になればと思います。

以上、コンサル部のYui(@MayForBlue)でした!

参考リンク

DB クラスターのスナップショットからの復元

特定の時点への DB クラスターの復元

Aurora DB クラスターのバックトラック