Amazon Aurora の色々あるバックアップ機能を検証してみた

Auroraのバックアップの項目をドキュメントで見るとかなり多いです（もどきも含め）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/1dde6df8-b78d-3866-b66e-d5c84aa6fdac.png)
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_CommonTasks.BackupRestore.html

今回はこんなクラスター作った

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/0756d41d-6950-18a0-5fb9-087abbe1a21d.png)


## バックアップとスナップショット
下にバックアップとスナップショットを書いていますがバックアップもスナップショットもRDSでは同じような扱いをしているみたいです
https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-automated-snapshot-retain-longer/
こんなふうに公式でも同じ扱いで書いています

### 自動バックアップ
→日次で取得されます
※クラスター削除時に自動で削除されてしまいます→保持で削除防げる
日次で取得されると
Aurora のバックアップは連続的かつ増分的であるため、バックアップ保持期間内の任意の時点にすばやく復元できます。
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html

### 手動スナップショット
→上の構成（マルツAZのクラスター）で可能

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/7468d8d6-ca75-b10c-3908-be41374e63b9.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/21d5994a-ac8f-7329-edab-1a7f1b8c902c.png)

とれました

## クローン
あとで作成画面を見るとわかりますがクロスリージョンレプリケーションで同じリージョンにクラスター作ったときと見た目がそっくりなんですね
・データを共有している点
・別リージョンには作成できない点
で異なります

実はこのクローン作成はこのように元のデータを参照するのでスタンドアロンとして機能はしないように見えます
しかし、後述しますがソースDBを消しても参照可能なのでどういうことだと言う状態です（この記事では解決できてません）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/8cc99b4e-6f72-a9e2-bb88-e6825f95e88c.png)

引用：クローンが作成されても、データはコピーされません。クローンは、ソース Aurora DB クラスターと同じページのセットを参照しています。
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Clone.html

### 制限
・作成時にマルチAZ不可（マルチAZのクラスターに対して作成したとしても同様）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/e0aed6c9-c3c6-1397-d3a6-73e6c8d28317.png)

・キャパシティタイプ 変更不可
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/57df3087-594a-a6ac-c093-783bcd764072.png)


クローン作成時にリードレプリカを作れませんが作成後にリードレプリカは作れるみたいです。しかもライターインスタンスのAZと別のAZに作成できたので結局マルチAZできるのかいと思っています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/22d5bcbb-a5a7-49ad-8b81-481b84250ae3.png)


### クローン作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/15792370-24d6-4b46-5821-96519ef050dc.png)
作成中だけど作れたと考えましょう

お遊びでクローンからクローンを作成してみます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/a6b47bd1-9ce5-b2da-d902-bcd6155d4f87.png)
わあすんごい
クソ時間かかったけどできました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/7dbc1e56-f92d-c529-f904-62eab759c767.png)

引用：同じ Aurora DB クラスターから複数のクローンを作成できます。また、別のクローンから複数のクローンを作成することもできます。
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Clone.html

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/a03a823c-2be9-58b5-4463-21249a0772b6.png)



## ポイントインタイムリカバリ
### ポイントインタイムリカバリ（特定時点への復元）
このころ時間は11:16だったのでかなり最近の状態まで復元できることがわかります
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/9965b54b-4387-fc2c-8d60-b95e308757e9.png)
というのもトランザクションログを継続的にS3にアップロードしているからみたいですね
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_PIT.MultiAZDBCluster.html

できました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/7ee8edca-128f-69c2-79da-86006a3a5bfa.png)

他の方の記事を見ると
バックアップを復元するようにスタンドアロンの新しいDBクラスタが作成されるみたいですね（データが破損したソースと一致していないのでレプリケーションやデータの共有は行われていないことがわかります）

https://qiita.com/miyuki_samitani/items/5e1e867048d1741d0388

## バックトラック

バックトラックを有効（あとから変更可能）にするとこのようにバックトラックのボタンがグレーアウトされません

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/0c298bd7-c94c-fbe7-a5fa-204f2b7ff77e.png)

### バックトラック作成
作ってみます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/91c76eed-904f-5c95-b8d0-1245ac903afd.png)

ここに書いてあるとおりバックトラックは新しいDBクラスターにではなく今選択しているDBクラスターに対して実施されます
さらに、バックトラック中はクラスターが使えなくなってしまいます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/1da59e95-e72b-8cf5-dd4d-9e6c598fcac0.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/b0e91ca8-65c0-35fd-ca08-e96a0007e420.png)
このように利用可能とは出ていますが使えないのでしょう・・・

ポイントインタイムリカバリに関して思ったのですが例えばリーダーインスタンスを削除したとしてそれは復元されるのか？つまりクエリによるトランザクションログ以外も復元されるのかを見てみたいと思います（多分できない？）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/9d942f2e-29f3-b70d-139f-e0ec8435c937.png)
今までクソお世話になりました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/e1b6b915-5cc0-158b-724a-3f735da342ab.png)
削除されたのでバックトラックしてみました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/5cf3ba1f-b7cc-5228-f153-7296601e91f9.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/6c8e3ed7-bc45-e6c3-1add-3aaa034ca538.png)
戻りませんでした。
つまり復元されるのはあくまでデータボリュームのデータ（トランザクションログなど）だけということです

## リソースの削除
ここで気になるのはソースDBを最初に削除したら
・クローンはどうなる？
・クローンのクローンはどうなる？
・ポイントインタイムリカバリでリカバリされたDBはどうなる？


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/7530b962-c70a-34c3-ce37-f21567c815a0.png)
今までクs・・・

現状
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/412decc7-4564-4406-110e-43e725fc881e.png)

事後
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/969819/74ada3ef-5043-f3d8-7224-4361033f0df8.png)

すべて残っている・・どういうことだ・・・
引用：
ソースクラスターボリュームの削除
1 つ以上のクローンが関連付けられているソースクラスターボリュームを削除しても、そのクローンには影響しません。クローンは、ソースクラスターボリュームが前に所有していたページをポイントし続けます。

だそうです・・・

## 最後に（ここ重要）
これらすべて紹介しましたがAZ障害やクラスター障害に対して対処できるのは以下のみです
・自動バックアップ
・手動スナップショット
・ポイントインタイムリカバリ（バックアップに対して行う）
のみです
ほかはソースDBが削除されてしまえば使い物になりません