将新生命周期策略应用于包含大量项目的现有AWS S3存储桶是否安全?

时间:2016-06-29 15:57:15

标签: amazon-s3

我们有一个巨大的S3桶,里面有数十亿个物品。目前它没有应用任何项目生命周期策略,因此项目将永久存储。我们想要清除超过半年的物品并进一步定期进行。使用S3生命周期策略这样的任务看起来很容易,但是将策略应用于现有的大型存储桶或生命周期策略是否安全(在性能和可用性方面)应该只安全地应用于新存储桶?

2 个答案:

答案 0 :(得分:3)

就性能而言,这应该是一个安全的操作,无论存储桶大小或受影响的对象数量,因为生命周期策略是在后台异步处理,分阶段处理。

  

到期对象:一般注意事项

     

当对象到达其生命周期的末尾时,Amazon S3将其排队以进行删除并异步删除它。到期日期与Amazon S3删除对象的日期之间可能存在延迟。您不需要为与已过期的对象关联的存储时间付费。

     

http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html

答案 1 :(得分:2)

在使用生命周期删除启用版本控制的存储桶上的数十亿个对象时,我遇到过性能问题,尤其是EMR,JetS3t和S3控制台。删除的当前版本添加了删除标记对象,并成为以前的版本,然后生命周期的先前版本删除设置将清除以前的版本。删除标记是添加的另一个对象,必须在控制台或存储桶列表中进行过滤。所以我们得到对象数量的2倍,直到它们都被删除。我们还支付先前版本存储的标准费用,直到删除为止。

列出对象的任何应用程序都可能需要过滤当前,删除标记和以前的版本。我发现S3控制台会挂起,直到我选择" Versions:Show"。在某些情况下,hadoop 1.x和JetS3t将会超时,直到大多数删除标记清除以前的版本,特别是从存储桶根目录。

对于启用版本控制的存储桶,我建议您通过将生命周期间隔设置为大来逐渐删除,然后逐渐减少间隔。我还发现使用生命周期不是即时的,并且需要几天(至少)来移除大量对象。

我使用AWS Marketplace中的http://www.insight4storage.com/来监控我的存储类型和每个存储桶的版本和前缀。它通过按前缀和每个桶显示当前和以前的版本,IA,RRS和Glacier存储,帮助我跟踪生命周期进度。