CloudFormation テンプレートを使用して AWS Backup 設定を管理する方法を教えてください。

所要時間2分
0

AWS Backup を使用して、他の AWS リソースからデータをバックアップしたいと考えています。また、AWS CloudFormation テンプレートを使用して AWS Backup 設定を管理したいと思っています。

解決策

CloudFormation テンプレートを作成するには、サポートされている AWS Backup リソースタイプを使用します。たとえば、CloudFormation テンプレートを使用してバックアッププランを作成し、そのバックアッププランにリソースを割り当てることができます。テンプレートを使用してバックアッププランを作成し、バックアップボールトを作成し、バックアッププランにリソースを割り当てることもできます。

重要: バックアッププランでは、バックアッププランにリソースを割り当てるタグを指定する必要があります。バックアッププランを設定する前に、タグを決定してください。次に、タグが正しいリソースに割り当てられていることと、バックアッププランに正しく記述されていることを確認します。

バックアッププランを作成し、バックアッププランにリソースを割り当てるためのテンプレート

以下の YAML の CloudFormation テンプレートの例で、これらのタスクを実行します。

  • BackupPlanWithThinBackups という名前のバックアッププランを作成します。
  • Default という名前のボールトに保存するようにバックアップを設定します。
  • 毎日午前 11 時 25 分にバックアップを実行するようにスケジュールされた RuleForDailyBackups という名前のバックアップルールを作成します。
  • Windows VSS を有効にします。
  • バックアップが作成されてから 7 日後に削除するようにライフサイクルを設定します。
  • ディザスタリカバリのために us-west-2 AWS リージョンにバックアップをコピーするように CopyAction を設定します。
  • AWSBackupDefaultServiceRole という名前の AWS Identity and Access Management (IAM) ロールを使用してバックアップジョブを実行します。
  • backupplan キーと dsi-sandbox-daily の値でタグ付けされたすべてのリソースにバックアッププランを割り当てます。
AWSTemplateFormatVersion: 2010-09-09
Description: >-
  Backup Plan template to back up all resources tagged with backupplan=dsi-sandbox-daily at 11:25am
  UTC.
Resources:
  BackupPlanWithThinBackups:
    Type: "AWS::Backup::BackupPlan"
    Properties:
      BackupPlan:
        BackupPlanName: "BackupPlanWithThinBackups"
        AdvancedBackupSettings:
          -
            ResourceType: EC2
            BackupOptions:
              WindowsVSS: enabled
        BackupPlanRule:
          -
            RuleName: "RuleForDailyBackups"
            TargetBackupVault: Default
            ScheduleExpression: "cron(25 11 ? * * *)"
            Lifecycle:
              DeleteAfterDays: 7
            CopyActions:
              -
                  DestinationBackupVaultArn: arn:aws:backup:us-west-2:111222333444:backup-vault:Default
                  Lifecycle:
                   DeleteAfterDays: 14
  TagBasedBackupSelection:
    Type: "AWS::Backup::BackupSelection"
    Properties:
      BackupSelection:
        SelectionName: "TagBasedBackupSelection"
        IamRoleArn: !Sub "arn:aws:iam::111222333444:role/service-role/AWSBackupDefaultServiceRole"
        ListOfTags:
         -
           ConditionType: "STRINGEQUALS"
           ConditionKey: "backupplan"
           ConditionValue: "dsi-sandbox-daily"
      BackupPlanId: !Ref BackupPlanWithThinBackups
    DependsOn: BackupPlanWithThinBackups

バックアッププランの作成、バックアップボールトの作成、バックアッププランへのリソースの割り当てを行うためのテンプレート

