AWS CLI を使用して AWS Backup プランを作成、またはオンデマンドジョブを実行する方法を教えてください。

最終更新日: 2020 年 5 月 19 日

AWS Command Line Interface (AWS CLI) を使って AWS Backup プランを作成したいと考えています。または、AWS CLI を使って AWS Backup でオンデマンドジョブを実行したいと思います。これはどのように実行できますか?

解決方法

AWS Backup プランを作成する

注意: 以下の AWS Backup プラン例は、バックアップルールのコピージョブ設定でセットアップされています。この設定では、ソース AWS リージョンにプライマリバックアップボールトが作成されます。プライマリボールトでは、ソース復旧ポイントがホストされます。次に、コピー先のリージョンにセカンダリボールトを作成します。セカンダリボールトには、AWS Backup がバックアッププランのコピー設定の一部として作成する復旧ポイントが保存されます。

1.    create-backup-vault コマンドを実行して、ソースリージョンにプライマリボールトを作成します。次に、コマンドを再度実行して、コピー先リージョンにセカンダリボールトを作成します。

注意: eu-west-1 はお使いのソースリージョンに置き換えてください。次に、eu-west-2 をコピー先リージョンに置き換えます。

aws backup create-backup-vault --backup-vault-name primary --region eu-west-1

aws backup create-backup-vault --backup-vault-name secondary --region eu-west-2

2.    バックアッププランのオプションとパラメータを使用して、以下のような JSON ファイルを作成します。

{
    "BackupPlanName": "testplan",
    "Rules": [{
        "RuleName": "HalfDayBackups",
        "TargetBackupVaultName": "primary",
        "ScheduleExpression": "cron(0 5/12 ? * * *)",
        "StartWindowMinutes": 480,
        "CompletionWindowMinutes": 10080,
        "Lifecycle": {
            "DeleteAfterDays": 30
        },
        "CopyActions": [{
            "DestinationBackupVaultArn": "arn:aws:backup:eu-west-2:123456789:backup-vault:secondary",
            "Lifecycle": {
                "DeleteAfterDays": 30
            }
        }]
    }]
}

注意: ScheduleExpression フィールドには、組織の目標復旧時点に基づいた値を設定します。オプションの Lifecycle フィールドには、バックアップ戦略の保持ポリシーに基づいた値を入力できます。

3.    JSON ファイルを作成したら、create-backup-plan コマンドを実行します。次に、入力パラメータとして JSON ファイルを渡します。

aws backup create-backup-plan --backup-plan file://

4.    コマンドの出力から、BackupPlanId の値をメモします。

5.    バックアッププランにリソースを割り当てるためのパラメータを設定する、以下のような JSON ファイルを作成します。

注意: バックアッププランのリソースを指定するには、Amazon リソースネーム (ARN)、タグ、またはそれら両方を使用できます。以下の例では、ARN とタグの両方が使用されています。

{
    "SelectionName": "Myselection",
    "IamRoleArn": "arn:aws:iam::123456789:role/service-role/AWSBackupDefaultServiceRole",
    "Resources": ["arn:aws:ec2:eu-west-1:123456789:volume/vol-0abcdef1234"],
    "ListOfTags": [{
        "ConditionType": "STRINGEQUALS",
        "ConditionKey": "backup",
        "ConditionValue": "yes"
    }]
}

6.    JSON ファイルを作成したら、create-backup-selection コマンドを実行します。次に、入力パラメータとして JSON ファイルを渡します。

注意: --backup-plan-id の値には、ステップ 4 でメモした BackupPlanId を入力します。

aws backup create-backup-selection --backup-plan-id abcd-efgh-ijkl-mnop --backup-selection file://

AWS Backup でオンデマンドジョブを実行する

オンデマンドバックアップジョブを実行するには、start-backup-job コマンドを実行します。次のコマンド例は、リソース vol-0abcdef1234 のバックアップジョブを実行します。

aws backup start-backup-job --backup-vault-name primary --resource-arn arn:aws:ec2:eu-west-1:123456789:volume/vol-0abcdef1234 --iam-role-arn arn:aws:iam::123456789:role/service-role/AWSBackupDefaultServiceRole --idempotency-token 623f13d2-78d2-11ea-bc55-0242ac130003 --start-window-minutes 60 --complete-window-minutes 10080 --lifecycle DeleteAfterDays=30 --region eu-west-1

注意: 上記のコマンドには、--idempotency-token の値が含まれています。この値は、StartBackupJob コールを区別するために提供する一意の文字列です。Linux オペレーティングシステムでは、uuid コマンドを実行して一意の識別子を生成できます。

uuid -r

オンデマンドのコピージョブを実行するには、start-copy-job コマンドを実行します。以下のコマンド例は、snap-0abcdaf2247b33dbc の復旧ポイントを primary という名前のソースボールトから secondary と呼ばれるコピー先ボールトにコピーするジョブを実行します。

aws backup start-copy-job --recovery-point-arn arn:aws:ec2:eu-west-1::snapshot/snap-0abcdaf2247b33dbc --source-backup-vault-name primary --destination-backup-vault-arn arn:aws:backup:eu-west-2:123456789:backup-vault:secondary --iam-role-arn arn:aws:iam::123456789:role/service-role/AWSBackupDefaultServiceRole --idempotency-token 5aac8974-78d2-11ea-bc55-0242ac130003 --lifecycle DeleteAfterDays=30 --region eu-west-1

復元ジョブを開始するには、start-restore-job コマンドを実行します。Amazon Elastic Block Store (Amazon EBS) ボリュームの復元ジョブを開始するには、以下の手順に従ってください。

1.    復元したい復旧ポイントに get-recovery-point-restore-metadata コマンドを実行します。

aws backup get-recovery-point-restore-metadata --backup-vault-name primary --recovery-point-arn arn:aws:ec2:eu-west-1::snapshot/snap-0abcdaf2247b33dbc 

2.    コマンドの出力から、volume IDencryption の値をメモします。

3.    必須の --metadata option of the start-restore-job コマンドのパラメータを設定する JSON ファイルを作成します。encryptedvolumeId には、ステップ 2 でメモした値を入力します。

{
   "availabilityZone":"eu-west-1a",
   "encrypted":"false",
   "volumeId":"vol-0ck270d4c0b2e44c9",
   "volumeSize":"100",
   "volumeType":"gp2"
}

4.    JSON ファイルを作成したら、start-restore-job コマンドを実行します。次に、入力パラメータとして JSON ファイルを渡します。

aws backup start-restore-job --recovery-point-arn arn:aws:ec2:eu-west-1::snapshot/snap-0abcdaf2247b33dbc  --metadata file:// --iam-role-arn arn:aws:iam::123456789:role/service-role/AWSBackupDefaultServiceRole --idempotency-token 52e602ce-78d2-11ea-bc55-0242ac130003 --resource-type EBS --region eu-west-1

Amazon Elastic File System (Amazon EFS) の復元を開始するには、AWS CLI を使用して、AWS Backup 復旧ポイントから Amazon EFS ファイルシステムを復元する方法を教えてくださいを参照してください。


この記事はお役に立ちましたか?

改善できることはありますか?


さらにサポートが必要な場合