O AWS não oferece uma maneira de baixar ou extrair o dispositivo de bloco real que compõe um volume do EBS. A maneira padrão de pegar uma cópia é usar o rsync, mas como você está atrás de uma maneira em nível de bloco de fazer isso, este artigo pode ser de alguma utilidade.
Em resumo (e caso o link acima desapareça), use netcat
e dd
em ambas as extremidades, por exemplo,
No remetente (sua instância do EC2 à qual o volume está anexado):
dd bs=16M if=/dev/sda|bzip2 -c|nc receiver.example.net 19000
No receptor (seu PC, servidor de backup, etc):
nc -l 19000|bzip2 -d|dd bs=16M of=/path/to/my/volume.img
Que transferirá todo o conteúdo do dispositivo em nível de bloco pela porta 19000 em blocos de 16 MB bzipados, embora também possa ser feito em vez do ssh, mas de acordo com suas estatísticas de desempenho, é muito, MUITO mais lento! Naturalmente, você precisa considerar o aspecto de segurança de fazê-lo dessa maneira também. Se o seu dispositivo de bloco tiver dados confidenciais, criptografar com SSH ou usar um túnel VPN é altamente recomendado, e a lentidão na velocidade de transferência é uma compensação razoável.
Outra coisa a notar é que os sistemas de arquivos podem ser armazenados em cache na memória, portanto, pode resultar em uma imagem corrompida. Desmonte seu volume (mas deixe-o anexado à instância) antes de executar o acima para garantir a consistência do sistema de arquivos.
Para pegar uma cópia de um instantâneo, você precisará criar um volume a partir dele, anexá-lo a uma instância e, em seguida, fazer o acima. Não há outra maneira de acessar os dados de um instantâneo.