2013-03-05 82 views
10

作为我们项目的一部分,我们在S3上创建了一个非常繁重的文件夹/文件树,所有文件占用大约6TB的数据。我们目前没有备份这些不好的数据。我们想定期备份。似乎冰川是要走的路。AWS:在将S3文件备份到Glacier的同时降低成本的方法?

问题是:有哪些方法可以使备份的总成本降低?

我们的大多数文件都是文本,所以我们可以压缩它们并上传整个ZIP存档。这将需要处理(在EC2上),所以我很好奇是否有任何经验法则来比较运行EC2实例进行压缩与仅上传未压缩文件的额外成本。此外,我们将不得不支付数据传输,所以我想知道是否有任何备份方式,除了(i)从S3下载文件到实例; (ii)以原始形式上传文件或将文件上传至Glacier。

+0

我们终于厌倦了处理从冰川恢复的通常3-5小时的长延迟以及隐藏的成本因素。 我们最终创建了一个程序,用于同步和创建我的存储桶的快照,其中包括使用S3 Reduced Redundancy Storage来更好地接近Glacier的成本节约优势。 它在过去几年对我们很好,所以我们最终把它变成了一个商业产品。 您可以在[BucketBacker](https://www.bucketbacker.com/) – Krafty 2015-03-14 14:57:24

回答

18

我一般认为冰川作为替代存储到S3,而不是额外存储。即,数据通常会存储在S3或Glacier中,但很少会同时存在。

如果您相信S3公布的十一个耐久性九,那么您不会备份,因为S3本身很可能会丢失数据。

您可能需要备份数据,因为(像我一样),您将亚马逊帐户视为单点故障(例如,凭据被泄密或亚马逊阻止您的帐户,因为他们认为您正在做一些滥用行为)。然而,在这种情况下,冰川仍然不足以支撑亚马逊雨伞。

如果您担心由于用户错误,凭证泄露等原因而丢失S3中的数据,我建议您在Amazon之外备份S3数据。

我建议使用Glacier作为存放长期低价存储数据的地方,因为如果您知道您不需要访问它,那么这个存储空间会很大。当事情转移到冰川时,你会从S3中删除它们。

亚马逊提供从S3到Glacier的自动存档,效果很好,但是如果文件的平均大小很小,请小心额外的费用。下面是我对这种危险写了一篇文章:

过渡S3对象的成本冰川
http://alestic.com/2012/12/s3-glacier-costs

如果仍想复制从S3到冰川,这里是与你的问题的一些点:

  • 你大概会把数据留在冰川很长一段时间,所以压缩它可能是值得的短期CPU使用率。确切的折衷取决于诸如数据的可压缩性,压缩需要多长时间以及需要多长时间执行一次压缩等因素。

  • 将数据从S3下载到EC2实例不收取任何费用。没有数据传输费用向Glacier上传数据。

  • 如果您上传很多小文件到Glacier,则每件商品的上传费用可能会相加。您可以通过将许多小文件合并到档案并上传来节约成本。

另一个S3的功能,可帮助防止通过用户错误或攻击意外损失是打开S3版本并启用MFA(多因素认证)。这可以防止任何人能够永久删除对象,除非他们拥有凭据加上您拥有的物理设备。

+3

Eric完全免费试用全功能2周试用版,感谢您的详细解答。我想做备份的主要原因是,现在我们团队中的任何成员(包括研究生,教授,专业软件开发人员和其他人员)都可能意外地删除S3上的整个子树,但只是一次错误的移动(“删除文件夹”)。但是,也许答案就是做出类似于你在回复底部所描述的内容。 – 2013-03-06 14:31:05

+7

就像IZ一样,我认为到目前为止,造成灾难性数据丢失的最可能原因是我的错误。意外删除一个存储桶,或者运行一个相同的脚本。在这种情况下,冰川的副本提供了一个安全网。 – Micah 2013-04-26 14:17:53

+0

我对同样的事情感兴趣,目前正在与亚马逊讨论选项。有一种简单的方法可以将数据(归档)从S3移动到Glacier,但不能复制数据(备份)。如果您处理数百TB的数据,则将其全部下载到ec2实例,然后将其上传到Glacier可能需要很长的时间并花费太多,以至于不值得这样做。 S3确实需要备份大量数据的路径。在客户付费的生产系统中,这太危险了。 – d512 2013-08-07 22:38:32

1

我最初解决同样的问题在我的S3桶,我想通过做备份如下:

  1. 为每个S3斗我想备份到冰川第二个“镜子”斗
  2. 推出微Ubuntu的服务器实例运行cron作业
  3. 服务器
  4. 写一个shell脚本,从每个桶中的所有对象同步到镜桶
  5. 使生活在安装s3cmd在镜桶周期规则,每个对象的状态更改为“冰川”

这只是正常的,但我决定为我的目的,这是更容易在我的桶刚启用版本。这确保了如果一个对象被意外删除或更新,它可以被恢复。这种方法的缺点是恢复整个分支或子树的过程可能非常耗时。但它更容易,更具成本效益,并且足以保护水桶的内容免受永久性破坏。

希望能帮助别人。

+1

版本控制是否防止使用AWS管理控制台UI意外删除整个“文件夹”?我试图删除版本化存储桶中的文件夹,但我没有看到任何方法来恢复它。 – Turar 2014-05-28 22:17:26