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

时间:2019-01-18 14:27:37

标签: amazon-web-services amazon-s3 aws-sdk

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

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

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

4 个答案:

答案 0 :(得分:6)

如果您有所有可用对象的列表,则可以使用Multi Delete Object操作。显然,此API is free。我将通过该文件创建AWS Step Functions state machine to loop并一次删除1000个对象。似乎是1000。

删除存储桶中的所有对象大约需要2M步函数事务。根据用于步进功能的pricing,您的费用约为$ 50 + cost of Lambda invocations的费用约为$ 1,因此总费用约为$ 51。

更新

使用Lambda或Step Functions可能不是最具成本效益的选项,因为两种方式都需要从某些来源(例如S3)读取文件(包含对象密钥)。因此,我认为从本地计算机或任何EC2 linux屏幕上运行脚本似乎是最佳选择。

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

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

我将首先从少量对象开始,然后检查开票报告以100%确认将不收取删除费用,然后进行其余操作。

答案 3 :(得分:0)

试试S3Browser

删除几千万个对象时对我来说效果很好