AWS CloudFormation 템플릿을 사용하여 AWS Backup 설정을 관리하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2019년 10월 28일

AWS Backup을 사용하여 다른 AWS 리소스의 내 데이터를 백업하고 싶습니다. 또한 AWS CloudFormation 템플릿을 사용하여 AWS Backup 구성을 관리하려고 합니다. 어떻게 해야 합니까?

간략한 설명

지원되는 AWS Backup 리소스 유형을 사용하여 CloudFormation 템플릿을 생성할 수 있습니다. AWS Backup용으로 생성할 수 있는 CloudFormation 템플릿의 예는 다음과 같습니다.

  • 백업 계획을 생성하고 백업 계획에 리소스를 할당하기 위한 템플릿입니다.
  • 백업 계획을 생성하고, 백업 볼트를 생성하고, 백업 계획에 리소스를 할당하기 위한 템플릿입니다.

해결 방법

중요: 백업 계획은 백업 계획에 리소스를 할당하는 태그를 지정해야 합니다. 백업 계획을 설정하기 전에 태그를 결정합니다. 그런 다음 태그가 올바른 리소스에 할당되고 백업 계획에 올바르게 작성되었는지 확인합니다.

백업 계획을 생성하고 백업 계획에 리소스를 할당하기 위한 템플릿

YAML의 다음 예제 CloudFormation 템플릿은 다음을 수행합니다.

  • BackupPlanWithThinBackups라는 백업 계획을 생성합니다.
  • Default라는 이름의 볼트에 저장되도록 백업을 설정합니다.
  • 매일 오전 11시 25분 (cron(25 11 ?***))에 백업을 실행하도록 예약된 RuleForDailyBackups라는 백업 규칙을 생성합니다.
  • 백업의 수명 주기를 생성한 후 7일이 지나면 삭제되도록 설정됩니다.
  • 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"
        BackupPlanRule:
          -
            RuleName: "RuleForDailyBackups"
            TargetBackupVault: Default
            ScheduleExpression: "cron(25 11 ? * * *)"
            Lifecycle:
              DeleteAfterDays: 7
  TagBasedBackupSelection:
    Type: "AWS::Backup::BackupSelection"
    Properties:
      BackupSelection:
        SelectionName: "TagBasedBackupSelection"
        IamRoleArn: !Sub "arn:aws:iam::111122223333:role/service-role/AWSBackupDefaultServiceRole"
        ListOfTags:
         -
           ConditionType: "STRINGEQUALS"
           ConditionKey: "backupplan"
           ConditionValue: "dsi-sandbox-daily"
      BackupPlanId: !Ref BackupPlanWithThinBackups
    DependsOn: BackupPlanWithThinBackups

백업 계획을 생성하고, 백업 볼트를 생성하고, 백업 계획에 리소스를 할당하기 위한 템플릿

YAML의 다음 예제 CloudFormation 템플릿은 다음을 수행합니다.

  • BackupVaultWithThinBackups라는 이름의 백업 볼트를 생성합니다.
  • BackupPlanWithThinBackups라는 백업 계획을 생성합니다.
  • 백업이 볼트 BackupVaultWithThinBackup에 저장되도록 설정합니다.
  • 매일 오전 11시 25분 (cron(25 11 ?***))에 백업을 실행하도록 예약된 RuleForDailyBackups라는 백업 규칙을 생성합니다. 이러한 백업은 생성한 후 7일이 지나면 삭제되도록 설정됩니다.
  • 매주 월요일 오전 11시 (cron(0 11 ? * 2 *))에 매주 백업을 실행하도록 예약된 RuleForWeeklyBackups라는 백업 규칙을 생성합니다. 이러한 백업은 생성한 후 28일이 지나면 삭제되도록 설정됩니다.
  • 매월 첫째 날 오전 11시 (cron(0 11 1 * ? *))에 백업을 실행하도록 예약된 RuleForMonthlyBackups라는 백업 규칙을 생성합니다. 이러한 백업은 생성한 후 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"
        BackupPlanRule:
          -
            RuleName: "RuleForDailyBackups"
            TargetBackupVault: !Ref BackupVaultWithThinBackups
            ScheduleExpression: "cron(25 11 ? * * *)"
            Lifecycle:
              DeleteAfterDays: 7
          -
            RuleName: "RuleForWeeklyBackups"
            TargetBackupVault: !Ref BackupVaultWithThinBackups
            ScheduleExpression: "cron(0 11 ? * 2 *)"
            Lifecycle:
              DeleteAfterDays: 28
          -
            RuleName: "RuleForMonthlyBackups"
            TargetBackupVault: !Ref BackupVaultWithThinBackups
            ScheduleExpression: "cron(0 11 1 * ? *)"
            Lifecycle:
              DeleteAfterDays: 90
    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에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?