Quero excluir uma imagem de máquina da Amazon (AMI) criada pelo AWS Backup, mas recebo uma mensagem de erro.
Breve descrição
Ao cancelar o registro de uma AMI criada pelo AWS Backup diretamente do console do Amazon Elastic Compute Cloud (Amazon EC2), você recebe um erro semelhante à seguinte mensagem:
“Falha ao cancelar o registro da AMI ami-01234sample. Erro da API: “Essa imagem é gerenciada pelo AWS Backup e não pode ser excluída por meio de APIs do EC2. Para excluir essa imagem, use as APIs, a CLI ou o console do AWS Backup.”
As AMIs criadas pelo AWS Backup têm a chave de tag aws:backup:source-resource. Você pode ver essa tag na AMI usando o console do Amazon EC2. Qualquer AMI com a chave de tag aws:backup:source-resource não pode ser excluída usando o console do Amazon EC2 ou as APIs do Amazon EC2. Você deve excluir as AMIs criadas pelo AWS Backup usando o console do AWS Backup ou as APIs do AWS Backup.
Resolução
Para excluir uma AMI criada pelo AWS Backup, você deve excluir o ponto de recuperação no cofre.
Você pode excluir o ponto de recuperação usando o console do AWS Backup ou a AWS Command Line Interface (AWS CLI). A exclusão do ponto de recuperação cancela o registro da AMI e exclui automaticamente os snapshots do Amazon Elastic Block Store (Amazon EBS) associados à AMI.
Excluindo um ponto de recuperação do Amazon EC2 usando o console do AWS Backup
Para excluir os pontos de recuperação expirados manualmente usando o console, conclua as seguintes etapas:
- Abra o console do AWS Backup.
- No painel de navegação, selecione Cofres de backup.
- Selecione o cofre de backup que contém os backups do Amazon EC2. Em seguida, escolha a AMI que você deseja excluir.
- Selecione Ações e, em seguida, selecione Excluir.
Exclua pontos de recuperação expirados usando a AWS CLI
Observação: ao executar comandos da AWS Command Line Interface (AWS CLI), certifique-se de estar usando a versão mais recente da AWS CLI.
Execute o seguinte exemplo de comando para excluir um único ponto de recuperação manualmente em seu cofre usando a AWS CLI:
aws backup delete-recovery-point --backup-vault-name <value> --recovery-point-arn <value>
Para excluir vários pontos de recuperação manualmente em seu cofre usando a AWS CLI, primeiro execute o comando list-recovery-points-by-backup-vault para listar os pontos de recuperação:
$ aws backup list-recovery-points-by-backup-vault --backup-vault-name VAULT_NAME --region REGION_ID --output json --query 'RecoveryPoints[?Status == `EXPIRED`].[RecoveryPointArn]' | jq -r '.[] | "--recovery-point-arn '\\\"'" + .[0] + "'\\\"'" + .[1]'
Em seguida, execute o seguinte comando concatenado (que inclui delete-recovery-point) para excluir os pontos de recuperação:
$ aws backup list-recovery-points-by-backup-vault --backup-vault-name VAULT_NAME --region REGION_ID --output json --query 'RecoveryPoints[?Status == `EXPIRED`].[RecoveryPointArn]' | jq -r '.[] | "--recovery-point-arn '\\\"'" + .[0] + "'\\\"'" + .[1]' | xargs --verbose -L1 aws backup delete-recovery-point --backup-vault-name VAULT_NAME --region REGION_ID