👻

AWS Backup for S3でCross-Region backup

2022/10/12に公開約2,500字

このページについて

AWS Backup for S3について考慮事項を確認し、Cross-Region backup(リージョン間コピー)を試してみました。

AWS Backup for S3について

AWS BackupでS3のバックアップを取ることができます。

https://docs.aws.amazon.com/ja_jp/aws-backup/latest/devguide/s3-backups.html

S3バケット側で必要な設定

  • バージョニング有効
  • (リストア先バケットについて)ACL有効

バージョニングについて

バージョニングを設定していないバケットをバックアップしようとするとエラーになります。

また、バージョンにライフサイクルの有効期限を設定することも考慮が必要です。
設定していない場合、有効期限が切れていないバージョン全てをバックアップして保存するため、S3のコストが増加する恐れがあります。

ACLについて

ドキュメントでもACL有効について記載があるので、検証してみました。

Considerations:
Access Control Lists (ACLs) must be enabled in the destination bucket, or the job will fail otherwise. S3 buckets created through the AWS Backup console have ACLs disabled by default (note that restoring with the Create new bucket option will create a bucket with ACLs enabled). To enable ACLs, follow the instructions in Configuring ACLs page.
https://docs.aws.amazon.com/aws-backup/latest/devguide/restoring-s3.html

バックアップ

ACLの設定がなんだろうとバックアップはできました。

ACL無効 ACL有効
(希望するバケット所有者)
ACL有効
(オブジェクトライター)
  • オンデマンドバックアップで検証。

リストア

リストア先は元のバケットではなく、別のバケットを指定して試しています。

Source/Destination ACL無効 ACL有効
(希望するバケット所有者)
ACL有効
(オブジェクトライター)
ACL無効 ×
ACL有効(希望するバケット所有者) ×
ACL有効(オブジェクトライター) ×
  • 条件は全て以下に揃えてます。
    • バージョニング: 有効
    • パブリックアクセスをすべてブロック: 有効
    • デフォルト暗号化: 無効
    • オブジェクトロック: 無効

エラー内容

現状はDestinationBucket側はACLを有効にしないとジョブが失敗します。
エラー内容的には、バケットにオブジェクトを書き込んで、それをバケット所有者にするために bucket-owner-full-control を必要としてるからかと思われます。

Cannot restore, as the BucketOwnershipControls of {DestinationBucket} do not allow the use of object ACLs.

Cross-Region backup(リージョン間コピー)について

AWS Backupを使用して、別リージョンにバックアップを取ることができます。
(S3については、2022年4月頃確認したらサポートされていませんでしたが、2022年10月時点ではサポートされています!)

https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html#features-for-all-resources

バックアッププランにて、以下のように設定できます。
コピー先に別リージョンのボールトを指定します。

オンデマンドバックアップでやってみる

試しにオンデマンドバックアップをCross-Region backup(リージョン間コピー)してみます。
まずはS3のオンデマンドバックアップを取ります。

その後、バックアップボールトに取得された復旧ポイントをコピーします。

コピーする際、別リージョンのボールトをコピー先として指定します。

以上、簡単です。

AWS BackupのCFn

汎用的なAWS Backupの設定をCFnで作成しました。
日次、週次、月次のバックアップ設定を入れてます。
また、Cross-Region backup(リージョン間コピー)についてはコメントアウトしてます。

https://github.com/isseeeeey55/cfn-template/blob/main/awsbackup.yaml

GitHubで編集を提案

Discussion

ログインするとコメントできます