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?
Respostas:
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 este
O uso de ferramentas de terceiros como o 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 autenticação multifator Excluir
mais informações sobre exclusão de objetos
fonte
Você poderia usar o s3cmd http://s3tools.org/s3cmd
Então, para fazer backup de um balde chamado mybucket
fonte
Essa não é uma solução barata, mas se seus buckets forem realmente críticos, veja como você faz isso: inicialize uma 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 do S3 e você obtém transferências ilimitadas entre o S3 e o EC2. Uso o software Jungle Disk de US $ 20 em uma instância do Windows EC2, que permite acessar meus buckets S3 como se fossem pastas de disco local. 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 Linux) para sincronizar uma vez por hora. Se alguém excluir um arquivo, você terá pelo menos alguns minutos para recuperá-lo do EC2. No entanto, eu recomendaria os backups regulares com script - é fácil manter alguns dias de backup 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.
fonte
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á excluir acidentalmente todas as chaves do seu balde antes de poder excluí-lo.
fonte
rm -rf
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.
fonte
Modificar um pouco a resposta (excelente) de Brent; você não precisa manter a instância em execução. Crie uma AMI do EC2 que abaixa seus dados, sincroniza-os com um volume EBS, captura instantâneos desse volume e desliga-se.
Você também pode manter o volume em execução sozinho, 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.
fonte