AWS BackupでEC2のファイル単位リストアは可能になったので試してみる

現在までEC2のリストアはAMIからサーバを丸ごとリストアするか、ファイル単位で行う場合はスナップショットからEBSに復元して別のディスクとしてEC2にアタッチする必要がありました。
AMIからのリストアではサーバ全体が戻ってしまいますし、スナップショットからではEBSをアタッチしなおす等の手間がかかります。
今回の機能追加により、AWS Backupで取得したEBSスナップショットからはファイル単位で選択して、復元できるようになったようなので試してみました。
AMIからのリストアではサーバ全体が戻ってしまいますし、スナップショットからではEBSをアタッチしなおす等の手間がかかります。
今回の機能追加により、AWS Backupで取得したEBSスナップショットからはファイル単位で選択して、復元できるようになったようなので試してみました。
結論
まずは、検証してみた結果の結論から記載しておきますが、期待した内容の機能ではありませんでした。
取得したスナップショットから指定したファイルを復元できますが、それはサーバの中に復元できるわけではありませんでした。
復元先はS3しか指定できないので、どちらかというとEBSスナップショットから特定のファイルをS3に取り出すことができる機能と思った方がよいです。
例えば、サーバの中の1ファイルを誤って削除してしまったり、誤編集してしまったときにEBSスナップショットからS3に取り出して、そこから手動でサーバに配置しなおすような作業になります。
それでも今までと比較すると容易にはなったかもしれませんが、サーバ内のファイルを直接リストアしてくれるようなことをイメージしていたので少し残念でした。
取得したスナップショットから指定したファイルを復元できますが、それはサーバの中に復元できるわけではありませんでした。
復元先はS3しか指定できないので、どちらかというとEBSスナップショットから特定のファイルをS3に取り出すことができる機能と思った方がよいです。
例えば、サーバの中の1ファイルを誤って削除してしまったり、誤編集してしまったときにEBSスナップショットからS3に取り出して、そこから手動でサーバに配置しなおすような作業になります。
それでも今までと比較すると容易にはなったかもしれませんが、サーバ内のファイルを直接リストアしてくれるようなことをイメージしていたので少し残念でした。
作業前提
- バックアップ対象のサーバOSはWindowsServer2025とAmazon Linux2023にしました。
- 復元するファイルの取り出し先用のS3バケットを作成しておいてください。
機能検証
AWS Backcpの作成
①AWS Backupの画面から「新しいボールトを作成」を押下します。
②ボールト名は適当に入力し、ボールトタイプは「バックアップボールト」を選択して、「ボールトを作成」を押下します。
※「論理的にエアギャップのあるボールト」はファイル単位でのリストアに対応していません。

AWS Backcp用のIAMロール作成
①AWS IAMの画面から「ロールを作成」を押下します。
②以下のポリシーを選択して「次へ」に進みます。
- AWSBackupServiceRolePolicyForBackup
- AWSBackupServiceRolePolicyForRestores
- AWSBackupServiceRolePolicyForItemRestores
- AWSBackupServiceRolePolicyForIndexing

③最後に確認画面で「ロールを作成」を押下してIAMロールの作成は完了です。
テスト用のファイル準備
①サーバの中にテスト用のファイルを作成します。■WindowsServer2025

■Amazon Linux2023

オンデマンドバックアップの取得
①AWS Backupのダッシュボードから「オンデマンドバックアップを作成」を押下します。
②リソースタイプを「EBS」として対象のボリュームIDを指定してください。
このとき、「バックアップインデックスを作成」にチェックを入れて下さい。

IAMロールはAWS Backup用に作成したものを指定して、「オンデマンドバックアップを作成」でバックアップ取得を開始します。

ファイルレベルリストアテスト
①取得したAWS Backupの復旧ポイントから対象のバックアップで「検索バックアップ」を選択します。
②項目のプロパティで復元対象のファイルを絞り込むための条件を入力します。
検索結果のファイル数が1000件を超えてしまうと、検索結果として表示されなくなってしまうので、できるだけ絞り込みましょう。

③検索結果からリストアしたいファイルを選択して、「復元」します。
■WindowsServer2025

■Amazon Linux2023

④バケット名に出力先のS3バケットを指定して、復元に使用するロールをAWS Backup用に作成したIAMロールを選択して、「バックアップを復元」を押下します。
■WindowsServer2025

■Amazon Linux2023

⑤復元が完了するとリストアジョブのステータスが「完了」になります。

⑥ファイルは無事にS3にリストアされていることがか確認できました。
ただ、S3のフォルダパスは結構な深さに格納されていました。
S3バケット
┗aws-backup-ebs-restore
┗<復元ジョブID>
┗<ファイル識別子>
┗<復元対象ファイル>

まとめ
AWS Backupでファイルレベルのリストアに対応したということだったので、どんなものかと試してみました。
おもったものと少し異なりましたが、有用ではあると思うので1つの手段として知っておいてよいかと思います。
今回の検証ではオンデマンドバックアップのものだけとなりますが、バックアッププランでも「バックアップインデックス」のオプションがありますので、設定を入れておけば自動のバックアップでもファイルレベルのリストアができるようにインデックスを付けてくれます。

ただし、EBSバックアップしか対応していないので、AWS Backupの対象をEC2としている場合はファイルレベルのリストアの対象にはできないので注意が必要です。
おもったものと少し異なりましたが、有用ではあると思うので1つの手段として知っておいてよいかと思います。
今回の検証ではオンデマンドバックアップのものだけとなりますが、バックアッププランでも「バックアップインデックス」のオプションがありますので、設定を入れておけば自動のバックアップでもファイルレベルのリストアができるようにインデックスを付けてくれます。

ただし、EBSバックアップしか対応していないので、AWS Backupの対象をEC2としている場合はファイルレベルのリストアの対象にはできないので注意が必要です。