Como posso copiar meus dados de snapshot do Amazon EBS para o Amazon S3 e criar volumes do EBS para dados personalizados no S3?
Última atualização: 29/11/2022
Quero copiar um snapshot do Amazon Elastic Block Store (Amazon EBS) para meu bucket do Amazon Simple Storage Service (Amazon S3). Também quero criar volumes do Amazon EBS a partir de dados armazenados no meu bucket do S3. Mas não sei como.
Breve descrição
Quando um snapshot do EBS é criado, ele é automaticamente armazenado em um bucket do Amazon S3 gerenciado pela Amazon Web Services (AWS). É possível copiar snapshots dentro da mesma região da AWS ou de uma região para outra. No entanto, não é possível copiar snapshots para buckets do S3 que você gerencia.
Para armazenar snapshots acessados com pouca frequência, considere usar o Amazon EBS Snapshots Archive. No entanto, se ainda preferir usar o Amazon S3 para armazenar seus snapshots, é possível usar a seguinte solução alternativa.
Resolução
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), certifique-se de estar usando a versão mais recente da AWS CLI.
É possível copiar o conteúdo do snapshot para o bucket do S3 criando um volume a partir do snapshot. Monte o volume em uma instância Linux do Amazon Elastic Compute Cloud (Amazon EC2). Em seguida, copie os dados para o bucket do S3 usando a AWS CLI ou as APIs do S3.
Para copiar o conteúdo dos snapshots do EBS para um bucket do Amazon S3, siga estas etapas:
1. Crie um volume do EBS a partir do snapshot.
2. Inicie uma instância Linux do EC2 na mesma zona de disponibilidade do volume criado.
3. Anexe o volume à instância.
4. Conecte na instância Linux.
5. Instale a AWS CLI na sua instância Linux.
6. Execute o comando a seguir para montar o volume na instância:
$ sudo mount /dev/xvdf /mnt
Nota: o dispositivo (/dev/xvdf, no exemplo anterior) pode estar conectado à instância com um nome de dispositivo diferente. Use o comando lsblk para visualizar os dispositivos de disco disponíveis juntamente com seus pontos de montagem para determinar os nomes corretos dos dispositivos.
7. Instale o pacote pv para monitorar o progresso durante a criação do arquivo tar:
Distribuições Amazon Linux e Red Hat Enterprise Linux (RHEL)
$ sudo yum install pv
Nota: antes de instalar o pacote pv para as distribuições Amazon Linux e RHEL, é preciso ativar o repositório Extra Packages for Enterprise Linux (EPEL). Consulte How do I turn on the EPEL repository for my Amazon EC2 instance running CentOS, RHEL, or Amazon Linux? (Como habilito o repositório EPEL para minha instância do Amazon EC2 executando CentOS, RHEL ou Amazon Linux?)
Distribuições baseadas em Ubuntu e Debian
$ sudo apt install pv
8. Execute o comando a seguir para copiar os dados do volume do EBS para seu bucket do S3:
$ tar c /mnt | pv -s $(($(du -sk /mnt | awk '{print $1}') * 1024)) | gzip | aws s3 cp - "s3://my-bucket/backup1.tar.gz"
Nota: o comando anterior cria um arquivo compactado a partir do diretório /mnt e carrega o arquivo para o bucket do S3 chamado my-bucket. Substitua my-bucket pelo nome do seu bucket do S3 e backup1 pelo nome do seu arquivo.
9. Use o console do Amazon S3 para confirmar se o arquivo compactado foi carregado no bucket do S3.
10. Execute o seguinte comando para desmontar o volume:
$ sudo umount /mnt
Informações relacionadas
Copy an Amazon EBS snapshot (Copiar um snapshot do Amazon EBS)
Este artigo ajudou?
Precisa de ajuda com faturamento ou suporte técnico?