ti-enxame.com

Como faço backup de um bucket da AWS S3 sem versionar o bucket de origem

Existe alguma maneira de se recuperar de exclusões acidentais de um Amazon S3 Bucket?

Temos informações críticas em nossos buckets e preciso reduzir o risco de exclusões acidentais ou maliciosas do próprio bucket.

Eu sei que posso sincronizar todo o bucket localmente, mas isso não é muito prático se o tamanho do meu bucket for 100 GB.

Alguma idéia sobre estratégias de backup?

44
Nikhil Gupte

Outra abordagem é habilitar a versão S3 no seu bucket. Você pode restaurar os arquivos excluídos, etc. consulte a documentação do S3 para saber como habilitar isso

O uso de ferramentas de terceiros como BucketExplorer torna o trabalho com versionamento bastante trivial (em vez de chamar a API diretamente).

Você também pode ativar a exclusão de autenticação multifator para seus buckets S3 - o que dificulta um pouco a "exclusão acidental";)

Mais informações sobre exclusão de autenticação multifatorial
Mais sobre exclusão de objetos

23
snarkyboojum

Você poderia usar s3cmd http://s3tools.org/s3cmd

Então, para fazer backup de um balde chamado mybucket

s3cmd mb s3://mybucket_backup
s3cmd --recursive cp s3://mybucket s3://mybucket_backup
13
Ian Purton

Esta não é uma solução barata, mas se seus buckets forem realmente críticos, veja como fazer isso: inicialize um instância do Amazon EC2 e sincronize o conteúdo periodicamente.

O Amazon EC2 é seu provedor de hospedagem de virtualização. Você pode criar instâncias do Linux, Windows, etc e executar o que quiser. Você paga por hora e obtém um espaço de armazenamento bastante grande localmente para esse servidor. Por exemplo, eu uso a instância de tamanho "grande", que vem com 850 GB de espaço em disco local.

O legal é que ele está na mesma rede que o S3 e você obtém transferências ilimitadas entre o S3 e o EC2. Uso o software $ 20 Jungle Disk em uma instância do Windows EC2, que permite acessar meus buckets S3 como se fossem pastas de disco locais. Em seguida, posso fazer arquivos em lote agendados para copiar coisas do S3 e no espaço em disco do EC2 local. Você pode automatizá-lo para manter backups de hora em hora, se quiser, ou se quiser jogar, configure o JungleDisk (ou seus equivalentes no Linux) para sincronizar uma vez por hora. Se alguém excluir um arquivo, você terá pelo menos alguns minutos para recuperá-lo do EC2. Eu recomendaria os backups regulares com script - é fácil manter alguns dias de backups se você os estiver compactando em um volume de 850 GB.

Isso é realmente útil para o envio de logs do SQL Server, mas também posso ver como ele alcançaria seu objetivo.

7
Brent Ozar

Uma solução possível poderia ser apenas criar um "depósito de backup" e duplicar suas informações confidenciais. Em teoria, seus dados são mais seguros no S3 do que no disco rígido.

Além disso, não tenho certeza se as exclusões acidentais são um problema real, pois você precisará acidentalmente excluir todas as chaves do seu balde antes de poder excluí-lo.

7
JAG

Modificar um pouco a resposta (excelente) de Brent; você não precisa manter a instância em execução. Crie uma AMI EC2 que puxe seus dados para baixo, sincronize-os com um volume EBS, faça uma captura instantânea desse volume e desligue-se.

Você pode manter o volume funcionando por si só, mas a captura de imagem deve ser suficiente para um backup. Se a sua AMI personalizada fizer tudo isso (incluindo o desligamento após a conclusão) sem interação, o script 'backup' precisará apenas 'ec2run -n 1 -t m1.small AMI-' e disparar e esquecer.

6
Andrew Lusk

Outra solução possível é replicar seu bucket para a zona da Europa no S3. Isso pode persistir no intervalo após a exclusão acidental por tempo suficiente para se recuperar.

6
shawnswaner