Devo, e como faço, fazer backup do meu banco de dados para um aplicativo web hospedado em um servidor Amazon EC2?

Devo, e como faço, fazer backup do meu banco de dados para um aplicativo web hospedado em um servidor Amazon EC2?

configureiAmazon EC2instância usando a edição do servidor Ubuntu, e instalei oLÂMPADAempilhe sobre ele. Eu criei uma aplicação web PHP rodando em MySQL. Testei o aplicativo web no Amazon EC2 e funciona.

Não lancei oficialmente, mas preciso saber disso antes de lançar. Devo fazer backup dos dados do meu banco de dados? Em caso afirmativo, como devo fazê-lo da forma mais econômica possível?

Anteriormente, para outra aplicação web, escrevi um script Perl ou Bash (não me lembro) que será executado porcrondiariamente.

O script fará backup do banco de dados em um único .sqlarquivo e enviará como anexo de e-mail para minha conta do Gmail.

Esse aplicativo da web estava em hospedagem compartilhada, portanto, eu tinha certeza de que precisava fazer backup do meu banco de dados. Meus arquivos estão no repositório Git, então não estou preocupado com isso.

Para este novo aplicativo da web emAmazon Web Services(AWS), estou indeciso porque:

  1. Não creio que seja uma boa solução, pois os dados enviados por email não são seguros. Pelo que me lembro, não há SSL, embora fosse uma solução barata. Livre. Facilmente recuperável por data.

  2. A Amazon pode ter tornado redundante o backup porque eles já fazem isso. Tudo que preciso saber é como recuperá-lo em caso de desastre (tocar madeira)

    • (suspeito) que existe uma maneira superior e econômica de fazer backup usandoAmazon S3.
  3. Eu permito que os usuários façam upload de arquivos, então também preciso fazer backup desses arquivos. O que eu não sei fazer e nunca fiz isso antes de nenhuma forma.

O que eu quero: um backup diário do meu banco de dados e arquivos de imagem com o melhor custo-benefício possível e um guia passo a passo claro para implementar isso e recuperá-los em caso de desastre.

Fundo:

  • Não estou totalmente familiarizado com a AWS. Só sei tanto quanto abrir uma conta. Isso é tudo.

  • << Um ano de experiência como novato no Ubuntu. A maior parte da minha vida no Windows.

  • Principalmente íntimo da programação PHP. O comando de outras linguagens de programação não é tão bom devido à falta de uso.

Responder1

A Amazon mantém seus arquivos de banco de dados em armazenamento redundante, mas fornece apenas informações limitadas sobre como ele está configurado, portanto, você terá que formar sua própria opinião sobre se isso é ou não adequado às suas necessidades. No entanto, eles não mantêm versões antigas, portanto, isso apenas protegerá você contra falhas de hardware e não contra algum tipo de erro do usuário (o que é mais provável do que falha de hardware).

Além disso, esteja avisado de que se o seu servidor EC2 estiver em um armazenamento de instâncias, os dados serão apagados se o servidor for interrompido. Para armazenamento persistente, seus dados devem estar em um volume Elastic Block Storage (EBS). Quando estiver em um volume EBS, você poderá tirar instantâneos periódicos (manualmente ou automatizados usando a API da Amazon), que permitirão reverter para versões mais antigas. O AWS SDK para PHP é muito bom e você pode encontrá-lo aqui:http://aws.amazon.com/sdkforphp/.

Responder2

A Amazon tem muitos serviços, às vezes pode ficar confuso com todas as diferentes tecnologias. Lembre-se de que a Amazon está criando todos esses serviços para solucionar problemas específicos.

Fazer backup do MySQL no S3 é muito comum e está bem documentado em muitos blogs. Eu recomendo seguir o guia aquihttp://agiliq.com/blog/2009/02/automatically-backup-mysql-database-to-amazon-s3-u/

Nunca presuma nada, o S3 foi projetado para um dispositivo de armazenamento tolerante a falhas, mas isso não me impediria de fazer backup de tudo localmente no meu computador ou com algum outro provedor. Os volumes EBS não são confiáveis ​​o suficiente para serem o único dispositivo de armazenamento para seu backup, muito menos se seu banco de dados também estiver armazenado no mesmo disco.

Seja qual for o método que você escolher, eu seguiria as etapas a seguir ao fazer seu backup

  1. Crie backup diariamente
  2. Envie backup para S3 (certifique-se de usar a soma de verificação MD5 para saber se seu backup está bom)
  3. Baixe o backup do S3 localmente ou em outro provedor que não seja o S3
  4. Limpe backups antigos usando um histórico de tipo de backup contínuo
    • Armazene um backup dos últimos 7 dias
    • Armazene um backup da sexta-feira de cada semana durante 1 mês
    • Armazene um backup do último mês por 1 ano

informação relacionada