AWS BackupでEFSのバックアップ、リストアを実施する

##はじめに

AWS Backupサービスがリリースされ、EFSのバックアップ/リストアが可能になったため試してみます。
ファイル単位でリストアできると最高ですが、現状はファイルシステム単位のリストアでバックアップ取得したファイルシステムに対して直接リストアする方法と、新しくファイルシステムを作成する方法が選べます。
直接リストアした場合は、任意のディレクトリが作成されその配下にファイルがリストアされます。

https://aws.amazon.com/jp/backup/getting-started/
https://docs.aws.amazon.com/ja_jp/aws-backup/latest/devguide/create-a-scheduled-backup.html
https://docs.aws.amazon.com/ja_jp/aws-backup/latest/devguide/create-a-scheduled-backup.html
https://docs.aws.amazon.com/ja_jp/aws-backup/latest/devguide/monitor-and-verify-protected-resources.html

##やってみた
バックアッププランを作成します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/92eafe3e-5904-6e72-4a56-8acf083c6276.png)

Build a new planを選択し、Backup plan nameを入力する。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/3dd19091-2b23-5c85-0bc9-5eb9b8ffd863.png)

Rule name：任意のルール名を入力してバックアッププランを作成する。
Schedule：Every 12 hours/Daily/Weekly/Monthly/Custom Cron Expressionから選択
Cronの記載方法は以下を参照
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/events/ScheduledEvents.html
１時間以内のインターバルは設定できません。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/77c9f31b-113b-bc3b-307f-80fa4d7ab7fb.png)

Backup window:バックアップウィンドウを指定する※デフォルトはUTC5AMから８時間
Lifecycle:ライフサイクルの設定を指定
Backup vault:AWS Backupが取得するバックアップの管理単位をVaultと呼ぶ。ここではVaultの設定が可能。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/95fb2e07-6f4e-cd1f-d948-392b5a3615ed.png)

Assign resourcesをクリックする。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/9f72d17f-930a-8f1f-d229-5cd53ad1099f.png)

Resource Assign Nameを入力する。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/3d79ca93-3b96-84bc-2eca-50188f247a57.png)

TAGかResource IDでバックアップ対象のリソースを指定して作成する。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/6a725c9e-a704-6770-9f56-c3a7f1de96e2.png)

指定した時間デバックアップが取得できていることを確認する。

AWS Backup>Backup vaults>vault名

![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/e658e8dc-9ca6-de2b-accc-94397a248c02.png)

##確認
バックアップ取得時点では、EFS上に空のa.txtとb.txtが存在する。

```
$ mount
fs-6feb7a16.efs.us-east-2.amazonaws.com:/ on /home/ec2-user/efs type nfs4 (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=172.31.32.105,local_lock=none,addr=172.31.33.16)
$ ls -l efs/
total 8
-rw-r--r-- 1 root root 0 Jan 23 04:47 a.txt
-rw-r--r-- 1 root root 0 Jan 23 05:01 b.txt
```

a.txtファイルを削除して、b.txtファイルに書き込みします。

```
$ sudo rm efs/a.txt 
$ sudo vi efs/b.txt
$ ls -l efs/
total 4
-rw-r--r-- 1 root root 5 Jan 23 08:27 b.txt
```

AWS Backup>Backup vaults>vault名から任意のRecovery point IDをクリックする。
Restoreをクリックする。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/0aed7a7f-9114-7df5-8f03-234a2c38e4a0.png)

直接既存のEFSファイルシステムにリストアするか、新しいEFSファイルシステムを作成するかを指定する。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/56cb41ce-fe25-9d71-e74a-a96716548b1a.png)

ここでは、Restore to directory in source file systemを指定してRestore backupをクリックする。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/6ec802c8-7b15-314c-76c7-04e5e5f6e138.png)

２ファイルしかないので10分以内に完了していた。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/78184/9fca9c26-1df3-edfe-ba4c-2dca38b18f4a.png)

aws-backup-restore_2019-01-23T08-49-32-134Zが作成されている。

```
$ ls -l efs/
total 8
drwxr-xr-x 3 root root 6144 Jan 23 08:49 aws-backup-restore_2019-01-23T08-49-32-134Z
-rw-r--r-- 1 root root    5 Jan 23 08:27 b.txt
```
aws-backup-restore_2019-01-23T08-49-32-134Z配下にファイルがリストアされた。

```
[ec2-user@ip-172-31-32-105 ~]$ ls -l efs/aws-backup-restore_2019-01-23T08-49-32-134Z/
total 44
-rw-r--r-- 1 root root     0 Jan 23 04:47 a.txt
drw--w---- 2 root root 38912 Jan 23 08:49 aws-backup-lost+found_2019-01-23T08-49-18-134Z
-rw-r--r-- 1 root root     0 Jan 23 05:01 b.txt
```

##お約束
投稿内容は私個人の意見であり、所属企業・部門見解を代表するものではありません。