Como crear un Plan AWS Backup con AWS CLI

Os voy a explicar como crear un plan AWS Backup con AWS CLI de una manera sencilla.

¿Qué es un plan AWS Backup?

Un Plan de AWS Backup es un plan de respaldo donde podemos especificar los servicios de queremos hacer copia, de momento solo hay 8 servicios de AWS disponibles en AWS Backup (Amazon Aurora, Amazon FS, Amazon EFS, Amazon Storage Gateway, Amazon EC2, Amazon EBS, Amazon RDS, Amazon DynamoDB ) con las retenciones que queramos*


 

 

 

 

 

 

(*) Las retenciones cambian dependiendo del servicio de AWS, os recomiendo mirar muy bien en la pagina oficial de AWS.

Para crear un plan lo primero que debemos hacer es crear un Vault (Almacen) para asociar el plan que vamos  a crear:

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

Creamos otro Vault para una segunda zona en la región de destino que queramos:

aws backup create-backup-vault --backup-vault-name Vault2 --region eu-west-3

Ahora debemos crear nuestro propio JSON para crear nuestro plan a medida:

{
"BackupPlanName": "PLAN 1",
"Rules": [{
"RuleName": "REGLA 1",
"TargetBackupVaultName": "primary",
"ScheduleExpression": "cron(0 5/12 ? * * *)",
"StartWindowMinutes": 480,
"CompletionWindowMinutes": 10080,
"Lifecycle": {
"DeleteAfterDays": 30
},
"CopyActions": [{
"DestinationBackupVaultArn": "arn:aws:backup:eu-west-3:999999:backup-vault:vault2",
"Lifecycle": {
"DeleteAfterDays": 30
}
}]
}]
}

Ejecutamos el comando de «create-backup-plan» con el archivo JSON como parámetro de entrada y debemos apuntar el valor que nos devuelve «BackupPlanId» en la salida del comando:

aws backup create-backup-plan --backup-plan file:/PLAN.json

 

Necesitaremos otro archivo JSON para establecer los parámetros para asignar los recursos (Volúmenes, instancias) al plan de respaldo, para ello podemos utilizar ARN, etiquetas o ambos:

{
"SelectionName": "Disco duro C",
"IamRoleArn": "arn:aws:iam::999999:role/service-role/AWSBackupDefaultServiceRole",
"Resources": ["arn:aws:ec2:eu-west-1:999999:volume/vol-000000000"],
"ListOfTags": [{
"ConditionType": "STRINGEQUALS",
"ConditionKey": "backup",
"ConditionValue": "yes"
}]

Ejecutamos el comando «create-backup-selection» le añadimos los recursos en un archivo JSON como parámetro de entrada (Debemos ingresar el valor que nos dio el anterior comando «BackupPlanId»):

aws backup create-backup-selection --backup-plan-id BackupPlanIdXXX --backup-selection file://RECURSOS.json

Con estos pasos sencillos has creado un plan de backup en AWS Backup totalmente funcional respaldando un volumen.