Como Tirar Instantâneo de Instância EC2 para Proteção de Dados do AWS EC2

Se estiver a usar o Amazon Web Services (AWS) para executar instâncias EC2 (VMs) na Elastic Compute Cloud, tem várias formas de proteger as suas cargas de trabalho contra perda de dados causada por falha de software, infeção por malware, eliminações acidentais, entre outras coisas. Uma opção disponível para si é o recurso de backup integrado da AWS para instâncias EC2 chamado snapshots EBS. Esta publicação de blog explica como criar um snapshot de uma instância EC2 usando snapshots de volume EBS com exemplos detalhados do processo de configuração.

O que são Snapshots EBS?

Os snapshots EBS são cópias incrementais de um volume Elastic Block Store (EBS) armazenadas no Amazon S3. Isso significa que quando cria um snapshot EBS pela primeira vez, é criado um backup completo, e apenas os dados alterados são copiados para os snapshots EBS subsequentes. Os volumes EBS são discos virtuais ligados a instâncias EC2.

Mesmo que os snapshots EBS sejam armazenados no Amazon S3, não pode aceder manualmente aos snapshots no armazenamento S3. Pode gerir esses snapshots na Consola de Gestão EC2.

Nota: Os termos snapshot AWS EC2 e snapshot Amazon são por vezes também usados para referenciar snapshots EBS.

Como funcionam os snapshots EBS

Os snapshots do EBS são backups em nível de bloco dos dados da instância EC2 que representam o volume EBS no momento específico em que o comando de snapshot foi emitido. Isso significa que se a instância estiver em execução, os blocos de dados escritos nos volumes EBS após o início da captura do snapshot não são salvos no snapshot. Como resultado, os snapshots do EBS são consistentes em caso de falha e não consistentes com aplicativos.

Observe que os snapshots do EBS não são iguais aos snapshots no contexto do VMware vSphere e do Microsoft Hyper-V. Os snapshots do Hyper-V e do VMware não são backups e não podem substituir backups adequados.

No entanto, existem limitações nos snapshots do EBS, que incluem falta de opções de agendamento e retenção, nenhuma possibilidade de criar cópias localmente, além da complexidade de criar um snapshot EC2 consistente com aplicativos para simplificar a recuperação.

Como Criar Snapshot no Console da AWS para Instâncias EC2

O Console de Gerenciamento da AWS é a interface web GUI usada para gerenciar todos os recursos de computação, armazenamento e outros da AWS, incluindo a criação de snapshots do EBS.

Para acessar a instância EC2 para a qual você deseja criar um snapshot:

  1. Entre no Console de Gerenciamento da AWS usando uma conta que tenha as permissões necessárias para criar instâncias EC2, volumes EBS e snapshots do EBS.
  2. Clique em Serviços e na seção Computação, clique em EC2 para abrir o console de gerenciamento para instâncias EC2, volumes EBS e outros recursos do EC2.

Nós preparamos uma instância EC2 para demonstrar os passos para criar snapshots do EBS. Os parâmetros de nossa instância EC2, que vamos fazer backup e recuperar usando snapshots do EBS, são os seguintes:

Nome: blog-temp

ID da instância EC2: i-0071290000000cb84

Tipo de instância: t2.micro

Zona de disponibilidade: eu-central-1c

Volume EBS 1: vol-0617000000000763c

Tipo de volume: gp2

Tamanho do volume: 8 GB

O sistema operacional (SO) convidado em execução na instância EC2 é o Ubuntu Server (Linux).

Escrevendo arquivos no volume EBS

Vamos criar dois arquivos no disco virtual anexado à instância EC2 antes de criar um snapshot. Desta forma, podemos verificar se esses arquivos são recuperados após restaurar a instância a partir do snapshot do EBS. Criamos dois arquivos no diretório home do usuário:

lspci > file01.txt

echo "teste snapshot EC2 01" > snapshot01.txt

Preparando a instância

Pare a instância EC2 para garantir que o snapshot contenha dados consistentes. A razão para isso é que os volumes EBS trabalham no nível de bloco. Quando um snapshot EBS é feito, o estado do volume EBS naquele momento no tempo é salvo. Os blocos de armazenamento são salvos como estão. O sistema não está ciente das operações feitas com arquivos no nível do sistema de arquivos naquele momento. Se os arquivos estiverem sendo gravados em um volume EBS quando um snapshot for tirado, o snapshot conterá dados inconsistentes. O efeito é semelhante ao desligar o cabo de alimentação de um computador físico enquanto os arquivos estão sendo gravados.

