Veeam Backup for AWS – Restaurando arquivos para o local de origem

 

Olá, pessoal!

No Veeam Backup for AWS, para fazer o restore de arquivos ou pastas para o local de origem de uma instância EC2 é necessário executar alguns passos adicionais. Isso é necessário porque durante o restore o Veeam Backup for AWS utiliza o System Manager e o Kinesis da AWS para enviar os arquivos para a instância original. Nesse artigo irei demonstrar como configurar e executar esse tipo de restore.

 

Pré-Requisitos

 

Vamos começar com alguns pré-requisitos necessários para o processo.

  • A porta 443 precisa estar aberta no Security Group do Worker para que seja possível acessar a página para procurar os arquivos/pastas que serão restauradas;
  • [Para instâncias EC2 baseadas em Linux] O Python v2 ou v3 com o módulo 6 deve estar instalado na instância de origem;
  • Se a instância EC2 de origem operar em uma rede privada, você deve criar os seguintes endpoints VPC para a subnet à qual a instância está conectada:

    • com.amazonaws.<region>.ec2messages
    • com.amazonaws.<region>.ssm
    • com.amazonaws.<region>.sqs
    • com.amazonaws.<region>.kinesis-streams
    • com.amazonaws.<region>.sts

     

  • Para instâncias EC2 que executam o sistema operacional Linux, a restauração de arquivos e pastas para a localização original é suportada apenas para distribuições baseadas em systemd;
  • Para instâncias EC2 que executam o sistema operacional Windows, a restauração de arquivos e pastas para a localização original é suportada apenas se o Windows Management Framework (WMF) versão 5.1 estiver instalado nas instâncias processadas.

 

Criando a IAM Policy

 

Primeiro vamos criar uma IAM Policy com as permissões necessárias para o processo:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Action": [
                "sqs:ListQueues",
                "sqs:GetQueueUrl",
                "kinesis:List*",
                "kinesis:Describe*",
                "kinesis:Get*",
                "sqs:GetQueueAttributes",
                "sqs:ListDeadLetterSourceQueues"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

Criando a IAM Role

 

Agora vamos criar a IAM Role com a policy que criamos anteriormente.
Escolha o tipo “AWS service” e “EC2”.

 

Além dessa policy, vamos também adicionar a policy padrão da AWS “AmazonSSMManagedInstanceCore“. Essa política é necessária para registrar a instância no AWS System Manager caso ela já não esteja.
O resultado será como o exemplo abaixo:

 

O “Trusted relationships” da role deve ser como o exemplo abaixo:

 

Adicionando a IAM Role a instância

 

Agora que temos a role criada precisamos adicioná-la a instância que desejamos restaurar arquivos.
Vá até a opção “Secuirty” e “Modify IAM role”:

 

Escolha a IAM Role que foi criada.

 

Aguarde alguns minutos e verifique se a instância já está sendo exibida no Inventory do AWS System Manager.

 

Executando o restore de arquivos

 

Agora já podemos iniciar o restore de arquivos para a instância no Veeam Backup for AWS.
Vamos até “Protect Data”, “Restore”, selecione a instância e escolha a opção “File-level Recovery”.

 

Escolha um restore point.

 

Para restaurar os arquivos para o local de origem é necessário habilitar a opção “Additional restore mode”.
Quando habilitamos essa opção o Veeam Backup for AWS tentará contatar a instância via SSM, se tudo ocorrer conforme esperando a opção será habilitada.
Caso receba qualquer erro nesse passo, verifique se a instância está registrada no AWS System Manager.

 

Como dito anteriormente, o Veeam Backup for AWS usa o Kinesis Data Stream para restaurar os arquivos. O Kinesis é cobrando por shard utilizado durante o processo. Por padrão, o Veeam Backup for AWS usa apenas 1 shard com uma taxa de transferência de 1MB/s. É possível ajustar isso na seção de “restore rate” e assim atingir uma velocidade maior de restore, entretanto, o custo por uso do shard irá aumentar.
É possível também habilitar a opção “Keep the restore tool at the target instance”, dessa forma o executável que utilizamos durante o restore continuará instalado na instância e caso seja necessário restaurar novamente arquivos para essa instância o processo iniciará mais rápido.

 

Aguarde o Worker iniciar e gerar o endereço para acesso a página de restore.

 

Quando o endereço estiver pronto poderemos acessar a página, navegar e escolher os arquivos que desejamos restaurar.

 

Ao selecionar os arquivos devemos adicionar a lista de restore e selecionar se vamos manter os arquivos originais ou sobrescrevê-los. Nesse exemplo irei manter os arquivos originais.

 

Ao iniciar o restore podemos acompanhar em “Session Log” os arquivos que foram restaurados e se tivemos alguma falha.

 

Ao acessar a instância veremos que uma nova pasta foi criada com os arquivos restaurados porque escolhi a opção “Keep”.

 

Restaurando arquivos em um ambiente Cross-Account

 

Se você usa um ambiente Cross-Account, ou seja, o Veeam Backup for AWS está localizado em uma conta diferente do que a instância que está sendo restaurada está localizada, é necessário adicionar uma permissão adicional na IAM Policy criado nos passos anteriores.
É necessário adicionar a permissão abaixo:

{
     "Sid": "AssumeRole",
     "Effect": "Allow",
     "Action": "sts:AssumeRole",
     "Resource": "arn:aws:iam::<account_id_vbaws_is_located>:role/veeam_rto_*"
}

Isso é necessário porque, durante o restore, é criado uma IAM Role temporária na conta onde o Veeam Backup for AWS está localizado para fazer a transferência dos dados via Kinesis Data Stream e a IAM Role da conta onde está localizado a instância precisa de permissão para assumir essa IAM Role temporária.
No exemplo abaixo estou utilizando o nome “veeam_rto_*” porque o nome completo da IAM Role temporária é sempre criado com o ID da instância que está sendo restaurado, então utilizando o asterisco não será necessário alterar essa IAM Role cada vez que for executar o restore de diferentes instâncias.
No final, a IAM Policy ficará como o exemplo abaixo:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Action": [
                "sqs:ListQueues",
                "sqs:GetQueueUrl",
                "kinesis:List*",
                "kinesis:Describe*",
                "kinesis:Get*",
                "sqs:GetQueueAttributes",
                "sqs:ListDeadLetterSourceQueues"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "AssumeRole",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::886738527459:role/veeam_rto_*"
        }
    ]
}

Todos os outros passos para restaurar os arquivos para o local de origem são os mesmos.

Segue abaixo alguns links com maiores detalhes sobre o processo.

Compartilhe!