Criando backups com Amazon S3

Backups! Backups!! Backups!!! Afinal precisamos sempre manter backups de nossos arquivos, sejam eles pessoais ou profissionais. Com a facilidade de criar backups hoje em dia, podemos contar com diversos meios para isto, serviços como DropBox, Google Backup entre outros são uma ótima forma de manter seus backups salvos.

[ Hits: 11.659 ]

Por: Percio Andrade Castelo Branco em 07/07/2016


O que é o Amazon S3



Você tem autonomia completa sobre seus arquivos?

Pensando nisto a Amazon lançou o Amazon S3, que é um poderoso sistema de backup onde você controla ciclo de vida de arquivos, versionamento, aceleramento de transferência, entre outros diversos tipos de controle o que lhe dão uma autonomia sem igual para os arquivos.

Sem dúvidas o Amazon S3 vale a pena de utilizar.

Para conhecer mais acesse:
Como posso utilizar o Amazon S3? Esta pergunta vai variar, se você é um simples usuário, poderá contratar empresas que utilizam o serviço e repassam a você, porém este artigo é voltado ao desenvolvedor e a possibilidade que temos junto a este sistema, sendo assim, poderá utilizar o S3 em praticamente tudo, integrado a sistemas ou mesmo ao SO do seu servidor.

Neste artigo estarei ensinando o básico da automatizando e criação do Amazon S3 em seu sistema Linux, ele não será integrado com nenhum webservice como Apache, utilizando apenas o método de upload como FTP.

Instalação

Requerimentos:
  • Servidor Linux ( preferencialmente CentOS )
  • Memória acima de 500mb
  • HD acima de 40GB
  • LibFuse 2.9.4 ou superior
  • LibS3fs

Vamos começar instalando as ferramentas de desenvolvimento:

# yum install -y libstdc++-devel curl-devel automake gcc gcc-c++ git libxml2-devel make openssl-devel

Vamos inicialmente começar instalando as ferramentas de desenvolvimento:

# yum install -y libstdc++-devel curl-devel automake gcc gcc-c++ git libxml2-devel make openssl-devel

Em seguida vamos compilar o libfuse:

# cd /usr/local/src/
# mkdir fuse
# wget http://pkgs.fedoraproject.org/repo/pkgs/fuse/fuse-2.9.4.tar.gz/ecb712b5ffc6dffd54f4a405c9b372d8/fuse-2.9.4.tar.gz -O fuse.tar.gz tar -xvf fuse.tar.gz -C fuse/ && cd fuse/fuse*
# ./configure --prefix=/usr/local
# make
# make install
# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
# ldconfig
# modprobe fuse


Em seguida vamos compilar o s3fs, que pode ser encontrando aqui:
# cd /usr/local/src/
# git clone https://github.com/s3fs-fuse/s3fs-fuse.git && cd s3fs-fuse
# ./autogen.sh
# ./configure
# make
# make install


Vamos habilitar o S3fs no sistema:

# ed -s /etc/ld.so.conf <<< $'1i\n/usr/local/lib/\n.\nwq'

Vamos instalar um servidor de FTP, neste artigo utilizaremos o VSFT:

# yum install -y vsftpd

Vamos configurar algumas opções básicas do VSFTP como conexões, ip etc, estas modificações podem ser alteradas de acordo com a configuração de seu sistema:

# sed -i 's/anonymous_enable=YES/anonymous_enable=NO/g' /etc/vsftpd/vsftpd.conf
# ed -s /etc/vsftpd/vsftpd.conf <<< $'1i\npasv_enable=YES\n.\nwq'
# ed -s /etc/vsftpd/vsftpd.conf <<< $'1i\npasv_min_port=1024\n.\nwq' # ed -s /etc/vsftpd/vsftpd.conf <<< $'1i\npasv_max_port=1048\n.\nwq'
# ed -s /etc/vsftpd/vsftpd.conf <<< $'1i\nuserlist_deny=NO\n.\nwq'
# ed -s /etc/vsftpd/vsftpd.conf <<< $'1i\npasv_address=CHANGE_HERE_IP\n.\nwq'


Configurando o IP do servidor no FTP:

# IP=$(curl --silent http://ipecho.net/plain) && sed -i "s/pasv_address=CHANGE_HERE_IP/pasv_address=$IP/g" /etc/vsftpd/vsftpd.conf
# sed -i "s/#chroot_local_user=YES/chroot_local_user=YES/g" /etc/vsftpd/vsftpd.conf


Reiniciando servidor de FTP:

# /etc/init.d/vsftpd restart

Verifique se a conexão vai ocorrer normalmente:

# telnet IP_DO_SERVIDOR 21

Se tudo ocorreu bem, podemos ir para a próxima etapa.

    Próxima página

Páginas do artigo
   1. O que é o Amazon S3
   2. Configuração
   3. Automatização
Outros artigos deste autor

Backups com Amazon S3

Leitura recomendada

TimeShift - Restaure seu Linux com eficiência

Clonezilla - Gerando e restaurando backups completos (Parte I)

Clonezilla - Servidor de imagens (Parte II)

Clonar HD com o comando pv salvando em .img

Utilizando Ubuntu live-CD/USB para backup com PartImage

  
Comentários
[1] Comentário enviado por fabio em 07/07/2016 - 02:53h

Muito bom! Eu já usava o Amazon EC2 e não tinha conhecimento sobre o E3. Acabei de criar um bucket e já estou usando! Vou aposentar meu Dropbox.

A instalação no Debian é bem simples:

# apt-get install s3fs

Depois é criar o arquivo ~/.passwd-s3 usando o procedimento do artigo e montar o diretório usando o comando s3fs conforme explicado aqui.

[2] Comentário enviado por Tacioandrade em 08/07/2016 - 00:35h

Só uma dica sobre o s3fs, fazendo uso dele com mais de um servidor ao mesmo tempo, acesso simultâneo ao mesmo arquivo irá corrompe-lo. Quem me passou isso foi um amigo que o utilizou e acabou perdendo dezenas de arquivos. =/

Att. Tácio Andrade.

[3] Comentário enviado por percioandrade em 08/07/2016 - 02:36h

É verdade e a resposta é devido a forma como ele trata os arquivos e suas limitações:

S3 LIMITATIONS

Objects can contain a maximum of 5GB.
You can't update part of an object. If you want to update 1 byte in a 1GB object you'll have to reupload the entire GB.

High risk for data corruption, due to the delayed writes (e.g., your system or the connection to AWS fails). Journaling doesn't help because as far as the filesystem is concerned the blocks have already been written (I.e., to S3Backer's cache).

Aqui tem toda a explicação do S3 e do S3FS: https://www.turnkeylinux.org/blog/exploring-s3-based-filesystems-s3fs-and-s3backer

O S3FS recomendo para uso pessoal, mas o Amazon S3 existe "N" maneiras de montar como um webserver por exemplo onde é possível ultrapassar estas limitações e fazer múltiplos acessos.

[4] Comentário enviado por baptista em 21/07/2016 - 19:09h

Quem quiser aprender mais sobre o AWS, temos um treinamento online em nosso site:

http://cursos.escolalinux.com.br/curso/aws-para-devops-20-horas


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts