LayerX エンジニアブログ

LayerX の エンジニアブログです。

re:Invent2023 で登場した AWS Backup Restore testing でリストア検証を手軽に始める #LayerXテックアドカレ

こんにちは!バクラク事業部 Platform Engineering 部 DevOps チームの id:sadayoshi_tadaです。今期の呪術廻戦のアニメは原作にない描写が描かれてて最高でした。

この記事は LayerXテックアドカレ 49日目の記事です。前日は id:watau_lx さんによる 継続的なパフォーマンス改善のプロセスを紹介します でした。明日は kakeruさんが担当します。この記事では AWS の学習型カンファレンスである、re:Invnent 2023 で登場した AWS Backup Restore testing を検証した内容をまとめていきます。なお、re:Invent 2023 でのアップデートや新サービスをさらえる AWS re:Invent 2023速報 の資料と動画をもしチェックされてない方がいたら年末年始のタイミングでチェックしてみてください🔎

AWS Backup Restore testing とは

これまではバックアップの復元ができるかどうかの確認は実際にリストアして確認する必要がありましたが、AWS Backup Restore testing(以下、Restore testing)ではリストアをスケジュールで自動で実行して正常に復元できるかどうかを確認することができます。また、リストアテスト後のリソースは削除されるようになっており、余計な課金もかからない制御が入っています。

aws.amazon.com

Restore testing がリリースされたことで、リージョンをまたいだバックアップのコピーを組み合わせて別リージョンにバックアップを複製 → 復元の実行確認のプロセスを自動化もできるようになったのは嬉しいですね!

Restore testing のサポートリソース

2023年12月時点でサポートされているリソースは Aurora/Amazon DocumentDB/DynamoDB/EBS/EC2/EFS/FSx (Lustre、ONTAP、OpenZFS、Windows)/Neptune/RDS/S3 です。逆にサポートされてないのが SAP HANA EC2 Database/VMware Backup/Timestream/Redshift です。

利用可能なリージョン

2023年12月時点で利用可能なリージョンは イスラエル/GovCloud (US-East/US-West)/中国(北京/寧夏) を除く商用リージョンです。

Restore testing にかかるコスト

コスト感も確認しておきます。テストごとに料金が発生し、項目としてはテスト実行にかかる料金とリストアテスト用ストレージの料金です。

aws.amazon.com

例えば、東京リージョンにて Aurora で Restore testing を実行する場合は次の費用がかかります。

課金項目 かかる費用 備考
リストアテスト実行にかかる料金 バックアップまたはリカバリポイントあたり$1.8 -
リストアテスト用のストレージ費用 Aurora の復元は無料 リストアのサービスによって異なります

Restore testing の制約

他サービス同様に Restore testing にも次の制約があります。テストが実行できる数や保護可能なリソース、命名の制約は日頃の利用で気にかけていきたいところです。

・100 restore testing plan

・50 tags can be added to each restore testing plan

・30 selections per plan

・30 protected resource ARNs per selection

・30 protected resource conditions per selection (including those within both StringEquals and StringNotEquals)

・30 vault selectors per selection

・Max selection window days: 365 days

・Start window hours: Min: 1 hour; Max: 168 hours (7 days)

・Max plan name length: 50 characters

・Max selection name length: 50 characters

ドキュメントリンク

docs.aws.amazon.com

Restore testing の準備

Restore testing の実行には2ステップ必要です。①Restore testing plan の作成、②Restore testing resources の設定になります。

①Restore testing plan の作成

まずは Restore testing plan の作成を行います。ここではリストアテスト名、テストの頻度・開始時間、復旧時点の項目を設定します。

リストアテスト名、テストの頻度・開始時間、復旧時点を選択します。

②Restore testing resources の設定

次に Restore testubg のリソースを設定してきます。ここではリストアに使う IAM ロール、リストア後のリソース削除のタイミング、リストアの対象 AWS リソースを設定します。リソース削除はデフォルトは即削除ですが、テストの内容によってはリストア後すぐに削除せずにしておきたい場合もあると思います。そういった場合は Retention period before cleanup のセクションで Retain for a specific number of hours を選択してリソースを保持する時間の指定を行います。

リストアに使う IAM ロール、リストア後のリソース削除のタイミング、リストアの対象 AWS リソースを選択します。

なお、マネジメントコンソール以外の設定方法として AWS CLI(①Restore testing plan 作成、②Restore testing resources の設定) や CloudFormation でも設定可能です。Terraform はまた未サポートです。

github.com

Restore testing に関する権限制御

Restore testing で使用する IAM の権限についても簡単にまとめておきます。リストア時に使う IAM の権限はドキュメントに記載のカスタマー管理ポリシーの権限で問題ありませんでした。また、バックアップが KMS で暗号化されている場合は必要な権限を追加しておきましょう。

Restore testing の実行結果の確認

リストアテストの結果は Restore testing > リストアテスト名 を選択すると Restore testing jobs から確認できます。画像の結果ではスケジューリングしてから1時間以内にテストが開始されて16分ほどでテストが完了しました。Aurora のテストでは awsbackup-restore-test-[バックアップリソース ID] でクラスターがスナップショットから作られていました。

この結果は Aurora の Restore teting の結果になります。

オンデマンドバックアップの実行時間と比較

気になったので Restore testing と AWS Backup のオンデマンドリストアでどれくらい時間に差があるのかを確認しました。Restore testing で使用したのと同じバックアップを使ってリストアしてみたところ26分ほどでリストアが完了しました。復旧時間の確認は Restore testing とは別で確認しておくことに留意するのが良さそうです。

まとめ

AWS Backup Restore testing 概要や検証した内容を紹介させてもらいました。設定時は KMS や IAM の権限不足がないか確認しつつ、実行時はコストを気にかけていけばこれまでかかっていた運用負担を省力化することにつながる、アップデートだと感じました!re:Invent 2023 で発表されたアップデートでプレビューだったりするものもあり、触れないものもありますがこういったアップデートを組み込んで開発・運用をよりよくしていきたいですね。