ACLClouds
ACLClouds

Fazer backup de um VPS: uma estratégia simples

A regra 3-2-1, restic ou borg para cifrar e deduplicar, e o teste de restauro que prova que a cópia serve para alguma coisa.

Um backup que nunca foi restaurado é apenas uma hipótese. Uma cópia só existe se a fizer: um VPS sozinho não protege os seus dados. Uma estratégia simples resume-se a três ideias: uma regra para as cópias, uma ferramenta que cifre e um teste de restauro regular.

  • Regra 3-2-1: três cópias, dois suportes, uma cópia fora do VPS.
  • O restic ou o borg cifram e deduplicam: a palavra-passe do repositório tem de ficar fora do servidor.
  • Um backup não restaurado não está comprovado: teste o restauro uma vez por mês.

A regra 3-2-1

Três cópias dos seus dados, em pelo menos dois suportes diferentes, uma delas fora do VPS. Esta regra evita que uma única falha, um erro manual ou um ataque apague tudo.

  • Cópia 1: os dados em produção, no VPS.
  • Cópia 2: um backup noutro suporte, por exemplo um armazenamento remoto acessível por SFTP ou um disco do seu PC.
  • Cópia 3: um segundo backup fora do VPS, de preferência com outro fornecedor ou noutro local.

Escolher a ferramenta: restic ou borg

O restic e o borg criam backups cifrados, deduplicados e incrementais: só são enviados os blocos alterados. Escrevem para SFTP, S3 ou um disco local. Ambos são software livre e instalam-se facilmente em Debian ou Ubuntu.

  • sudo apt install -y restic
  • export RESTIC_REPOSITORY=sftp:[email protected]:/srv/restic: endereço do repositório, a adaptar ao seu espaço de armazenamento.
  • restic init cria o repositório apenas uma vez. A palavra-passe de cifra deve ficar guardada fora do VPS.

Agendar, limpar e testar

Um backup agendado corre sem si. Precisa também de limitar o número de versões guardadas, para o armazenamento não encher, e de verificar o repositório de vez em quando. A base de dados deve ser exportada antes de copiar os ficheiros, para ficar coerente.

  • mysqldump wp_exemple > /root/base.sql, e depois restic backup /root/base.sql /var/www: um script executado todas as noites pelo cron ou por um temporizador systemd.
  • restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune: guarda 7 versões diárias, 4 semanais e 6 mensais.
  • restic restore latest --target /root/teste-restauro, e depois compare os ficheiros. Um teste por mês basta para detetar falhas.

Perguntas frequentes

Um snapshot do fornecedor chega?

Um snapshot é útil antes de uma atualização arriscada, mas fica ligado à mesma conta e à mesma plataforma. Não substitui uma cópia externa.

Com que frequência devo fazer backup?

Um backup diário chega para a maioria dos sites. Se uma base mudar muito, aumente a frequência: a perda aceitável mede-se em horas de dados.

O que acontece se perder a palavra-passe do restic?

O repositório fica ilegível, sem qualquer forma de recuperação. Guarde essa palavra-passe num gestor de palavras-passe ou em papel, fora do VPS.