2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BeeXAdvent Calendar 2024

Day 22

AWS Backupのitem-level recoveryを試してみる

Last updated at Posted at 2024-12-21

2023年12月18日にAWS Backupでアイテムレベルのリカバリがサポートされました。

この機能はAWS Backupで取得したEBSスナップショット又はS3のバックアップ内から任意のファイルのみを取り出すもので、特定のファイルのみ復元したいケースなどで利用することでリカバリ時間の短縮が見込めそうです。
今回はEBSのスナップショットから特定のファイルの取り出しを行ってみました。

EBS内にファイルを作成

最初に以下の流れでEBS内にファイルを作成します。

①:EC2を起動してEBSをアタッチする。
②:アタッチしたEBSにファイルシステムを作成する。今回はxfsファイルシステムを作成しました。
③:ファイルシステムをマウントする。今回は/mntにマウントしています。
④:/mnt/test_dir配下に100MBのファイルを5個作成する。作成したファイルは以下の通りです。

[root@ip-10-0-0-88 test_dir]# ls -lh /mnt/test_dir
total 500M
-rw-r--r--. 1 root root 100M Dec 21 06:08 test-1
-rw-r--r--. 1 root root 100M Dec 21 06:08 test-2
-rw-r--r--. 1 root root 100M Dec 21 06:08 test-3
-rw-r--r--. 1 root root 100M Dec 21 06:08 test-4
-rw-r--r--. 1 root root 100M Dec 21 06:08 test-5

IAMロールの作成

EBSスナップショット内から特定のファイルのみ取り出す場合は以下のIAMポリシーを含んだIAMロールでAWSBackupにジョブを実行させる必要があります。
・インデックスの作成(ファイルの一覧作成):AWSBackupServiceRolePolicyForIndexing
・ファイルの取り出し:AWSBackupServiceRolePolicyForItemRestores

こちらのIAMポリシーについての詳細は公式ドキュメントをご参照ください。
https://docs.aws.amazon.com/aws-backup/latest/devguide/backup-search.html#backup-search-access

本ブログ執筆時点(2024年12月22日)では上記IAMポリシーがアタッチされているIAMロールはデフォルトでは用意されていないため別途作成する必要があります。
以下2つのIAMロールを作成しました。
・AWSBackup_BackupAndIndexRole
アタッチしたIAMポリシー
 AWSBackupServiceRolePolicyForBackup
 AWSBackupServiceRolePolicyForIndexing

・AWSBackup_ItemRestore
アタッチしたIAMポリシー
 AWSBackupServiceRolePolicyForItemRestores

AWSBackupでEBSスナップショットを取得する

AWSBackupで対象のEBSのスナップショットを取得します。
今回はオンデマンドバックアップで取得しました。

コンソールでAWSBackupの画面を開き、左メニューの「保護されたリソース」を選択後に「オンデマンドバックアップを作成」を選択します。
image.png

以下の設定値を入力して「オンデマンドバックアップを作成」を選択します。
・リソースタイプ:EBS
・ボリュームID:スナップショット取得対象のEBSのボリュームID
・バックアップインデックス:「バックアップインデックスの作成」にチェックを入れる ※バックアップ完了後に自動でインデックスが作成される
・バックアップ期間:「今すぐバックアップを作成」にチェックを入れる
・IAMロール:AWSBackup_BackupAndIndexRole ※事前に作成したIAMロール
image.png

対象のEBSのスナップショットが作成されるまで待機します。
image.png

インデックスの確認

EBSスナップショットの取得が完了したら左メニューの「ボールト」を選択して対象のボールトを選択後、先ほど取得したEBSスナップショットの復旧ポイントIDを選択します。
image.png

「バックアップインデックス」の「インデックスステータス」が「アクティブ」になるまで待機します。 ※スナップショット取得直後は「保留中」となります。
「インデックスステータス」が「保留中」の状態
image.png

「インデックスステータス」が「アクティブ」の状態
image.png

ファイルの検索

インデックスが作成されたら復元対象ファイルの検索を実行します。

「バックアップインデックス」の「検索バックアップ」を選択します。
image.png

「リソースタイプ」、「バックアッププロパティ」には既に必要な値が入っているのでここでは「アイテムプロパティ」のみ設定します。
「アイテムプロパティ」にはファイルサイズが1MB以上という条件を指定しました。
この状態で「検索を開始する」を選択します。
image.png

ファイルの検索が開始されるので暫く待機します。
image.png

検索完了後、下方の「検索結果」の画面を更新するとEBSスナップショット内のファイルが表示されます。
尚、ここで表示される「ファイルパス」はOS上のフルパスではなくEBSのマウントポイントからのパスが表示されます。
image.png

ファイルの復元

それではファイルを復元してみましょう。

復元対象のファイルを選択して「復元」を選択します。
一度に復元可能なファイルは5つまでです。
image.png

ファイルの復元先はS3となるため、復元先のS3バケットと事前に作成したIAMロール「AWSBackup_ItemRestore」を指定して「バックアップを復元」を選択します。
image.png

復元が開始されるので暫く待機します。
image.png

ステータスが「完了」となれば復元ジョブは完了です。
image.png

復元先のS3バケットを確認すると対象のファイルが復元されていました。
image.png

復元までの流れは以上となります。

これまでは特定のファイルを復元したい場合は、EBSスナップショットリストア→リストアしたEBSをEC2へアタッチ→ファイルシステムマウント→OS上でファイル検索、という流れを踏んでいたのがこの機能を使用することでかなり簡素化できそうです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?