备份:Amazon S3或Glacier - 很多小文件?

时间:2013-02-01 17:58:52

标签: amazon-web-services backup amazon-glacier

我正在尝试了解复杂的Amazon Glacier定价模型。我不想存储大量数据,几GB说10。我希望永远不要下载文件,如果我确实需要,我不在乎需要多长时间。

我上传的每个文件是否有成本?压缩大量小文件并以几个块上传或10,000个说图像无所谓是否更便宜? (在搜索过程中无法直接回答这个问题)

我是否可以请求下载整个存档/存储桶,还是逐个文件?

4 个答案:

答案 0 :(得分:39)

我知道这有点老了,但你仍然可以找到我的答案(我希望)。另一个答案基于S3,这不是我相信的问题。

Glacier适用于罕见的文件访问。考虑到这一点,如果您需要一次检索多个文件,他们会惩罚您。 在您的特定情况下,我建议上传10.000个单独的文件而不是让我们说100个ZIP文件,每个文件包含100个文件。原因很简单。 Glacier将允许您免费下载总存档的5%,并按比例分配。因此,例如,如果您需要下载周末拍摄的10张照片,那么如果它们在保险库中传播,您将可以免费获得这10张照片。另一方面,如果你的ZIP文件里面有100张照片,你将被迫下载那个可能超过总存档5%的zip文件,这意味着你将支付一些检索费用。

上传较少文件有意义的唯一原因是避免高上传请求(10.000文件通常意味着10.000个请求)。请求收取每1000美元0,05美元。此费用远低于检索费用(考虑到所施加的限制),这就是为什么我总是建议上传单独的文件。当然,你可以压缩有意义的文件。

Amazon Glacier的检索成本非常复杂。他们在这里有一个很好的解释: http://aws.amazon.com/glacier/faqs/#How_much_data_can_I_retrieve_for_free 但即使在那里,你也需要注意计算,以便清楚地了解如何计算成本。

关于这个问题: 我可以请求下载整个存档/存储桶,还是逐个文件?

请求是逐个文件的,尽管您可以一次选择多个文件并完全下载。

决定是否使用S3或Glacier实际上取决于您对文件访问的需求。如果您需要访问您的文件,那么Glacier就是您的答案。否则对于10GB S3仍然可以比Glacier更便宜并且更灵活。 就我而言,我发现家庭照片是一件非常珍贵的事情。这就是为什么我在冰川上用我家人的照片备份100GB的原因。除非在家里发生某种灾难,否则我不打算访问它。在那种情况下,我想我不介意检索成本,如果它保存了我真正关心的东西。但那只是我。

答案 1 :(得分:34)

S3的详细定价信息可用here。可用的API函数的细节是here

对于S3,您主要负责上传带宽(发送的字节数 TO S3),下载带宽(收到的字节 FROM S3)和存储空间(字节 IN S3)。您还需要支付API调用的数量和类型。

因此,如果您将10GB的数据上传到10,000个1MB文件中的S3,存储一个月,然后下载每个文件一次,您将需要付费:

  • $ 0.00用于上传带宽(这是免费的)
  • 上传文件的10,000个PUT请求$ 0.10
  • $ 0.95用于存储一个月的10GB
  • 10GB下载带宽1.08美元(第一个是免费的,然后是0.12美元/ GB)
  • $ 10,000下载文件的GET请求

这是2.14美元。如果您每次上传和下载一次,但保存数据一年,只有存储成本将高达12 * 0.95美元,或11.40美元。如果您的文件平均只有100KB,那么您有100,000个文件,您需要为PUT和GET请求支付10倍,或者1.10美元而不是0.11美元。

每次操作只能上传和下载单个文件。如果您使用Zip将文件合并为一个文件,则只能使用较少的操作进行保存,正如您所看到的那样,这些操作开始时非常便宜。

但这里有一个怪癖。我很确定您在上传和下载时需要支付所有带宽使用费,包括请求标头,而不仅仅是包含您数据的主体。因此,如果您的文件非常小,请求标头可能会变得很重要,可能与文件本身一样多。在这种情况下,您的带宽成本将翻倍。

冰川定价更复杂,我自己从未使用过它。基本上,它将存储成本降低了近十倍,使其他成本保持不变,并增加了每个对象的归档和恢复成本。如果您有很多小对象,需要一次获取大量文件或经常获取文件,那么这些成本似乎很重要。当你拥有大量数据(太字节或更多,不仅仅是千兆字节),但很少有操作时,冰川似乎是最好的。鉴于您只有10GB的数据,S3非常便宜,因此考虑Glacier似乎不值得。

最后,AWS第一年有免费使用等级,除了一半的存储费用外,它看起来会支付所有费用。

答案 2 :(得分:2)

比许多小文件更好地使用少量文件

将文件放入Amazon Glacier有两种方法。您可以直接与保险库进行交互,也可以使用S3作为前端。

我正在使用S3(和亚马逊管理控制台),以便我能够看到存档的内容,同时将其廉价存储在Glacier中。

这种方法有一个缺点 - 因为在Glacier中存储任何信息都会产生一些数据开销(你付出的代价也是如此),那么逻辑上就是一个收支平衡点。在2014-04降价之前,我做了一个计算,关键尺寸大约是16 kB,在Glacier中存储较小的文件(使用AWS S3作为前端)比仅在S3上保存更昂贵。随着S3存储的降价(Glacier没有改变),收支平衡点甚至更高。

我想,即使没有S3作为前端,情况也会类似,即使对较小的文件更友好一点。

答案 3 :(得分:0)

自2016年11月21日起,亚马逊更新了Glacier检索的免费套餐政策,并更新了“平均每月存储量的5%”政策,以每月10GB的固定费用免费。 但是,如果您的检索策略是在当天之前设置的,则您仍将采用“ 5%”策略,此处的其他答案仍然适用于您。

如果您的检索政策是在2016年11月21日之后制定的,并且您在OP的范围之内:

您仅存储10GB,因此您可以使用标准检索每月免费检索一次所有数据。是否将所有10,000张照片都压缩到一个zip文件中(用于检索)都没有关系。

在这种情况下,唯一的变量是上传请求的数量。 10,000个请求(每1000个$ 0.05)的价格仅为$ 0.50,这是针对您的特定情况的一次性费用。

更多价格信息,AWS Glacier FAQ

更新:

Glacier docs recommend using multipart upload for files larger than 100MB.

在尝试上传8GB文件的超时后,我独立得出了这个结论。