Se você deseja tirar um snapshot de um volume EBS não do sistema, você pode desmontar o sistema de arquivos do sistema operacional para garantir que não haja operações de gravação de arquivos no volume. A hibernação deve ser desativada para que a instância EC2 possa tirar um snapshot.

Para preparar sua instância EC2 para tirar um snapshot:

  1. Abra a página com a lista de instâncias EC2 no console de gerenciamento do EC2. Clique com o botão direito no nome da instância e, no menu de contexto, clique em Parar instância.

  1. Localize o volume usado pela instância EC2. Clique na guia Armazenamento e clique no ID do volume do EBS apropriado (vol-0617000000000763c no nosso caso).

Tirando um snapshot

Estamos prontos para criar um snapshot da instância EC2:

  1. Selecione o volume EBS (clique na caixa de seleção no lado esquerdo da linha) e clique em Ações > Criar Snapshot.

  1. Insira uma descrição, defina as configurações de criptografia e adicione uma tag. Eu uso os seguintes parâmetros:
  • Descrição: Snapshot EBS blog 01
  • Criptografia: Não criptografado

Clique em Criar Snapshot.

Nota: Nós usamos o volume não criptografado e criamos um snapshot não criptografado. Neste caso, as configurações de criptografia para o snapshot podem ser definidas manualmente. Quando você tira um snapshot de um volume criptografado, o snapshot é criptografado automaticamente.

  1. Você deve ver a seguinte mensagem e o ID do snapshot:

Solicitação de Criação de Snapshot Bem-sucedida
snap-0778000000000ab40

Clique no ID do snapshot para abrir uma página com as opções e status do snapshot.

  1. O status do snapshot pendente significa que os dados do volume EBS estão sendo transferidos agora para a Amazon S3. Aguarde a conclusão da criação do snapshot (o status é alterado para concluído). O tempo depende do tamanho dos dados salvos no snapshot.

Como Tirar Snapshots de Múltiplos Volumes

É comum encontrar uma instância EC2 usando múltiplos volumes EBS. Neste caso, você pode criar um snapshot de múltiplos volumes para todos os volumes EBS anexados a essa instância EC2 para um backup da Amazon EC2.

Nesta seção, vamos cobrir:

Criar um segundo volume EBS para a instância EC2

Vamos primeiro adicionar um segundo volume EBS à nossa instância EC2, que estamos usando para fins de demonstração:

  1. No painel de navegação da consola de gestão do EC2, vá para Armazenamento de Bloco Elástico > Volumes. Clique em Criar Volume.

  1. Para Zona de Disponibilidade, a região deve ser a mesma que a região da instância (eu-central-1c no nosso caso).

Introduza o tipo/tamanho do volume, defina as opções de encriptação e introduza etiquetas. As etiquetas ajudam a encontrar o volume na lista de volumes. Definimos o tamanho do volume em 1 GiB, e utilizamos as seguintes etiquetas:

  • Chave: blog

  • Valor: volume temporário 2

Clique em Criar Volume.

  1. Recorde (ou anote) o ID do volume (vol-0b4a0000000003d01 no nosso caso). Clique no ID do volume para abrir as propriedades do volume.

  1. Anexe o volume à instância EC2. Clique com o botão direito do rato no volume ou clique em Ações e, no menu que abre, clique em Anexar Volume.

  1. Selecione a instância à qual precisa de anexar o volume EBS. Deve selecionar o ID da instância EC2. No nosso caso, o ID da instância é i-0071290000000cb84.

Pode selecionar o dispositivo no sistema operativo convidado utilizado para aceder ao volume anexado. No nosso caso, é utilizado /dev/sdf.

Clique em Anexar para anexar o novo volume à instância EC2.

Nota: Informações úteis sobre a renomeação de dispositivos de disco são exibidas na nota. Em nosso caso, /dev/sdf é renomeado para /def/xvdf no sistema operacional convidado.

Agora, dois volumes estão anexados à nossa instância EC2 (blog-temp):