以下の YAML の CloudFormation テンプレートの例で、これらのタスクを実行します。

  • Default という名前のバックアップボールトを作成します。
  • BackupPlanWithThinBackups という名前のバックアッププランを作成します。
  • BackupVaultWithThinBackups という名前のボールトに保存するようにバックアップを設定します。
  • 毎日バックアップを実行するようにスケジュールされた RuleForDailyBackups という名前のバックアップルールを作成します。これらのバックアップは、作成されてから 7 日後に削除されます。
  • Windows VSS を有効にします。
  • ディザスタリカバリのために us-west-2 AWS リージョンにバックアップをコピーするように CopyAction を設定します。これらのバックアップは、作成されてから 14 日後に削除されます。
  • 毎週月曜日の午前 11 時に毎週バックアップを実行するようにスケジュールされた RuleForWeeklyBackups という名前のバックアップルールを作成します。これらのバックアップは、作成されてから 28 日後に削除されます。
  • RuleForMonthlyBackups という名前のバックアップルールを作成します。このルールは、毎月 1 日の午前 11 時にバックアップを実行するようにスケジュールされています。これらのバックアップは、作成されてから 90 日後に削除されます。
  • AWSBackupDefaultServiceRole という名前の IAM ロールを使用してバックアップジョブを実行します。
  • backup キーと thinbackup の値でタグ付けされたすべてのリソースにバックアッププランを割り当てます。
AWSTemplateFormatVersion: "2010-09-09"
Description: "Backup Plan template for thin backups"
Resources:
  BackupVaultWithThinBackups:
    Type: "AWS::Backup::BackupVault"
    Properties:
      BackupVaultName: "BackupVaultWithThinBackups"

  BackupPlanWithThinBackups:
    Type: "AWS::Backup::BackupPlan"
    Properties:
      BackupPlan:
        BackupPlanName: "BackupPlanWithThinBackups"
        AdvancedBackupSettings:
          -
            ResourceType: EC2
            BackupOptions:
              WindowsVSS: enabled
        BackupPlanRule:
          -
            RuleName: "RuleForDailyBackups"
            TargetBackupVault: !Ref BackupVaultWithThinBackups
            ScheduleExpression: "cron(25 11 ? * * *)"
            Lifecycle:
              DeleteAfterDays: 7
            CopyActions:
              -
                  DestinationBackupVaultArn: arn:aws:backup:us-west-2:111222333444:backup-vault:Default
                  Lifecycle:
                   DeleteAfterDays: 14
          -
            RuleName: "RuleForWeeklyBackups"
            TargetBackupVault: !Ref BackupVaultWithThinBackups
            ScheduleExpression: "cron(0 11 ? * 2 *)"
            Lifecycle:
              DeleteAfterDays: 28
            CopyActions:
              -
                  DestinationBackupVaultArn: arn:aws:backup:us-west-2:111222333444:backup-vault:Default
                  Lifecycle:
                   DeleteAfterDays: 14
          -
            RuleName: "RuleForMonthlyBackups"
            TargetBackupVault: !Ref BackupVaultWithThinBackups
            ScheduleExpression: "cron(0 11 1 * ? *)"
            Lifecycle:
              DeleteAfterDays: 90
            CopyActions:
              -
                  DestinationBackupVaultArn: arn:aws:backup:us-west-2:111222333444:backup-vault:Default
                  Lifecycle:
                   DeleteAfterDays: 14
    DependsOn: BackupVaultWithThinBackups

  TagBasedBackupSelection:
    Type: "AWS::Backup::BackupSelection"
    Properties:
      BackupSelection:
        SelectionName: "TagBasedBackupSelection"
        IamRoleArn: !Sub "arn:aws:iam::${AWS::AccountId}:role/service-role/AWSBackupDefaultServiceRole"
        ListOfTags:
         -
           ConditionType: "STRINGEQUALS"
           ConditionKey: "backup"
           ConditionValue: "thinbackup"
      BackupPlanId: !Ref BackupPlanWithThinBackups
    DependsOn: BackupPlanWithThinBackups

関連情報

AWS Backup のトラブルシューティング

AWS公式
AWS公式更新しました 9ヶ月前
コメントはありません

関連するコンテンツ