Backup de dados armazenados no Amazon S3

15

Eu tenho uma instância do EC2 executando um servidor da Web que armazena os arquivos enviados dos usuários no S3. Os arquivos são gravados uma vez e nunca são alterados, mas são recuperados ocasionalmente pelos usuários. É provável que acumulemos algo em torno de 200 a 500 GB de dados por ano. Gostaríamos de garantir que esses dados sejam seguros, principalmente de exclusões acidentais, e gostaríamos de poder restaurar arquivos que foram excluídos, independentemente do motivo.

Eu li sobre o recurso de controle de versão para buckets do S3, mas não consigo encontrar se a recuperação é possível para arquivos sem histórico de modificações. Veja os documentos da AWS aqui no controle de versão:

link

Nesses exemplos, eles não mostram o cenário em que os dados são enviados, mas nunca modificados e, em seguida, excluídos. Os arquivos excluídos neste cenário são recuperáveis?

Então, pensamos que poderíamos fazer backup dos arquivos S3 para o Glacier usando o gerenciamento do ciclo de vida do objeto:

link

Mas, parece que isso não funcionará para nós, já que o objeto file não é copiado para o Glacier, mas movido para o Glacier (mais precisamente parece ser um atributo de objeto que é alterado, mas de qualquer forma ...).

Portanto, parece que não há nenhuma maneira direta de fazer backup dos dados do S3, e transferir os dados do S3 para servidores locais pode consumir muito tempo e pode incorrer em custos de transferência significativos ao longo do tempo.

Por fim, pensamos em criar um novo intervalo todos os meses para servir como um backup completo mensal e copiar os dados do intervalo original para o novo no Dia 1. Em seguida, usar algo como duplicidade ( link ) sincronizaríamos o intervalo de backup todas as noites. No final do mês, colocaríamos o conteúdo do intervalo de backup no armazenamento do Glacier e criaríamos um novo intervalo de backup usando uma cópia nova e atual do intervalo original ... e repetiríamos esse processo. Parece que isso funcionaria e minimizaria os custos de armazenamento / transferência, mas não tenho certeza se a duplicidade permite transferências de balde para balde diretamente sem trazer os dados para o cliente de controle primeiro.

Então, acho que há algumas perguntas aqui. Primeiro, o controle de versão do S3 permite a recuperação de arquivos que nunca foram modificados? Existe alguma maneira de "copiar" arquivos do S3 para o Glacier que eu perdi? A duplicidade ou qualquer outra ferramenta pode transferir arquivos entre os buckets do S3 diretamente para evitar custos de transferência? Finalmente, estou bem longe da minha abordagem para fazer backup dos dados do S3?

Agradecemos antecipadamente por qualquer informação que você possa fornecer!

Atualizar

A Amazon anunciou recentemente que o controle de versão agora funciona com as regras do ciclo de vida

    
por Fiver 07.11.2013 / 22:48

3 respostas

10

I have read about the versioning feature for S3 buckets, but I cannot seem to find if >recovery is possible for files with no modification history. See the AWS docs here on >versioning:

Eu apenas tentei isso. Sim, você pode restaurar a partir da versão original. Quando você exclui o arquivo, ele faz um marcador de exclusão e você pode restaurar a versão antes disso, ou seja, a revisão única e única.

Then, we thought we may just backup the S3 files to Glacier using object lifecycle >management:

But, it seems this will not work for us, as the file object is not copied to Glacier but >moved to Glacier (more accurately it seems it is an object attribute that is changed, but >anyway...).

O Glacier é realmente destinado ao armazenamento de longo prazo, que é acessado com pouca frequência. Também pode ficar muito caro recuperar uma grande parte de seus dados de uma só vez, já que não é uma restauração pontual de muitos dados (em termos percentuais).

Finally, we thought we would create a new bucket every month to serve as a monthly full >backup, and copy the original bucket's data to the new one on Day 1. Then using something >like duplicity (http://duplicity.nongnu.org/) we would synchronize the backup bucket every >night.

Não faça isso, você só pode ter 100 baldes por conta, portanto, em três anos, você receberá um terço do seu limite de balde com apenas backups.

So, I guess there are a couple questions here. First, does S3 versioning allow recovery of >files that were never modified?

Sim

Is there some way to "copy" files from S3 to Glacier that I have missed?

Não que eu saiba de

    
por 12.11.2013 / 03:34
3

Eu não gosto de ter s3 montado, porque é lento e pode travar e funciona como old school nfs. melhor apenas para cima / baixo, conforme necessário.

http://s3tools.org/s3cmd

é fácil rotear ... não esqueça o seu arquivo ~ / .s3cfg

    
por 12.11.2013 / 03:22
1

Parece que você precisa do S3FS, que basicamente monta seus buckets do S3 como se fossem sistemas de arquivos locais:

link

Eu prefiro usar essa versão bifurcada, pois ela mantém a mesma estrutura de pastas do que é criado no painel de controle da web do Amazon S3:

link

Então eu tenho alguns scripts de shell no lugar que basicamente usam rsync para sincronizar os dados com minhas configurações locais.

Em geral, acho que o S3FS funciona melhor para ler o conteúdo colocado nos buckets do Amazon S3. Escrever não é tão consistente. Mas, para o propósito de fazer backup dos buckets do S3, o fork do S3FS de Tony Wang funciona muito bem.

    
por 07.11.2013 / 23:06