Top View


Author 山下達也

AWS BackupでS3バケットを特定の時点に復元できるように設定

2022/02/25

何ができるようになったの?

AWS Backupでは、バックアッププランを作成することで様々なリソース(EFS, FSx, RDS etc..)のバックアップを任意の周期で自動で取得してくれるサービスです。

今回のリリースにより、バックアップ取得対象のサービスに東京リージョンのS3を含めることができるようになりました。

何が嬉しいの?

「S3バケットにはそもそもバージョニングの機能があるから、AWS Backupでわざわざ取る必要ないのでは??」と感じてるそこのあなた。

ちょっとお話を聞いてください。

S3にはバージョニングの機能はありますが、「オブジェクトに対するバージョニング」であって、「S3バケット全体に対するバージョニング」ではないのです。

なので、もしもS3に大量のオブジェクトが保存されており、それを任意の時点に戻したい場合、バケット内で日毎にディレクトリを切ってそこに前日のオブジェクトをコピーしていく等をしなければなりませんでした。

それが、AWS Backupを使えば自動的に特定の周期でバックアップを取得してくれて、ポイントインタイムリカバリ的に復元をすることができるようになったということです。

設定方法

設定方法を見てみましょう。

1. AWS BackupからS3バックアップ機能を有効化し、対象S3バケットのバージョニングを有効化する

1-1. AWS BackupのS3バックアップ機能を有効化

Image from Gyazo

Image from Gyazo

1-2. 対象S3バケットのバージョニング有効化

Image from Gyazo

2.Backupプランを作成

Image from Gyazo

Image from Gyazo

3. Backupプランにリソースを紐付け

3-1. 「リソースを割り当てる」をクリック

Image from Gyazo

3-2. 特定のS3バケットを紐付け

Image from Gyazo

Image from Gyazo

これで設定は完了です!

復元方法

さて、復元方法です。

1. 「保護されたリソース」から対象のリソースをクリック

Image from Gyazo

2. 対象のバックアップを選択して、「復元」を押下

Image from Gyazo

3. 復元のオプションを選択し、「バックアップを復元」を押下

Image from Gyazo

Image from Gyazo

注意点

  • 復元時点以降に追加されたファイルは、復元時に削除はされない仕様みたいです。復元時点と全く一緒の状態にするためには、一度バケットを空にしてから復元すると良いみたいです。
  • S3バックアップはプレビューの機能なので、デフォルトロールにポリシーを加えないとバックアップと復元ができないみたいです。ご注意ください。

加えるポリシーは下記の記事を参考にしてください。 https://docs.aws.amazon.com/ja_jp/aws-backup/latest/devguide/s3-backups.html

まとめ

どうでしたでしょうか。

私はルールの設定の時にCron式では1時間毎で設定していましたが、 バックアップウィンドウをデフォルトで設定して、バックアップウィンドウが来るまでバックアップが取得されず無駄に時間を過ごしてしまいました笑笑

そんなこんなですが、簡単な設定で任意の時点に戻せるようになったのは便利ですね。 使っていきましょう!

山下達也

山下達也

AWS / Ruby / Rails あたりをやってます。