vol-0617000000000763c

vol-0b4a0000000003d01

Escrevendo dados no segundo volume EBS

Em seguida, criaremos um arquivo no segundo volume EBS. Este arquivo será usado para verificar se todos os dados são recuperados após a restauração do volume a partir do snapshot EBS. Por esse motivo, criaremos uma partição, criaremos um sistema de arquivos e montaremos o sistema de arquivos no sistema operacional Linux convidado em execução na instância EC2.

Embora estejamos focados em operações com snapshots EBS em vez de operações no sistema operacional Linux convidado em execução na instância EC2, listamos os comandos usados para entender melhor as operações com volumes.

Gerenciando armazenamento

  • Use lsblk para exibir detalhes sobre dispositivos de bloco no Linux.
  • Use df -h para verificar o espaço de armazenamento em discos montados.
  • Use mount para verificar discos montados.

Criando e montando uma partição

Criando e formatando uma partição no segundo volume EBS no parted:

sudo parted -l

parted /dev/xvdf

(parted) mklabel msdos

(parted) print

(parted) mkpart primary ext4 1MB 955MB

(parted) print

(parted) quit

Criando um sistema de arquivos na partição preparada:

mkfs.ext4 /dev/xvdf1

Criando o diretório para usar como ponto de montagem:

mkdir disk2

Montando a partição com o sistema de arquivos no diretório criado:

mount /dev/xvdf1 /disk2/

Acessando o diretório da partição montada:

cd /disk2

Gravando alterações nos 2 volumes EBS

  1. Crie o arquivo na partição localizada no segundo volume EBS anexado à instância EC2 em execução no Linux:

echo “Instantâneo EBS para disco 2” > /disk2/d2-file01.txt

  1. Faça alterações no primeiro disco para criar um novo instantâneo EBS do primeiro volume usado pela instância EC2. Ambos os volumes devem conter alterações desde o estado em que o instantâneo anterior foi tirado.

Criamos o arquivo snapshot02.txt no primeiro volume para detectar mais convenientemente as alterações salvas no novo instantâneo do primeiro volume.

Uma vez que os dois volumes EBS com novos dados estão anexados à instância EC2, podemos criar instantâneos de vários volumes.

Criando o snapshot de vários volumes

  1. Vá para Elastic Block Store > Snapshots no painel de navegação da página de gerenciamento de instâncias EC2. Clique em Criar Snapshot.

  1. Selecione o tipo de recurso: Instância.
  2. Insira o ID da instância EC2 necessária cujos volumes você deseja fazer backup usando snapshots EBS.

Todos os volumes conectados à instância selecionada são selecionados automaticamente.

  1. Insira uma descrição para ajudá-lo a encontrar o snapshot EBS na AWS quando necessário. Em nosso exemplo, a descrição é Snapshot EBS blog 02.
  2. Selecione a caixa de seleção Copiar tags do volume se desejar usar as tags atribuídas aos volumes EBS.
  3. Depois de clicar em Criar Snapshot, snapshots para todos os volumes selecionados serão criados.

Se o processo for bem-sucedido, você verá a seguinte mensagem:

Solicitação de Criação de Snapshot Bem-sucedida

Dois identificadores de snapshot da Amazon são exibidos: snap-0f95000000000de71 e snap0a91000000000769b em nosso caso.

Você pode salvar esses valores de ID e clicar em um deles para verificar o status da criação do snapshot. Logo após iniciar a criação do snapshot, o status da operação é pendente e muda para concluído assim que o processo termina.

A new snapshot for each volume has been created.

Usando a AWS CLI para Criar Snapshots

Você pode usar a AWS CLI como uma alternativa ao Console de Gerenciamento da AWS se preferir a interface de linha de comando ou precisar automatizar a criação de snapshots.

O comando para criar um snapshot EBS na AWS CLI é:

aws ec2 create-snapshot --volume-id vol-0b4a51e1cea333d01 --description "Este é um snapshot de teste para o blog"

A saída deve parecer com isto:

{

    "Descrição": "Este é um snapshot de teste para o blog",

    "Tags": [],

    "Criptografado": false,

    "VolumeId": "vol-0b4a51e1cea333d01",

    "Estado": "pendente",

    "TamanhoVolume": 8,

    "HoraInicio": "2021-08-28T21:06:01.000Z",

    "Progresso": "",

    "IdProprietário": "012345678910",

    "IdSnapshot": "snap-0689749a39a7b822b"

}

O comando para criar um snapshot com tags:

aws ec2 create-snapshot --volume-id vol-0b4a51e1cea333d01 --description 'Backup de produção' --tag-specifications

'TipoRecurso=snapshot,Tags=[{Chave=Blog,Valor=Teste},{Chave=AWS,Valor=EC2-snapshot}]'

Como Restaurar uma Instância EC2 Usando Snapshots EBS

Nós criamos snapshots dos volumes EBS anexados à instância Amazon EC2. Esses snapshots são uma forma de backup de dados na AWS. Agora vamos descobrir como criar uma instância EC2 a partir de um snapshot através da restauração:

  • volumes EBS específicos na AWS
  • a instância EC2 inteira

Restaurando o segundo volume EBS

Vamos restaurar o segundo volume EBS (tamanho de 1 GiB) a partir do instantâneo. Esse volume é usado para armazenar arquivos e o sistema operacional não está instalado nesse volume.

  1. Na área de navegação do console de gerenciamento do EC2, vá para Elastic Block Store > Snapshots.

Digitemos “blog” na caixa de pesquisa para exibir todos os instantâneos criados para volumes EBS da instância EC2 usada para escrever esta postagem no blog. Isso é um exemplo de por que vale a pena adicionar descrições e tags.

  1. Selecione o instantâneo do volume de 1 GiB e crie um novo volume a partir do instantâneo. Clique com o botão direito do mouse no instantâneo e, na janela que abrir, clique em Create Volume.

  1. Defina os parâmetros do volume necessários na página Create Volume: selecione o tipo de volume e defina o tamanho do volume, zona de disponibilidade, opções de criptografia, chaves de tags e valores.

A zona de disponibilidade deve ser a mesma da instância EC2 (eu-central-1c em nosso caso).

O tamanho do volume é o mesmo do volume original que foi feito o backup (1 GiB) em nosso exemplo.

A chave de tag é blog e o valor é volume recuperado 1.

  1. Clique em Create Volume para concluir e criar o volume EBS usando o instantâneo EBS.

Você verá a seguinte mensagem:

Create Volume Request Succeeded

Você pode salvar o ID do volume. O novo ID do volume é vol-09cd000000000b502 em nosso caso.

Restaurando um volume de sistema

Para restaurar uma instância EC2, você precisa restaurar o volume EBS no qual o sistema operacional está instalado. Neste caso, você pode criar uma imagem a partir do snapshot do volume EBS usado pelo sistema operacional convidado e iniciar a instância usando essa imagem (a instância EC2 restaurada).

Criando a imagem

  1. No console de gerenciamento EC2, vá para Elastic Block Store > Snapshots e selecione o snapshot necessário do volume EBS no qual o sistema operacional convidado está instalado.

Selecionamos o snapshot mais recente do volume de 8 GiB usado pelo sistema operacional convidado (Ubuntu Server). Este snapshot do volume EBS foi criado quando criamos o snapshot de vários volumes para a instância EC2.

Clique com o botão direito do mouse no snapshot e, na lista de opções que se abre, clique em Create Image.

  1. Na janela que se abre, insira as informações necessárias e selecione as opções para criar uma imagem a partir do snapshot EBS. Usamos os seguintes parâmetros.

Name: blog-recuperado

Description: Restaurado a partir de um snapshot EBS (blog)

Outras configurações são mantidas em seus valores padrão.

Clique em Create.

  1. A caixa de diálogo Create Image request received é aberta. Clique no ID da imagem para ver informações sobre a imagem (ami-08ed800000000872a em nosso caso). Aguarde até que a criação da imagem seja concluída.

Iniciando a imagem

Depois que a imagem for criada, clique com o botão direito na imagem e clique em Launch.

O assistente de criação de nova instância EC2 abre. Você deve selecionar as opções da instância. Você pode selecionar as opções que são iguais às opções selecionadas para a VM original que foi salva. Você também pode restaurar a instância para uma nova instância EC2 mais poderosa.

