CloudFormation 템플릿으로 AWS Backup 설정을 관리하려면 어떻게 해야 하나요?

3분 분량
0

AWS Backup을 사용하여 다른 AWS 리소스의 데이터를 백업하고 싶습니다. 또한 AWS CloudFormation 템플릿을 사용하여 AWS Backup 구성을 관리하고 싶습니다.

해결 방법

CloudFormation 템플릿을 생성하려면 지원되는 AWS Backup 리소스 유형을 사용하세요. 예를 들어 CloudFormation 템플릿을 사용하여 백업 계획을 생성하고 백업 계획에 리소스를 할당할 수 있습니다. 또한 템플릿을 사용하여 백업 계획을 작성하고, 백업 볼트를 생성하고, 백업 계획에 리소스를 할당할 수도 있습니다.

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

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

YAML의 다음 CloudFormation 템플릿 예제는 다음과 같은 작업을 수행합니다.

  • BackupPlanWithThinBackups이라는 이름의 백업 계획을 생성합니다.
  • 기본값이라는 이름의 저장소에 저장할 백업을 설정합니다.
  • 매일 오전 11시 25분에 백업을 실행하도록 예약된 RuleForDailyBackups이라는 이름의 백업 규칙을 생성합니다.
  • 윈도우 VSS를 켭니다.
  • 생성 7일 경과 후 백업의 삭제 주기를 설정합니다.
  • CopyAction을 설정하여 재해 복구용 백업을 us-west-2 AWS 리전에 복제합니다.
  • 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 템플릿 예제는 다음과 같은 작업을 수행합니다.

  • 이름이 기본인 백업 볼트를 생성합니다.
  • BackupPlanWithThinBackups이라는 이름의 백업 계획을 생성합니다.
  • BackupVaultWithThinBackups라는 이름의 저장소에 저장할 백업을 설정합니다.
  • 매일 백업을 실행하도록 예약된 RuleForDailyBackups이라는 이름의 백업 규칙을 생성합니다. 생성 후 7일이 경과하면 해당 백업이 삭제됩니다.
  • 윈도우 VSS를 켭니다.
  • CopyAction을 설정하여 재해 복구용 백업을 us-west-2 AWS 리전에 복제합니다. 생성 후 14일이 경과하면 해당 백업이 삭제됩니다.
  • 매주 월요일 오전 11시 00분에 백업을 실행하도록 예약된 RuleForWeeklyBackups이라는 이름의 백업 규칙을 생성합니다. 이러한 백업은 생성된 후 28일이 지나면 삭제됩니다.
  • 매월 1일 오전 11시 00분에 백업을 실행하도록 예약된 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"
        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 공식업데이트됨 8달 전