© 2019 by Douglas.

Created with Wix.com

  • Branca ícone do YouTube
  • Branca Ícone LinkedIn
  • White Facebook Icon
  • White Instagram Icon

APLICANDO SOLUÇÕES INTELIGENTES

Backup de arquivos para S3. Vale a pena ?

    Você já pensou em criar backups a um baixo custo com alta disponibilidade e resiliência?   É muito comum em TI procurarmos alternativas de baixo custo para atender nossas necessidades, e eu estive pensando em alguma forma de criar backups seguros e com baixo custo.

 

    O serviço de S3 da AWS é uma boa alternativa para ser aplicado em situações que necessitam de alta disponibilidade e resiliência. Só pra explicar um pouco mais do que eu estou falando segue o quadro tirado da documentação do S3.

 

    Existem três tipos de armazenamentos no storage S3, um deles é o Glacier, porém isso é um serviço para outro bate-papo. Os 3 tipos de storages oferecidos pela AWS são : S3 Standard, S3 Standard-IA e S3 One Zone-IA. A diferença do preço entre eles é grande, porém vou focar no S3 Standard pra comparar os preços utilizando a opção mais cara do S3.

 

    O custo do storage S3 Standard atualmente é de $0,0405 GB mês ( Veja os valores : https://aws.amazon.com/pt/s3/pricing ) .

 

    Ou seja, se você tem um filesystem Linux com 1TB de dados, para armazenar todo o backup desse filesystem dentro da infraestrutura do S3 você teria um investimento de $41,47 mês. O valor final por mês é muito barato, se você for criar uma solução própria para gerar backup de 1TB de dados com resiliência de 99,999999999% e disponibilidade de 99,99%, você sem dúvidas iria demandar de mão de obra qualificada e também de hardware... Ou seja, muito mais caro do que armazenar no S3.

 

   E vou mais a fundo, se você analisar os dados de alguns filesystem, você sem dúvidas irá encontrar muita informação antiga que é necessária ser armazenada por questões de auditoria ou regras de segurança, porém não é algo que precisa ficar dentro do servidor. Nesse caso eu te pergunto, por que não Armazenar dentro do S3 ?... o Volume EBS custa no mínimo $0,19 por GB-mês, ou seja, 469.13% mais caro que o armazenamento GB-mês no S3. Em outras palavras, armazenar conteúdo que não é necessário pra continuidade do seu negócio em volumes EBS é quase 5x mais caro 

 

    Mas tudo bem, parece ser fácil falando mas como configurar um Linux pra mandar dados pra um S3 ? Simples, não tem muito segredo. Criei um script e ele está disponível em https://github.com/douglasmugnos/s3sync 
 

    É um script bem simples que necessita de poucas configurações. Segue um passo a passo de como configurar ele :
 

1 - Criar um programmatic id na AWS

2 - Criar um Bucket s3

3 - Instalar o aws cli no seu servidor  (https://docs.aws.amazon.com/pt_br/cli/latest/userguide/installing.html)

4 - fazer download do git no seu servidor/computador Linux

5 - preencher as seguintes variáveis dentro do script s3sync.sh:

 

#S3 Access and Secret Key

export AWS_ACCESS_KEY_ID="YOUR_ACCESS_KEY"

export AWS_SECRET_ACCESS_KEY="YOUR_SECRET_KEY"

 

#S3 Bucket name

S3BUCKET="YOUR_BUCKET_NAME"

 

6 - Colocar o caminho dos diretórios ou arquivos dentro do arquivo backup_list.txt ; Por exemplo :

/home/douglas/Desktop/shellscript/TERRAFORM

/home/douglas/Desktop/shellscript/ESTUDOS

/home/douglas/Desktop/shellscript/FSTABCHECK

/home/douglas/Desktop/shellscript/storage_report.sh

 

Não coloque caracteres especiais e espaços, caso você for fazer isso não esqueça de fazer um escape!

 

7 - FIM!

 

+==+

 

    Agora pra rodar é mais fácil ainda, vou mostrar manualmente, porém o ideal seria configurar no crontab, pra ele executar de X em X horas ou dias. 


    Pra executar basta você digitar o seguinte comando : ./s3sync.sh. Ele ira gerar o backup e armazenar a logs dentro do logs/s3sync-DATA.log . Veja um exemplo da log abaixo : 

 

   O script faz SYNC de dados, ou seja, na segunda vez ele só ira copiar para dentro do S3 os dados que foram atualizados no servidor. 


   Caso você queira gerar versionamento de dados, o script não foi feito pra isso. No entanto o S3 faz isso, basta habilitar o versionamento de dados do seu S3 Bucket, isso irá fazer com que o S3 salve o arquivo anterior a nova versão.

 

   Para melhor exemplificação eu ativei o versionamento do meu bucket S3 e também alterei um arquivo do meu computador. Após isso executei o script novamente.

    Pronto, script finalizou e fez upload da nova versão do meu arquivo README. Como eu ativei o versionamento do meu bucket, ele não irá sobrescrever o meu README anterior, mas ele ira armazenar as duas versões :

 

    Muito simples né ? Único ponto de atenção que eu gostaria de fazer é referente ao versionamento. Note que versionamento armazena todas as versões, isso quer dizer que o espaço das versões não são incrementais, são todas completas. Se você tiver 3 versões de um arquivo de 10MB, no total você ira consumir 30MB. 

 

   Para evitar um aumento muito grande do seu bucket S3 você pode habilitar a funcionalidade de retenção de dados no S3, isso fará com que ele delete arquivos mais velhos que X dias automaticamente.

 

abraços!

 

Quer aprender mais sobre Cloud, Linux  e Shell scripting ? Veja os meus treinamentos em 

https://www.mugnos-it.com/treinamentos

 

Share on Facebook
Share on Twitter
Please reload

Posts Recentes
Please reload

Procurar por tags
Please reload