【EFS Single File Restore】AWS backupとEFSの連携でファイル単位のリストアを試してみる
AWS BackupでEFSとの連携が便利になり、
EFSでのファイル単位のリストアができるようになりました。
機能を使ってみる機会がありましたのでメモ的に書いてみます。
aws.amazon.com
ユースケースとしては、ユーザやシステムが誤ってファイルを消してしまった場合のリカバリが考えられます。
ドキュメントの細かい箇所を読み込んで行くと、
おおよそ下記のメリット/デメリットがあることが分かりました。
デメリット
- 復元に時間(数分程度)がかかる
- 復元の容量に応じて料金が発生する
検証準備
まずは検証の準備です。
EC2にEFSをマウントし、EFS内に適当なファイルを2つ作成します。
ls -lh /mnt/efs/test/bkup/ 合計 8.0K -rw-rw-r-- 1 ec2-user ec2-user 2 1月 28 03:10 1.txt -rw-rw-r-- 1 ec2-user ec2-user 2 1月 28 03:10 2.txt
AWS Backupで、オンデマンドバックアップ(EFS)を取得します
その後、EFS内のファイルを一つ消してみます
rm /mnt/efs/test/bkup/1.txt ls -lh /mnt/efs/test/bkup/ 合計 4.0K -rw-rw-r-- 1 ec2-user ec2-user 2 1月 28 03:10 2.txt
リストア実施
上記で消してしまったファイルをリストアします。
AWS Backupの画面から、ファイルリストアを実行します。ここで注意なのが、パスの指定方法です。
パスはマウントポイントからのパスを記入します。
上記の例は、下記の場合の例です。
マウントポイント「/mnt/efs」
ファイルフルパス「/mnt/efs/test/bkup/1.txt」
指定するパス「/test/bkup/1.txt」
リストアが実行されると復元がジョブとなり、コンソールで確認できます。
ジョブが完了すると、マウントポイント直下に
「マウントポイント/aws-backup-restore_*」の形式で
ファイルがリストアされています。
ls -ld /mnt/efs/aws-backup-restore_* drwxr-xr-x 3 ec2-user ec2-user 6144 1月 28 03:09 /mnt/efs/aws-backup-restore_2020-01-29T09-05-15-134Z drwxr-xr-x 4 ec2-user ec2-user 6144 1月 28 03:09 /mnt/efs/aws-backup-restore_2020-01-29T09-20-26-282Z
ちなみに、バックアップ中に指定したファイルが存在しない場合は、
空のフォルダが作成されていました(ただし復元ジョブは成功の扱い)
ls -lh /mnt/efs/aws-backup-restore_2020-01-29T09-05-15-134Z/ 合計 36K drw--w---- 2 root root 38K 1月 29 09:05 aws-backup-lost+found_2020-01-29T09-05-15-135Z
上記はファイル単位でのリストアでしたが、
フォルダ単位のリストアも可能なため、
誤操作によるファイル削除等のリカバリには有効な機能です。
AWS EFSを利用する際には利用を検討してみる価値ありです。