Alguma necessidade de fazer backup de dados no Amazon S3?

16

Estou hospedando 200 GB de imagens do produto no S3 (este é meu principal host de arquivos).

Preciso fazer backup desses dados em outro lugar ou o S3 é seguro como está?

Eu tenho experimentado montar o bucket S3 em uma instância do EC2 e depois fazer um backup noturno do rsync. O problema é que são cerca de 3 milhões de arquivos, por isso leva um tempo para gerar as diferentes necessidades de rsync. O backup, na verdade, leva cerca de 3 dias para ser concluído.

Alguma idéia de como fazer isso melhor? (se for mesmo necessário?)

Chrille
fonte

Respostas:

5

Eu tenho pesquisado sobre isso, bastante engraçado.

Seus backups para o S3 podem falhar dependendo da sua região devido à consistência eventual; o aviso básico é que, se você fizer isso o suficiente, em algum momento ocorrerá erros ao abrir ou localizar arquivos, pois a mágica do sistema de arquivos no fundo da Amazon é sincronizada entre os servidores; portanto, seus backups podem não ser confiáveis.

Quanto à necessidade de salvá-los de outra maneira, isso depende do seu gerenciamento de riscos. Você confia na Amazon para armazenar seus dados?

É possível que eles percam alguma coisa ou tenham uma falha maior no sistema de armazenamento; sem dúvida, eles têm cláusulas nos contratos especificando que, se perderem seus dados, isso é problema seu . Não deles. Além disso, como seus dados estão armazenados em outro lugar, você não sabe o que eles farão com eles; aplicação da lei quer seus dados? Você pode nem saber que outra pessoa acessou.

Você confia nisso? Se os dados não são essenciais para os seus negócios e você está disposto a aceitar esse risco, não há necessidade de fazer o download para armazenamento externo. Se você não estiver disposto a arriscar que seus dados estejam seguros nos servidores de armazenamento da Amazon, você deve tomar providências para despejá-los periodicamente em seu próprio armazenamento.

Em outras palavras, acho que não há uma resposta direta para isso, pois depende de sua tolerância a riscos e necessidades de negócios. Muitas pessoas não confiariam completamente sua renda apenas no armazenamento na nuvem, pessoalmente, me sinto um pouco cauteloso com isso ...

Para fazer isso melhor, em discussões e pesquisas, outra abordagem a considerar é a criação de um volume EBS grande o suficiente para armazenar os dados, anexá-lo à instância do EC2, salvar seus dados lá e desmontar o volume e salvá-los no S3 . Estou no meio da pesquisa se isso seria feito para salvar o próprio arquivo de volume no S3 ou o conteúdo ... mas você pode excluir a instância do EBS quando terminar para economizar custos de armazenamento.

EDIT Vejo na releitura que você está salvando do S3 para a instância do EC2, e não vice-versa (embora eu não saiba se o eventual problema de consistência ainda pode causar problemas). Você está tentando salvar dados em uma instância do EC2 como backup? Eu pensaria que em termos de custo isso não é uma tática sólida; pode ser mais barato fazer o backup de uma unidade local quando você considera o armazenamento de longo prazo desse tipo de dados, juntamente com o tempo da VM. Com os custos de unidade, você pode copiar os dados para um disco local como backup.

Eu ainda manteria os avisos sobre confiar na Amazon e em seu armazenamento. Se você deseja manter tudo no Amazon S3, mas tem mais redundância, duplique seus buckets S3 entre regiões e, se houver uma interrupção que afeta uma região, ela não deve eliminá-los. Você esperaria. Tudo é possível, no entanto.

Tudo se resume a quanto você valoriza seus dados, quanto você está disposto a pagar por eles e quanto risco deseja tolerar.

