我们正在启动一个涉及在 S3 中存储大量数据的项目。S3 擅长扩展,我们预计存储桶中最多可容纳 5TB 和数百万个文件。虽然我可能相信亚马逊可以存储数据,但我真的不认为软件绝对不会出错。
我们有 EBS 快照机制,能够将 EBS 卷的状态恢复到之前的状态。但是我们如何才能将存储桶恢复到 3 天前的状态呢?
更新。
这个问题引发了关于“如何备份你的全部的云基础设施?您的灾难恢复计划是什么“如何备份 Route53?CloudFront 设置?从脚本错误或失去对根控制台的访问权限中恢复需要多长时间?
答案1
您备份 S3 存储桶的一般策略是什么?
根据您存储的数据,您可能不想备份 S3 中的数据。例如,如果您拥有一般网站资产,并且已经在其他地方的存储库中拥有副本,那么您可能不需要备份 S3 中的资产。
有时您可能会使用 S3 来存储用户上传的内容。这些内容可能源自 EC2,也可能直接发送到 S3。使用对象版本控制来从脚本错误或用户删除文件但改变主意的情况中恢复是有意义的。http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectVersioning.html
据我所知,版本控制是在对象级别进行的,因此如果您想“恢复到 3 天前的存储桶状态”,则需要构建一个脚本来检查所有版本和日期,并为每个对象请求正确的版本。这是可以做到的,只是需要先在应用程序级别上付出一点努力。
您可以考虑其他方法,例如将所有 S3 存储桶对象同步到另一项服务(第三方服务器或 EBS 支持的 EC2)。这可能是您的每日或每周快照。此方法会增加额外的成本、维护和工作量,因此可能不是最佳解决方案,尤其是对于 5TB 的数据。
“您如何备份整个云基础设施?您的灾难恢复计划是什么?”如何备份 Route53?CloudFront 设置?
根据您想要的程度,所有这些信息都应编写脚本并保存在配置文件中。这些配置文件应该备份。这涉及到 DEVOPS 和基础设施即代码的概念。
从脚本错误或失去对根控制台的访问权限中恢复需要多长时间?
这个问题听起来很难回答。什么样的脚本错误?第一个问题涉及一个例子(一个脚本删除了 S3 上的一个文件),但还有很多。
你可以看看 SimianArmyhttps://github.com/Netflix/SimianArmy
Simian Army 是一套工具,可让您的云保持最佳运行状态。第一个成员 Chaos Monkey 是一款弹性工具,可帮助确保您的应用程序能够容忍随机实例故障
至于对“根控制台”的访问,如果您指的是对操作系统或 EC2 的访问...所有这些都应通过 Puppet/Chef 或类似程序编写脚本,因此您的机器是“一次性”的。它们没有什么特别之处,它们不包含任何单独的用户数据,您可以启动或关闭它们而不会影响您的系统。
如果您谈论的是访问 AWS 控制台,那么您将需要通过电子邮件或电话等方式获取访问权限,否则可能会出现您需要考虑的中断。