Come posso gestire le impostazioni di AWS Backup con i modelli di CloudFormation?

4 minuti di lettura
0

Voglio usare AWS Backup per eseguire il backup dei miei dati da altre risorse AWS. Inoltre, voglio utilizzare un modello di AWS CloudFormation per gestire le mie configurazioni di AWS Backup.

Risoluzione

Per creare modelli di CloudFormation utilizza i tipi di risorse AWS Backup supportati. Ad esempio, puoi utilizzare un modello di CloudFormation per creare un piano di backup e assegnare una risorsa al piano di backup. Puoi anche utilizzare un modello per creare un piano di backup, creare un vault di backup e assegnare una risorsa al piano di backup.

Importante: Il piano di backup deve specificare il tag che assegna le risorse al piano di backup. Prima di impostare il piano di backup, scegli il tag. Quindi, verifica che il tag sia assegnato alle risorse corrette e che sia scritto correttamente nel piano di backup.

Modello per creare un piano di backup e assegnare una risorsa al piano di backup

Il seguente esempio di modello di CloudFormation in YAML esegue queste attività:

  • Crea un piano di backup chiamato BackupPlanWithThinBackups.
  • Imposta i backup da archiviare nel vault denominato Default.
  • Crea una regola di backup denominata RuleForDailyBackups che prevede l'esecuzione di un backup giornaliero alle 11:25.
  • Attiva Windows VSS.
  • Imposta il ciclo di vita per eliminare i backup sette giorni dopo la creazione.
  • Imposta CopyAction per copiare i backup nella regione AWS us-west-2 per il disaster recovery.
  • Utilizza il ruolo AWS Identity and Access Management (IAM) denominato AWSBackupDefaultServiceRole per eseguire il lavoro di backup.
  • Assegna il piano di backup a tutte le risorse contrassegnate con la chiavebackupplan e il valoredsi-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

Modello per creare un piano di backup, creare un archivio di backup e assegnare una risorsa al piano di backup

Il seguente esempio di modello di CloudFormation in YAML esegue queste attività:

  • Crea un archivio di backup denominato Default.
  • Crea un piano di backup chiamato BackupPlanWithThinBackups.
  • Imposta i backup da archiviare nel vault denominato BackupVaultWithThinBackups.
  • Crea una regola di backup denominata RuleForDailyBackups che è pianificata per eseguire un backup giornaliero. Questi backup sono impostati per essere eliminati sette giorni dopo la loro creazione.
  • Attiva Windows VSS.
  • Imposta CopyAction per copiare i backup nella regione AWS us-west-2 per il disaster recovery. Questi backup vengono eliminati 14 giorni dopo la loro creazione.
  • Crea una regola di backup denominata RuleForWeeklyBackups che prevede l'esecuzione di un backup settimanale ogni lunedì alle 11:00. Questi backup vengono eliminati 28 giorni dopo la loro creazione.
  • Crea una regola di backup denominata RuleForMonthlyBackups che è pianificata per eseguire un backup il primo giorno di ogni mese alle 11:00. Questi backup sono impostati per essere eliminati 90 giorni dopo la loro creazione.
  • Utilizza il ruolo IAM denominato AWSBackupDefaultServiceRole per eseguire il processo di backup.
  • Assegna il piano di backup a tutte le risorse contrassegnate con la chiave backup e il valore 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

Informazioni correlate

Troubleshooting AWS Backup

AWS UFFICIALE
AWS UFFICIALEAggiornata 9 mesi fa