我应该如何负责任地备份我的基于heroku / s3 / github的应用程序?

时间:2012-05-07 23:37:08

标签: ruby-on-rails heroku backup

我有一个使用标准postgres数据库在Heroku上运行的rails应用程序,其中包含在s3上托管的图像。

我应该如何负责任地进行备份?

到目前为止,我每月下载我的应用程序代码,s3文件和数据库快照,并将其存储在外部驱动器上。从s3下载我的文件非常慢,我预计随着时间的推移,它会变得更糟。

3 个答案:

答案 0 :(得分:2)

我一直在使用PG Backups Heroku插件:

https://devcenter.heroku.com/articles/pgbackups

它备份你的postgres数据库,并且可以配置为每天存储备份(如果需要,可以更频繁地存储)。我建议将其用于数据库的基本备份。

代码我只是在github(或其他一些git存储库)的存储库中保留一份副本。 Github很棒,我想不出有什么理由去做其他事情。

S3本身非常安全可靠。以下是他们产品信息的摘录:

  

Amazon S3提供高度持久的存储基础架构,专为关键任务和主数据存储而设计。对象冗余地存储在Amazon S3 Region中多个设施的多个设备上。为了确保持久性,Amazon S3 PUT和COPY操作在返回SUCCESS之前将数据同步存储在多个设施中。

如果从S3获得所有文件的安全副本很重要,我可能会设置某种定期安排的批处理作业,将它们复制到服务器,然后我可以单独备份。我过去曾使用 S3工具执行此操作:

http://s3tools.org/s3cmd

答案 1 :(得分:0)

我只需要存档一个网站,在那里访问用于推送它的git repo并不容易获得。我使用heruku cli进行了以下操作。

  • heroku登录
  • heroku git:clone -a your-app-name
  • heroku pg:backups:capture -a your-app-name
  • heroku pg:backups:下载-a your-app-name

完成后,您将拥有代码目录和名为“latest.dump”的数据库转储,我建议您重命名以包含应用程序名称。

所有这些都很容易编写脚本。

答案 2 :(得分:0)

对于自动备份,您只需配置heroku-db-backup-s3 buildpack。并按照文档中的说明重新安排它。