我试图了解复杂的 Amazon Glacier 定价模型。我不想存储大量数据,几 GB 的说 10。我希望永远不要下载文件,如果我确实需要,我不在乎需要多长时间。
我上传的每个文件是否需要付费?压缩大量小文件并分块上传是否更便宜,还是说 10,000 张图片无关紧要?(在搜索过程中无法得到直接的答案)
我可以请求下载整个存档/存储桶还是逐个文件?
我试图了解复杂的 Amazon Glacier 定价模型。我不想存储大量数据,几 GB 的说 10。我希望永远不要下载文件,如果我确实需要,我不在乎需要多长时间。
我上传的每个文件是否需要付费?压缩大量小文件并分块上传是否更便宜,还是说 10,000 张图片无关紧要?(在搜索过程中无法得到直接的答案)
我可以请求下载整个存档/存储桶还是逐个文件?
我知道这有点老了,但你可能仍然会发现我的回答很有帮助(我希望)。另一个答案基于 S3,我相信这不是您的问题。
Glacier 旨在用于稀有文件访问。考虑到这一点,如果您需要一次检索许多文件,他们会惩罚您。在您的特定情况下,我建议上传 10.000 个单独的文件,而不是假设 100 个 ZIP 文件,每个文件 100 个文件。原因很简单。Glacier 仅允许您免费下载总档案的 5%,并且每天按比例分配。因此,例如,如果您需要下载 10 张您在周末拍摄的照片,那么如果将这 10 张照片散布在保险库中,您就可以免费获得这些照片。另一方面,如果您有一个包含 100 张照片的 ZIP 文件,您将被迫下载该 zip,该 zip 文件可能会超过总存档的 5%,这意味着您将支付一些检索费用。
上传较少文件有意义的唯一原因是避免高上传请求(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 的备份以及我所有的家庭照片。除非家里发生某种灾难,否则我不打算访问它。在那种情况下,我想我不会介意检索成本,如果这样可以保存我真正关心的东西。但这只是我。
S3 的详细定价信息可在此处获得。可用 API 函数的详细信息在此处。
对于 S3,您主要需要为上传带宽(发送到S3 的字节数)、下载带宽(从S3 接收的字节数)和存储(S3 中的字节数)付费。您还需要为 API 调用的数量和类型付费。
因此,如果您将 10GB 数据以 10,000 个 1MB 文件的形式上传到 S3,将其存储一个月,然后将每个文件下载一次,您将需要付费:
那是 2.14 美元。如果您每次上传和下载一次,但将数据保留一年,则仅存储成本将高达 12 * 0.95 美元,即 11.40 美元。如果您的文件平均只有 100KB,因此您有 100,000 个文件,那么您将为 PUT 和 GET 请求支付 10 倍的费用,或者 1.10 美元而不是 0.11 美元。
每次操作只能上传和下载一个文件。如果您使用 Zip 将文件合并为一个,则只需使用较少的操作即可保存,正如您所看到的那样,一开始就非常便宜。
不过,这里有一个怪癖。我很确定您在上传和下载时需要为所有带宽使用付费,包括请求标头,而不仅仅是包含您的数据的正文。因此,如果您的文件非常小,则请求标头可能会变得很重要,可能与文件本身一样重要。在这种情况下,您的带宽成本将翻倍。
冰川定价比较复杂,我自己也没用过。基本上,它将存储成本降低了近十倍,而其他成本保持不变,并增加了每个对象的归档和恢复成本。如果您有很多小对象、需要一次获取大量文件或频繁获取文件,那么这些成本似乎很高。当您拥有大量数据(TB 或更多,而不仅仅是 GB)但操作很少时,Glacier 似乎是最好的。鉴于您只有 10GB 的数据,S3 非常便宜,似乎不值得考虑 Glacier。
最后,AWS 提供第一年的免费使用套餐,看起来它可以支付您的所有费用,除了一半的存储费用。
将文件放入 Amazon Glacier 有两种方法。您可以直接与保管库交互,也可以使用 S3 作为前端。
我正在使用 S3(和 Amazon 管理控制台),以便能够查看存档的内容,同时将其廉价地存储在 Glacier 中。
这种方法有一个缺点——因为在 Glacier 中存储任何一条信息都会产生一些数据开销(您也需要为此付费),因此在逻辑上存在一个收支平衡点。在 2014-04 降价之前,我进行了计算,临界大小约为 16 kB,在 Glacier 中存储较小的文件(使用 AWS S3 作为前端)比仅将其保存在 S3 上更昂贵。随着 S3 存储的降价(Glacier 没有改变),收支平衡点甚至更高。
我想,即使没有 S3 作为前端,情况也会相似,尽管对较小的文件更友好一点。
自 2016 年 11 月 21 日起,Amazon 更新了 Glacier 检索的免费层级政策,并更新了“平均每月存储空间的 5%”政策,支持每月免费 10GB。但是,如果您的检索政策是在那一天之前设置的,那么您仍然使用“5%”政策,并且此处的其他答案仍然适用于您。
如果您的检索政策是在 2016 年 11 月 21 日之后设置的,并且您处于 OP 的立场:
您只存储 10GB,因此您可以使用标准检索每月免费检索一次所有数据。如果将所有 10,000 张照片都压缩到一个 zip 文件中(用于检索),则没有区别。
在这种情况下,唯一的变量是上传请求的数量。以每 1,000 美元 0.05 美元的价格发送 10,000 次请求只需 0.50 美元,这是针对您的特定案例的一次性费用。
AWS Glacier 常见问题解答中的更多定价信息
更新:
Glacier 文档建议对大于 100MB 的文件使用分段上传。
在尝试上传 8GB 文件时,我在几次超时后独立得出了这个结论。