Nota: Somos redirecionados para Etapa 2 do assistente (em vez de Etapa 1. Escolha AMI) já que selecionamos a AMI blog-recuperada da página com a lista de AMIs.

Etapa 2: Escolha um Tipo de Instância. Selecionamos t2.micro como tipo de instância. Clique em Próximo em cada etapa do assistente para continuar.

Etapa 3: Configurar Instância. Configure os detalhes dependendo de seus requisitos, incluindo configurações de rede, funções IAM, comportamento de desligamento, etc.

Etapa 4: Adicionar Armazenamento é importante ao recuperar uma instância EC2 usando snapshots de EBS. Clique em Adicionar Novo Volume. Uma nova linha com opções de volume é adicionada nesta página. Insira o ID do snapshot de volume necessário no campo Snapshot.

Inserimos snap-0a91000000000769b, que é o ID do nosso snapshot do volume de 1 GiB. O tamanho de 8 GiB do volume é selecionado por padrão em nosso exemplo. Podemos definir o tamanho do volume para 1 GiB conforme configurado para o volume EBS original. Você também pode selecionar o dispositivo de armazenamento, tipo de volume, criptografia e opções de exclusão no término.

Passo 5: Adicionar Tags. Certifique-se de que as tags sejam úteis para fins de pesquisa. As tags são aplicadas a todos os volumes e instâncias. Neste exemplo, a chave da tag é blog e o valor é VM recuperada 01.

Passo 6: Configurar o Grupo de Segurança. Edite os parâmetros para controlar o tráfego de rede para sua instância EC2.

Passo 7: Revisar o Lançamento da Instância. Revise os detalhes do lançamento da sua instância e clique em Lançar para finalizar. Você deve selecionar um par de chaves ou criar um novo para acessar a instância EC2.

  1. A página de Status do Lançamento é exibida agora. Clique em Visualizar instâncias.

  1. Informe um nome para a instância recuperada (blog-recuperada no nosso caso). O status da instância E2 recuperada é executando. Ambos os volumes EBS recuperados dos instantâneos EBS estão anexados à instância EC2 (veja a captura de tela abaixo).

Verificando os arquivos restaurados

Vamos verificar se os arquivos criados antes de tirar o último instantâneo foram recuperados:

Liste os dispositivos de bloco anexados:

lsblk

Liste os arquivos do diretório atual (home) do usuário:

ls -al

Os arquivos snapshot01.txt e snapshot2.txt criados antes de tirar os primeiros e segundos instantâneos do volume EBS no qual o SO está instalado estão presentes.

Monte a partição localizada no segundo disco (volume EBS):

sudo mount /dev/xvdb1 /disk2/

O nome da partição foi alterado para /dev/xvdb1. Tenha em mente que pode ser necessário editar /etc/fstab após a restauração da instância para montagem automática.

ls -al /disk2/

d2-file01.txt está presente no sistema de arquivos armazenado no segundo volume EBS após a restauração.

A instância AWS EC2, com todos os volumes EBS anexados, foi restaurada com sucesso a partir de snapshots EBS. Todos os dados necessários estão preservados.

Conclusão

Você pode fazer backup de um único volume ou de todos os volumes usando snapshots de vários volumes. Esta é uma funcionalidade nativa muito útil da AWS para proteção de dados e recuperação de desastres. No entanto, observe que há custos adicionais incorridos ao armazenar snapshots EBS na nuvem da Amazon porque armazenamento em nuvem adicional é utilizado. Além disso, existem outras limitações no uso de snapshots EBS para backups, como o sistema de criação de snapshot não estar ciente de arquivos sendo gravados no momento em que o snapshot é tirado. Como resultado, os backups feitos com snapshots EBS são consistentes com falhas e não consistentes com aplicativos.

O NAKIVO Backup & Replicação é uma solução de proteção de dados que suporta a criação de backups e réplicas cientes de aplicativos de instâncias Amazon EC2. Você também pode usar a solução para simplificar e automatizar significativamente o processo de backup e recuperação. Recupere rapidamente toda a instância EC2 a partir de um backup sem a necessidade de recuperar volumes EBS, criar uma instância EC2 e anexar os volumes manualmente a uma instância EC2 criada.

Source:
https://www.nakivo.com/blog/how-to-create-snapshots-of-ec2-instance/