Eu tenho uma instância do EC2 executando um servidor Web que armazena os arquivos enviados pelos usuários no S3. Os arquivos são gravados uma vez e nunca mudam, mas são recuperados ocasionalmente pelos usuários. Provavelmente, acumularemos algo em torno de 200 a 500 GB de dados por ano. Gostaríamos de garantir que esses dados sejam seguros, principalmente contra exclusões acidentais e que possamos restaurar arquivos que foram excluídos, independentemente do motivo.
Eu li sobre o recurso de versão dos buckets do S3, mas não consigo descobrir se é possível recuperar arquivos sem histórico de modificações. Consulte os documentos da AWS aqui sobre controle de versão:
http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectVersioning.html
Nesses exemplos, eles não mostram o cenário em que os dados são carregados, mas nunca modificados e, em seguida, excluídos. Os arquivos excluídos nesse cenário são recuperáveis?
Então, pensamos que poderíamos simplesmente fazer backup dos arquivos S3 no Glacier usando o gerenciamento do ciclo de vida do objeto:
http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
Mas parece que isso não funcionará para nós, pois o objeto de arquivo não é copiado para o Glacier, mas movido para o Glacier (com mais precisão, parece que é um atributo do objeto que foi alterado, mas de qualquer maneira ...).
Portanto, parece que não há uma maneira direta de fazer o backup dos dados do S3, e a transferência dos dados do S3 para os servidores locais pode consumir muito tempo e incorrer em custos de transferência significativos ao longo do tempo.
Por fim, pensamos em criar um novo depósito todos os meses para servir como backup completo mensal e copiar os dados do depósito original para o novo no dia 1. Em seguida, usar algo como duplicidade ( http://duplicity.nongnu.org/ ) sincronizamos o intervalo de backup todas as noites. No final do mês, colocaríamos o conteúdo do depósito de backup no armazenamento do Glacier e criaríamos um novo depósito de backup usando uma nova cópia atual do depósito 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 primeiro os dados para o cliente de controle.
Então, acho que há algumas perguntas aqui. Primeiro, o versionamento 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 muito errado em minha abordagem de backup de dados S3?
Agradecemos antecipadamente por qualquer insight que você possa fornecer!
Atualizar
A Amazon anunciou recentemente que o controle de versão agora funciona com regras de ciclo de vida
Respostas:
Eu apenas tentei isso. Sim, você pode restaurar a partir da versão original. Quando você exclui o arquivo, ele cria um marcador de exclusão e você pode restaurar a versão anterior, ou seja: a única revisão.
A geleira é realmente destinada ao armazenamento de longo prazo, que é acessado com pouca frequência. Também pode ser muito caro recuperar uma grande parte de seus dados de uma só vez, pois não se destina à restauração pontual de muitos dados (porcentagem).
Não faça isso, você pode ter apenas 100 buckets por conta; portanto, em três anos, você terá um terço de seu limite de buckets apenas com backups.
sim
Não que eu saiba
fonte
Eu não gosto de ter s3 montado, porque é lento e pode travar e funciona como NFS da velha escola. melhor apenas para cima / baixo, conforme necessário.
é fácil de escrever ... não esqueça o arquivo ~ / .s3cfg
fonte
Parece que você pode precisar do S3FS, que basicamente monta seus buckets S3 como se fossem sistemas de arquivos locais:
http://code.google.com/p/s3fs/wiki/FuseOverAmazon
Prefiro usar esta versão bifurcada, pois ela mantém a mesma estrutura de pastas que é criada no painel de controle da web para o Amazon S3:
https://github.com/tongwang/s3fs-c
Depois, tenho alguns scripts de shell 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, com o objetivo de fazer backup de buckets S3, o garfo Tony Wang do S3FS funciona muito bem.
fonte