繁体   English   中英

从 S3 IA 中删除 20 亿个对象的最便宜方法

[英]Cheapest way to delete 2 billion objects from S3 IA

我在 S3(不经常访问)中有一个包含 20 亿个对象的存储桶。 在控制台中或通过 api 删除而无需花费数年时间,它太大了。

我可以创建一个生命周期规则来过期和删除对象,但计算器预测这将花费我 > $20,000 那是对的吗? 有没有更好的方法来删除存储桶?

如果有帮助,我有一个文件有效地包含该存储桶中所有对象的列表。

2021 年更新:

下面来自@MAP 的回答指出现在有一个“空”按钮。 我还没有测试过,但看起来像是要走的路(测试后我会接受这个答案):

空按钮截图

如果您有所有可用对象的列表,那么您当然可以使用多删除对象操作。 显然这个API 是免费的 我会创建AWS Step Functions 状态机来遍历文件并一次删除 1000 个对象。 1000 似乎是极限。

删除存储桶中的所有对象大约需要 200 万步函数事务。 根据 step 函数的定价,您将花费大约 50 美元 + 大约 1 美元的 Lambda 调用成本,因此总成本约为 51 美元。

更新

使用 Lambda 或 Step Functions 可能不是最具成本效益的选择,因为这两种方式都需要从某些源(如 S3)读取文件(包含对象键)。 所以我认为从本地机器或任何 EC2 linux 屏幕运行脚本似乎是最好的选择。

删除操作是免费的。 您可以创建生命周期策略来自动执行批量删除。

我会先从少量对象开始,然后检查帐单报告以 100% 确认删除不会收费,然后再进行其余的操作。

2021 年,任何遇到此问题的人都可能会受益于 AWS 控制台现在提供了一个按钮。

选择存储桶并单击“清空”按钮,所有受版本控制或未受版本控制的对象都将被清空/删除。 根据对象的数量,这可能需要几分钟到几天的时间。

试试S3Browser

当删除数千万个对象时,它对我来说效果很好

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM