【问题标题】:Disaster Recovery for S3 Bucket with a lot Parquet Files具有大量 Parquet 文件的 S3 存储桶的灾难恢复
【发布时间】:2020-05-08 18:37:15
【问题描述】:

我有一个 S3 存储桶,每个分区中有很多拼花分割文件。存储桶中的所有文件对业务都非常重要,万一有人删除它们将是一场灾难。现在,如果我使用 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 美元。我的主要问题是拼花文件的数量,这些文件提高了可负担的检索成本。

【问题讨论】:

  • 嗯,存储成本和检索成本之间存在权衡(w.r.t. 时间和美元)。您能否提供有关检索这些文件的频率、文件大小和规模的更多详细信息?
  • 我应该说清楚,当前版本在标准 S3 中。我希望对他们进行 DR,以防有人删除存储桶中的所有内容。文件是 Parquet 文件,平均每个文件大约 150 KB(每 GB 6990 个文件)。只有当有人删除存储桶中的所有内容时才能恢复,假设这种情况每年发生一次。假设我们正在讨论 100 GB 的总存储桶大小。

标签: amazon-web-services amazon-s3 amazon-glacier disaster-recovery


【解决方案1】:

如果您只是想防止某人意外删除对象,我认为 S3 Glacier 或 Glacier Deep Archive 不是正确的选择。相反,您可以通过启用object versioningMFA delete 来实现。

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

【讨论】:

  • 你最接近我的问题。 :) 启用对象版本控制,是的,这就是我想要做的。然后我想采取prev。低存储成本的版本,现在的问题,(正如你提到的)变成了要恢复的文件数量,因为 parquet 在创建小文件方面是专业的,这是有充分理由的。
  • @AwaisKaleem 您的对象会被覆盖,还是将来保持不变?什么是“以前的版本”?
  • 每个文件至少在两个月内被覆盖一次。在这种情况下,先前版本的定义将成为被覆盖之前的版本。在这种情况下,不需要以前的版本。但是,在意外删除的情况下,以前的版本是不应该删除的文件。
  • @jellycsc,结果证明一个简单的对象版本控制+mfa 在这种情况下是最便宜的。我想知道 AWS 是否会对冰川中的“每 1000 次请求”收费采取一些措施。无论如何,非常感谢您首先了解我的问题要求。使其正确。
【解决方案2】:

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

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

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

【讨论】:

  • 感谢您的回答,但在这种情况下,我会为以前的版本支付额外费用。现在假设我有一个将它们放入 Glacier/Deep Archieve 的生命周期规则,由于我每 GB 拥有的文件数量(699 个文件/GB),我的成本仍然很高。
【解决方案3】:

Glacier/Glacier Deep Archive 始终是最具成本效益的,因此我不必担心检索成本。

除此之外,您可以使用 replication 到另一个 S3 存储桶来运行文件的副本,您可以将其与 lifecycle rule 结合使用以降低不经常访问的价格等级。

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

【讨论】:

  • 谢谢。但是考虑一下,我有 100 GB 的数据,里面有 150 KB 的文件。 Glacier 中 1 次意外删除的年度额外费用为 53 美元,而 Glacier Deep Arch 则为 82.4 美元。现在只需将每个文件的大小从 150 KB 更改为 1024 KB。这些费用更改为 Glacier 的 21 美元和 Glacier Deep Arch 的 16 美元。我的主要问题是拼花文件的数量,这些文件提高了负担得起的检索成本。至于deleteObject,它是一个复杂的混乱,长话短说,它基本上是覆盖而不是删除。 :(
  • 如果覆盖肯定要考虑对象版本控制,并将以前的版本迁移到不经常访问的地方。
猜你喜欢
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 2012-03-16
  • 2018-06-02
  • 2016-07-05
  • 2019-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多