Transformando uma partição root Instance Store em EBS

A Amazon possui dois tipos de AMI (“Amazon Machine Image”): uma baseada em instâncias do tipo EBS, e outra do tipo instance store. Se você é um completo iniciante no mundo da AWS e está em dúvida sobre qual escolher, não precisa ter: escolha sempre EBS, as vantagens são inúmeras.

O que é Instance Store?

O Instance Store fornece volumes de armazenamento de nível de blocos temporários. Todos os dados são perdidos quando a máquina é desligada ou reiniciada; por conta disso, caso a partição root seja instance store e a máquina for reiniciada ela entra direta no modo “terminated” (máquina destruída e irrecuperável da amazon). Sim, todos os dados são perdidos e NÃO há como recuperá-los caso não tenha sido feito backup em outro local como um disco EBS ou até mesmo o serviço S3. Uma vantagem que esse disco tem com relação ao EBS é que ele é totalmente gratuito, não gerando o menor custo ao cliente.

Recomenda-se utilizar esse tipo de partição apenas fora da partição root e para arquivos que não há problemas em perder. Ex: SWAP, arquivos de logs descartáveis, etc.

O que é EBS?
O Amazon Elastic Block Store (Amazon EBS) fornece volumes de armazenamento de nível de blocos persistentes para uso com instâncias do Amazon EC2 na nuvem da AWS. Cada volume do Amazon EBS é replicado automaticamente na sua zona de disponibilidade para protegê-lo de falha de um componente, oferecendo alta disponibilidade e durabilidade. Os volumes do Amazon EBS oferecem o desempenho com a consistência e latência baixas necessárias para executar suas cargas de trabalho. Com o Amazon EBS, você pode aumentar ou reduzir a utilização em poucos minutos – ao mesmo tempo que paga um preço reduzido apenas pelo que for provisionado. Os dados apenas são apagados caso o volume do EBS seja deletado.

Devemos utilizar esse tipo de instância para todos os arquivos que precisam ser mantidos e não podemos perdê-los.

 Transformando Instance Store em EBS

Ok, eu não sou tão iniciante em Amazon assim, não tinha lido ainda esse blog, fui lá e criei uma máquina a partir de uma AMI Instance Store, teria jeito de mudar essa partição para EBS?

Pela console da amazon não é possível, mas com a técnica abaixo conseguiremos sim rodar uma nova máquina com todos os dados que estavam no antigo Instance Store. Para começar devemos acessar a console da Amazon e criar um volume do mesmo tamanho que a partição root original (geralmente 8 GB), que dará base a nova AMI que vamos construir posteriormente (atentar para criar o disco com a mesma Availability Zone (AZ) da máquina instance store criada:

figura1 - criando volume
figura1 – criando volume

Após criar o novo volume na Amazon, iremos atachar (anexar) esse novo disco à máquina que transformaremos:

figura 2 - atachando disco
figura 2 – atachando disco

Tendo em vista que o disco foi criado, o próximo passo seria entrar nessa máquina e executar alguns comandos para formatar o disco e montá-lo. Note que no nosso exemplo consideramos que o disco atachado à máquina ficou na partição /dev/xvdf; isso pode variar caso contenha mais volumes, por isso, verifique bem qual é a partição antes de executar os próximos comandos:

mkfs.ext4 /dev/xvdf
mkdir /ebs
mount /dev/xvdf /ebs

Estamos prontos para a próxima etapa, que nada mais é que sincronizar o disco Instance Store com esse novo EBS:

rsync -avHx / /ebs
rsync -avHx /dev /ebs
sync;sync;sync;sync && umount /mnt/ebs

O disco base  ebs está pronto. Para quem nunca trabalhou com AMI na AWS, elas são geradas a partir de um outro serviço, chamado snapshot. Então basicamente para se fazer uma ami, é feito um snapshot desse disco e a partir deste, cria-se uma imagem:

figura 3 - Criando snapshot
figura 3 – Criando snapshot

O snapshot, quando feito pela primeira vez, costuma demorar uns minutos; o que pode ser feito, para ir adiantando, seria verificar a versão do kernel que a atual máquina utiliza, pois será necessário para criar a AMI:

figura 5 - kernel id
figura 4 – kernel id

Com o snapshot pronto, podemos criar a imagem (AMI).

Preencha os campos Name e Description com algo elucidativo, pois essa AMI pode ser utilizada posteriormente na construção de novas máquinas se assim desejar. Já no campo Kernel-ID, escolha a opção que foi retirada no passo anterior. Os demais campos podem ser deixados como default, ao menos que tenha preferência para aumentar o tamanho da partição root, ou EBS de outros tipos (sobre isso, falaremos em artigos posteriores). Finalmente, clique no botão create:

figura 6 - criando ami
figura 5 – criando uma nova instância

Criando a AMI
Após todos os passos acima, iremos apenas criar uma máquina; para isso, clique com o botão direito em cima da nova AMI – Create Image (EBS AMI). E sua nova máquina será exibida em Instances.

Considerações Finais

O texto teve como objetivo mostrar uma saída para os administradores cloud que criaram uma partição Instance Store, arrependeram-se e não querem começar uma máquina nova do zero, poder transferir todo o conteúdo para uma nova máquina, já trabalhando da maneira desejada.

Lembrando que todos os comandos que foram  passados nesse tutorial via interface amazon, também podem ser feitos pela linha de comando. Para saber mais sobre como usar linha de comando para os serviços da AWS, acesse: http://www.matera.com/br/2014/12/16/gerenciando-seus-servicos-aws-via-shell-script/

Baseado e traduzido de:
http://blog.ianbeyer.com/2012/05/10/converting-ec2-s3instance-store-image-to-ebs/

Por ANDERSON LIMA

Postado em: 12 de fevereiro de 2015

Confira outros artigos do nosso blog

Estimando Custos na AWS

08 de março de 2016

Anderson Lima

Usando Amazon SQS como sistema de mensagens (2/2)

02 de março de 2016

Luis Sergio F. Carneiro

Cine Dojo: a mistura da MATERA de Coding Dojo, Cinema, Pipoca e TI!

04 de fevereiro de 2016

Valmir Massafera Jr

Documentação da sua Nuvem com Linha do Comando

15 de dezembro de 2015

Matias Schweizer

Deixe seu comentário