Amazon AuroraのバックアップをAWS Backupで取得する方法と動作

昨年（2023年）の9月にAWS BackupがAmazon Auroraの継続的バックアップ（ポイントインタイムリカバリ）に対応しました（※）が、Auroraの自動バックアップとの違いや利用時の動作についての理解が曖昧だったので検証してみました。
未来の自分へのメモを兼ねて投稿します。

※参考：

https://aws.amazon.com/jp/about-aws/whats-new/2023/09/aws-backup-amazon-aurora-continuous-backup/

# Auroraの自動バックアップとは？
Aurora側の機能で自動的に有効化されるバックアップ機能です。無効化はできません。
自動バックアップにより、以下の2つのバックアップが行われる認識です。
- ポイントインタイムリカバリに必要なトランザクションログ等の取得
- 自動スナップショットの取得（1日1回。間隔は変更不可。取得時間帯は指定可能。）

上記により、指定した期間（1 ～ 35 日）内の任意の日時や自動スナップショットが取得されたタイミングの状態に復元することが可能です。

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html

# AWS BackupでAuroraのバックアップを取得する

## どのような場合にAWS Backupを利用するか
以下のようなケースが挙げられるのではと思います。
- 他のAWSリソースのバックアップをAWS Backupで行っており、管理を一元化したい
- 他リージョンへのスナップショットの定期的なコピーを行いたい（Amazon RDSのインスタンスではRDS側の機能で対応しているがAuroraは2024/3/4現在未対応のためAWS Backupの利用が必要）
- 36日を超えてバックアップを保管したい（ただしスナップショットのみ対応）

## 実際に設定してみた
Backup VaultとBackup Planの作成は別途行い（特にAuroraに特化した項目はなかった記憶）、Backup Ruleの設定を行います。
この際に、以下で赤枠になっている"ポイントインタイムリカバリ"にチェックを入れると継続的なバックアップとして取得され（ポイントインタイムリカバリにより任意の日時に戻すことが可能。ただし最大でも保持期間は35日。）、チェックを入れないとスナップショットとして取得されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273915/36718d98-db11-3332-4d0c-9c7e0266fc4f.png)

## バックアップの取得結果

バックアップの取得結果としては以下のようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273915/0e0ea300-4f2c-8cc0-5c97-9e9f5b466e97.png)

バックアップタイムが"連続"となっているのがポイントインタイムリカバリを有効にしたバックアップの復元ポイントで、"スナップショット"となっているのがポイントインタイムリカバリを有効にしなかった復元ポイントです。

スナップショット取得（ポイントインタイムリカバリを有効化しないケース）の場合は特に気になる点はありませんでしたが、ポイントインタイムリカバリを有効にしたケースにおいては以下が特徴的だったので、まとめておきます。

### ポイントインタイムリカバリ有効時のバックアップの特徴

- （少なくともユーザが利用できる形での）自動でのスナップショット取得は行われない。スナップショット取得が必要な場合は別途バックアップルール（ポイントインタイムリカバリは有効にしない）の設定が必要な模様
- （画像を取得し忘れましたが）別リージョンへのコピーの設定は可能。ただし、スナップショットとしてコピーされる。
- 設定後最初にバックアップ期間で指定した時刻に到達した際、取得が開始される
- バックアップ頻度、期間の設定ができるが、初日は上述の通りなものの翌日以降はジョブ自体は動くものの処理は何も行われない。別リージョンへのコピー設定を行っている場合、バックアップ頻度、期間に設定したタイミングでスナップショット取得＆別リージョンへのコピーが行われる。
- 別リージョンへのコピー設定を行った場合、メインリージョンでスナップショット取得 → 別リージョンにコピーが行われるが、2024/2の検証時は以下の動作となっていた。
    - メインリージョン側のスナップショットは処理完了後削除される
    - メインリージョン側のスナップショット取得完了時にAWS Backupのジョブとしては完了のステータスとなった。以降の別リージョンへのコピーのステータスは、Auroraのスナップショットの画面から可能。
    - Auroraのスナップショットの画面で別リージョン側にコピーしたスナップショットが見えるようになってしばらくしてからAWS Vaultの復元ポイントとして対象のスナップショットが見えるようになった（ので、焦らず待つのが必要）

## AWS Backup利用時のAuroraの自動バックアップへの影響

### 継続的なバックアップを有効化しない場合
特に影響はなく、Auroraの自動バックアップ側も取得されます。
以下の図でスナップショットが"自動"となっているのが自動バックアップによる取得、"バックアップサービス"となっているのがAWS Backupによる取得です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273915/d169e62d-221f-5a53-eb91-24b4a5ed37bc.png)


### 継続的なバックアップを有効化した場合
AWS Backupでポイントインタイムリカバリを有効にした場合、Auroraの自動バックアップは行われず、AWS Backupのみの管理となります。
バックアップの設定の表示も以下のようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273915/6b7bf3fc-e6e9-b60f-f0a3-927902fdb02e.png)

なお、途中でAWS Backupによる管理に変更しても、ポイントインタイムリカバリで戻すことのできる"最も早い復元可能な時刻"は変わりませんでした。

変更前
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273915/f79b54d7-1172-ba4d-9e6c-2b7878846e4a.png)

変更後
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273915/87b4de60-5d32-d438-9b23-5cf385dba93d.png)

# まとめ
AWS Backupを利用したAmazon Auroraのバックアップについて検証・整理してみました。
特にポイントインタイムリカバリ有効時のバックアップの特徴については実際検証してみないと分からない点も多かったので、検証により理解が深まりました。
やっぱり手を動かすの大事。