Backup com Git no Amazon S3

Depois de cogitar várias maneiras de realizar backup diário de banco de dados e arquivos que foram subidos por usuários, como imagens e documentos, resolvi experimentar o Git e ver se ele resolve esse tipo de problema, apesar de ser um software de controle de versão. Mas antes disso, vou apresentar os problemas do método mais comum de backup.

O método mais comum de backup utilizado entre os sysadmins é gerar um arquivo compactado contendo a data atual no nome do arquivo. A desvantagem é que esse método não escala, principalmente, quando há a preocupação com espaço disponível em disco ou cota de armazenamento em servidores externos. O problema de espaço em disco pode ser contornado excluindo os últimos X arquivos compactados, porém essa solução gera outro problema: o histórico dos arquivos deixam de existir.

No meu caso, estou utilizando o Amazon S3 para armazenar os arquivos de backup. Entretanto o Amazon S3 não oferece suporte para repositórios Git e eu precisava de alguma solução pra esse problema. Uma dessas soluções seria simular um disco rígido através do JungleDisk, mas acabei optando pelo método mais simples, que é sincronizar os arquivos que ficam dentro da pasta git com minha conta no Amazon.

Como eu precisava exportar o banco de dados MySQL também, acabei criando um script que faz tudo isso. Vale ressalvar que esse script requer o comando s3cmd instalado na sua máquina.

August 2, 2011