Tutorial S3 + Glacier

Mão na massa backup S3 + Glacier

Por que usar o S3 + Glacier para fazer backups?

Por dois motivos facilidade e custo baixo. O Amazon S3 oferece uma API bem legal e vários clients que facilitam a sua vida, o preço dele atualmente é 0,03$/GB até 1TByte isso usando o S3 na Virginia e em São Paulo o valor vai para 0,04$/GB, mas os preços sempre tendem a cair.

O principal diferencial do Glacier é o preço 0,01$/GB, porém sua api funciona de maneira diferente em relação ao S3. Outro detalhe o serviço Glacier não está disponivel na região de São Paulo por enquanto.

Quais são as diferenças entre Amazon S3 e Glacier?

O papel do Amazon S3 é ser um storage para “Archiving“, ou seja, o arquivo está sempre disponível para quem tem permissão, é claro. Já o Amazon Glacier é um storage para “Backup“, sempre que você for restaurar um arquivo a Amazon tem o SLA de 3 a 5 horas para disponibilizar o arquivo para download.

A ideia é usar os dois serviços juntos aproveitando a facilidade de uso do Amazon S3 mais o baixo custo do Amazon Glacier.

Quando não usar o S3 e o Glacier para backup?

Imagine o seguinte cenário, sua rotina de backup gera 50G de backup diário e seu link de internet corporativo é de 10Mbits, ai temos um gargalo e o processo de envio dos arquivos para o Amazon S3 pode demorar demais e além de comprometer o seu link de internet. As vezes isso consegue ser contornado avaliando como é feito o backup, por exemplo, fazer backups FULL todos os dias não é uma boa prática.

Mão na massa

Em nosso exemplo vamos usar o proprio CLI da Amazon só que a versão python e no Linux, mas se você usa o Windows dá pra fazer também, basta baixar o CLI link para Windows a unica coisa que muda e o processo de instalação.

Para instalar o cli:
# apt-get install python-pip; pip install awscli

Configure suas credenciais da AWS.
$ aws configure

Crie um bucket para receber os arquivos do backup.
$ aws s3 mb s3://backup-rivendel

Faça o upload para o S3.

$ aws s3 sync backup/ s3://backup-rivendel/

upload: backup/mail_cvscestas_com_br.zip to s3://backup-rivendel/mail_cvscestas_com_br.zip
upload: backup/mongo.txt to s3://backup-rivendel/mongo.txt
upload: backup/conf_apache to s3://backup-rivendel/conf_apache

No exemplo acima sincronizamos todo o conteúdo da pasta backup para o bucket s3://backup-rivendel/ , você também pode adicionar o comando acima no cron para ser executado diariamente, semanalmente ou como você preferir.

Mas e o Glacier ?

Vamos lá, acesse o console da AWS e em seguida acesse o bucket que você criou.

Clique em “Properties” e em seguida “Lifecycle”.

Agora vamos adicionar a regra que vai enviar todos os arquivos do bucket para o Glacier, clicando em add rule.

image0001

Selecione “Whole bucket” e clique em “Configure Rule

image0002

Em “Action on Objects” selecione “Archieve Only” e clique em “Review”.

image0003

Por último defina um nome para a regra em “Rule Name” e clique em “Create and Active Rule

image0004

Pronto a próxima vez que a regra de lifecycle rodar no bucket o “Storage Class” mudará de “Standard” para “Glacier”. E você será tarifado com os valores do Amazon Glacier.

Restauração.
Basta clicar com o botão direito no objeto que deseja restaurar e em seguida “Initiate Restore”.

image0005

Informe o número de dias que você desaja que o arquivo fique disponível para download após a restauração.

image0006

Depois desse passo a Amazon tem o SLA de 3 a 5 horas para disponibilizar o arquivo para download, Para checar o status da restauração selecione o objeto e clique em “Properties” e depois em “Details

image0007

Quando o arquivo estiver disponível para Download o “Details” mudará para “Restored until …

image0008

Agora é só fazer o Download do objeto.

image0009

Abaixo você pode assistir a um vídeo que mostra um pouco mais.

Gostou do conteúdo? Tem alguma dúvida? Entre em contato com nossos Especialistas Mandic Cloud, ficamos felizes em ajudá-lo.