我正在build立一个networking应用程序,可能会满足亚马逊S3可以满足的大量存储需求。
我主要关心的是在服务器上使用API密钥,以及未经授权的人如何以某种方式利用服务器,获取密钥并使用它们销毁S3存储桶中的所有数据。
首先想到的是S3进出数据传输相当昂贵。 如果你经常备份(就像你应该做的那样),那么成本可能会随着转会费而失控。 也就是说,为了回答你的问题,备份应该从一个单独的,经过强化的服务器上执行,而这个服务器的唯一任务就是执行备份。 没有apache,只能通过使用密钥authentication的SSH远程访问等。如果你做这些事情,并确保只有less数人能够访问服务器,你的密钥应该是相当安全的。 如果你确实是偏执的人,你可以对包含你的密钥的文件进行pgpencryption – 但是这种方法的问题在于,每次备份作业运行时都需要input密码。 这可能不是你想要注册的东西,对吗?
在听说您的限制性预算之后,我不禁想到,改变存储策略会更好。 我不确定你的服务器情况是什么,但是你可以在服务器上本地托pipe文件,然后使用S3进行备份? 有一个名为duplicity的好备份脚本,可以对S3(在其他几个后端存储types中)执行压缩,encryption,增量备份。
[编辑]如果你最终在S3上托pipe并备份到本地磁盘,那么S3 API中有一个“If-Modified-Since” 标题 ,这将有助于执行增量备份。 对于这样的备份,你很可能需要自己做一些东西,尽pipe这不会太困难。 只需使用SimpleDB / BerleleyDB / etc来存储关于你已经备份了哪些文件的元信息以及它们驻留在磁盘上的指针。 将元信息保存在数据库中还可以快速validation备份以及创build备份作业的报告。
即使我有同样的问题,我所做的是我写了一个简单的bash脚本来做到这一点,但我在一个地区工作正常,它不适用于多个地区,这里是脚本http://geekospace.com /备份和恢复-的数据库,二,AWS-EC2-实例间/