我通常认为 Glacier 是 S3 的替代存储,而不是额外的存储。即,数据通常存储在 S3 或 Glacier 中,但很少同时存储。
如果您相信 S3 宣传的 11 个 9 的持久性,那么您就不会备份,因为 S3 本身很可能会丢失数据。
您可能希望备份数据,因为(就像我一样)您将您的 Amazon 帐户视为单点故障(例如,凭证被盗或 Amazon 阻止您的帐户,因为他们认为您在做一些滥用行为)。然而,在这种情况下,Glacier 并不是一个足够的备份,因为它仍然属于亚马逊的保护伞。
如果您担心由于用户错误、凭证泄露等原因而导致 S3 中的数据丢失,我建议您在 Amazon 之外备份 S3 数据。
我建议使用 Glacier 作为长期、廉价存储数据存档的地方,当您知道自己不需要太多访问它时(如果有的话)。当事物转移到 Glacier 时,您将从 S3 中删除它们。
亚马逊提供从 S3 到 Glacier 的自动存档,效果很好,但如果文件的平均大小很小,请注意额外费用。这是我写的一篇关于这种危险的文章:
将 S3 对象转换为 Glacier 的成本
http://alestic.com/2012/12/s3-glacier-costs
如果您仍想从 S3 复制到 Glacier,这里有一些与您的问题相关的要点:
您可能会将数据留在 Glacier 中很长时间,因此压缩它可能值得短期 CPU 使用。确切的权衡取决于数据的可压缩性、压缩需要多长时间以及需要执行压缩的频率等因素。
将数据从 S3 下载到 EC2 实例是免费的。将数据上传到 Glacier 不收取数据传输费用。
如果您将许多小文件上传到 Glacier,则每个项目的上传费用可能会累加。您可以通过将许多小文件合并到一个存档中并上传来节省成本。
另一个可以帮助防止因用户错误或攻击而导致意外丢失的 S3 功能是打开 S3 版本控制并启用 MFA(多因素身份验证)。这可以防止任何人永久删除对象,除非他们拥有凭据和您拥有的物理设备。