Bart Silverstrim
fonte
Obrigado pela sua resposta, mas acho que você não entendeu. Estou usando o S3 como meu armazenamento principal (estou hospedando os arquivos diretamente de lá como um CDN). Então, minha pergunta era se os arquivos estão seguros lá ou se eu preciso fazer um backup deles em algum lugar (pode ser para outro bucker S3 ou uma instância do EC2)?
Chrille
Adicionado em uma edição.
Bart Silverstrim
Hmm, sim, talvez um backup local seja mais seguro. Você sabe se o S3 e o EC2 compartilham o mesmo hardware - se falhar, o backup do S3 e do EC2 desapareceria? Meus dois motivos para fazer um backup no EC2 são: (1) Não há taxa de transferência entre o EC2 e o S3. Custaria praticamente copiar 200 GB localmente semanalmente, aproximadamente. (2) no caso de um desastre no S3, eu poderia converter rapidamente minha instância do EC2 para compartilhar as imagens do backup. Mas eu entendo um backup local tem muitas vantagens também ...
Chrille
Sinceramente, não sei como o hardware da Amazon é configurado em segundo plano; mesmo que eu soubesse, não há garantia de que eles não mudarão no futuro.
Bart Silverstrim
4

Eu usei o s3cmd s3cmd sync para fazer isso. É um pouco parecido com o rsync em sua operação e pode empurrar e puxar diretórios inteiros entre o S3 e outro sistema linux de sua escolha.

Não vejo motivo para não ter s3cmd syncconseguido executar uma instância do EC2 ou mesmo sua própria estação de trabalho de desenvolvedor (ou um servidor de armazenamento).

Convém configurar uma instância de VPC e, em seguida, atribuir a um pequeno nó dentro de sua VPC a função de servidor de backup e atribuir a ele um IP dentro da rede da Amazon e dentro de sua sub-rede local.

Tom O'Connor
fonte
Minha preocupação, que ele teria que decidir com suas próprias finanças, é o custo de manter uma instância do EC2 e o espaço do EBS para armazenar esse tipo de dados em comparação com salvá-los em um disco rígido externo local por algumas centenas de dólares. Se o dinheiro permite que as taxas de transferência eu tinha acabado de fazer o download para uma unidade local e manter isso em sincronia periodicamente (que também foi parte de sua solução dada.)
Bart Silverstrim
O EC2 da Amazon não é barato em nenhuma medida do termo, especialmente se você deseja fazer em nível empresarial ou qualquer outra coisa que não seja simples. Se você não gosta disso, talvez não seja para você.
Tom O'Connor
@ BartSilverstrim: a transferência na AWS não é gratuita? Nesse caso, pode ser mais barato copiar para o EC2 do que localmente. Eu tenho uma instância do EC2 executando 24/7, de qualquer maneira, portanto, é apenas o espaço do EBS que custaria.
Chrille
2

Meu conselho é que seus dados são de sua responsabilidade, não da Amazon. Se a perda de dados não é um problema, não faça seu próprio backup. Se for, leve seu próprio backup para (no mínimo) um JBOD barato (e verifique regularmente) como eu.

Você descobrirá quanta responsabilidade a Amazon está disposta a assumir pelos seus dados, no dia em que eles os perderem.

Tom Donnelly
fonte
0

Se você pode pagar (como eu faço isso) é ter todos os meus dados armazenados no meu servidor, mas puxando-os do Amazon s3. Portanto, se a Amazon cair por qualquer motivo (touch wood), eu posso simplesmente extrair todos os meus dados instantaneamente diretamente do meu servidor. No meu servidor, faço backups mensais para minha unidade local. Como meu site tem mais de 2 TB no site.

daniel27lt
fonte
Acho um pouco claro qual é a sua recomendação. Qual é o seu servidor e onde ele está localizado?
kasperd
0

Embora esse seja um tópico antigo, é a primeira coisa que surge no backup do Googling S3, por isso pensei em adicionar ...

Pesquisando sobre isso, descobri o Rclone https://rclone.org/ - é um software rsync-ish projetado para copiar entre serviços de armazenamento de arquivos na nuvem e suporta a maioria deles. Não tenho afiliação e ainda não a usei, então não posso dizer se é bom ou ruim, mas achei que poderia ajudar alguém.

Parece-me que há uma oportunidade para um serviço hospedado que faz backups 'externos' de arquivos hospedados na nuvem (S3, Google Storage, Rackspace Cloud Files, etc) ....

ckm
fonte