AWS Backup 東京リージョンに対応したらしいので触ってみた

#主な特徴#
AWS リソースのバックアップ、復元、ポリシーベースの保持のための単一ダッシュボードとして機能します。

#対応しているリソース#

https://aws.amazon.com/jp/backup/resources/?backup-blogs.sort-by=item.additionalFields.createdDate&backup-blogs.sort-order=desc

#EBS(やってみた)#

2019/07/02に東京リージョンに対応したらしいので、触ってみました。
[AWS Backup が東京リージョンに対応しました](https://aws.amazon.com/jp/blogs/news/aws-backup-tokyo/)

「新しいプランを立てる」で「バックアッププラン名」には適当な名前を入力。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/2fb1b761-436b-5766-42f9-efaf9cf59346.png)

デフォルトにすると、午前 5 時 (UTC 時間) に開始に設定され、8 時間続きます。
今回は、直ぐに検証したかったので、「バックアップウィンドウの開始時間」と「数時間以内にバックアップを開始」は指定しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/4790a20b-9ec1-cebe-beee-ebc9042ba7f8.png)

「タグ」もしくは「リソースID」で割り当てることができます。今回は「リソースID」で特定のEBSのみにしておきました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/7c6d828d-9810-dc49-b2e3-c2d87eab3a4d.png)

デフォルトでは、「AWSBackupDefaultServiceRole」というロールが作成できる。

```json:AWSBackupServiceRolePolicyForBackup
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "dynamodb:DescribeTable",
                "dynamodb:CreateBackup"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "dynamodb:DescribeBackup",
                "dynamodb:DeleteBackup"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/*/backup/*",
            "Effect": "Allow"
        },
        {
            "Effect": "Allow",
            "Action": [
                "rds:AddTagsToResource",
                "rds:ListTagsForResource",
                "rds:DescribeDBSnapshots",
                "rds:CreateDBSnapshot",
                "rds:CopyDBSnapshot",
                "rds:DescribeDBInstances"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "rds:DeleteDBSnapshot"
            ],
            "Resource": [
                "arn:aws:rds:*:*:snapshot:awsbackup:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "storagegateway:CreateSnapshot",
                "storagegateway:ListTagsForResource"
            ],
            "Resource": "arn:aws:storagegateway:*:*:gateway/*/volume/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags",
                "ec2:DeleteSnapshot"
            ],
            "Resource": "arn:aws:ec2:*::snapshot/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeSnapshots",
                "ec2:DescribeTags"
            ],
            "Resource": "*"
        },
        {
            "Action": [
                "elasticfilesystem:Backup",
                "elasticfilesystem:DescribeTags"
            ],
            "Resource": "arn:aws:elasticfilesystem:*:*:file-system/*",
            "Effect": "Allow"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateSnapshot",
                "ec2:DeleteSnapshot",
                "ec2:DescribeVolumes",
                "ec2:DescribeSnapshots"
            ],
            "Resource": [
                "arn:aws:ec2:*::snapshot/*",
                "arn:aws:ec2:*:*:volume/*"
            ]
        },
        {
            "Action": "kms:DescribeKey",
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": "kms:CreateGrant",
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": "true"
                }
            }
        },
        {
            "Action": [
                "tag:GetResources"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

```json:AWSBackupServiceRolePolicyForRestores
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "dynamodb:Scan",
                "dynamodb:Query",
                "dynamodb:UpdateItem",
                "dynamodb:PutItem",
                "dynamodb:GetItem",
                "dynamodb:DeleteItem",
                "dynamodb:BatchWriteItem",
                "dynamodb:DescribeTable"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "dynamodb:RestoreTableFromBackup"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/*/backup/*",
            "Effect": "Allow"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateVolume",
                "ec2:DeleteVolume"
            ],
            "Resource": [
                "arn:aws:ec2:*::snapshot/*",
                "arn:aws:ec2:*:*:volume/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeSnapshots",
                "ec2:DescribeVolumes"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "storagegateway:DeleteVolume",
                "storagegateway:DescribeCachediSCSIVolumes",
                "storagegateway:DescribeStorediSCSIVolumes"
            ],
            "Resource": "arn:aws:storagegateway:*:*:gateway/*/volume/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "storagegateway:DescribeGatewayInformation",
                "storagegateway:CreateStorediSCSIVolume",
                "storagegateway:CreateCachediSCSIVolume"
            ],
            "Resource": "arn:aws:storagegateway:*:*:gateway/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "storagegateway:ListVolumes"
            ],
            "Resource": "arn:aws:storagegateway:*:*:*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "rds:DescribeDBInstances",
                "rds:DescribeDBSnapshots",
                "rds:ListTagsForResource",
                "rds:RestoreDBInstanceFromDBSnapshot",
                "rds:DeleteDBInstance",
                "rds:AddTagsToResource"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "elasticfilesystem:Restore",
                "elasticfilesystem:CreateFilesystem",
                "elasticfilesystem:DescribeFilesystems",
                "elasticfilesystem:DeleteFilesystem"
            ],
            "Resource": "arn:aws:elasticfilesystem:*:*:file-system/*"
        },
        {
            "Action": "kms:DescribeKey",
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": "kms:CreateGrant",
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": "true"
                }
            }
        }
    ]
}
```

後は待つ。無事作成されたことが確認できた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/019e96e2-f3df-e7e2-ccab-708fc00bfdad.png)

スナップショット側でも作成されたことが確認できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/cff31caa-bf39-337c-b3ef-7d3fd20f3310.png)

なお、AWS Backup側で管理されているため、スナップショット側から削除することはできない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/cdfb0782-1cc2-e314-f84f-9db7faa18fbb.png)

#RDS#

https://www.publickey1.jp/blog/21/aws_backupamazon_rdspoint-in-time.html

[2021年3月12日]今まで「スナップショットバックアップ」には対応していたが、
「継続的バックアップ」と「Point-in-timeリカバリ」にも対応したらしいです。