具有大量 Parquet 文件的 S3 存储桶的灾难恢复

Disaster Recovery for S3 Bucket with a lot Parquet Files

我有一个 S3 存储桶,每个分区中都有很多 parquet 拆分文件。存储桶中的所有文件对业务都非常重要,万一有人删除它们,那将是一场灾难。现在,如果我使用 Glacier/Glacier D.Arch.,我担心在失败的情况下我的检索成本会因为单个镶木地板文件的数量而过高。我怎样才能以最低的成本最好地为这样的存储桶创建灾难恢复? (假设用户不是每个月都删除必要的数据。)

示例案例: 考虑一下,我有 100 GB 的数据,其中包含 150 KB 的文件。 Glacier 中 1 次意外删除的年度额外费用为 53 美元,而在 Glacier Deep Arch 中为 82.4 美元。现在只需将每个文件的大小从 150 KB 更改为 1024 KB。 Glacier 的这些费用变为 21 美元,Glacier Deep Arch 的费用变为 16 美元。我的主要问题是这里的镶木地板文件数量增加了负担得起的检索成本。

Glacier/Glacier Deep Archive 永远是最具成本效益的,所以我不会担心检索的成本。

除此之外,您可以使用 replication to another S3 bucket to run a duplicate of the files, you could combine this with a lifecycle rule 降低不常访问的价格 class。

此外,基于您对意外删除的担忧,是否无法阻止您的团队成员拥有此特定存储桶的 DeleteObject 权限?

我无法快速算出比较成本,但如果您主要担心文件被意外删除,并且文件通常只是放在那里而不是定期更换,您可以考虑打开S3 版本控制 - 如果有人覆盖其中一个文件,那么您可以通过这种方式恢复旧版本的文件,如果用户删除它们,它们实际上不会被删除。

https://aws.amazon.com/blogs/aws/amazon-s3-enhancement-versioning/

https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html

如果您只是想防止某人意外删除对象,我认为 S3 Glacier 或 Glacier Deep Archive 不是正确的方法。相反,您可以通过启用 object versioning and MFA delete.

来实现此目的

另外请记住,Amazon S3 Glacier 和 S3 Glacier Deep Archive 每个对象有 32KB 的额外开销。 考虑到您的对象平均为 150 KB,这将导致成本增加 21.3%。