自动从 S3 中删除旧备份并每月移动到冰川
Automatically delete old backups from S3 and move monthly to glacier
我已将 Gitlab 设置为将每日备份保存到 Amazon S3 存储桶中。我想在冰川上保留一年的每月备份,在标准存储上保留一周的每日备份。使用 S3 生命周期规则,这种清理策略是否可行?如果是,如何?
Amazon S3 Object Lifecycle Management可以过渡存储类and/or删除(过期)对象。
它还可以与 版本控制 一起使用,这样不同的规则可以应用于 'current' 版本和 'all previous' 版本。例如,当前版本可以保持可访问,而以前的版本可以过渡到 Glacier 并最终删除。
不过,它确实有一个"monthly backup"或"weekly backup"的概念。相反,规则平等地应用于所有对象。
要实现您的 monthly/weekly objective,您可以:
- 将每个月的第一个备份存储在特定目录(路径)
- 将其他备份存储在不同的目录
- 对每个目录应用生命周期规则不同
或者,您可以对所有备份使用相同的生命周期规则,但编写一些代码以不同的时间间隔删除不需要的备份(例如,每天删除一个 week-old 备份,除非它是本月的第一个备份) .此代码将作为每日 Lambda 函数触发。
我已将 Gitlab 设置为将每日备份保存到 Amazon S3 存储桶中。我想在冰川上保留一年的每月备份,在标准存储上保留一周的每日备份。使用 S3 生命周期规则,这种清理策略是否可行?如果是,如何?
Amazon S3 Object Lifecycle Management可以过渡存储类and/or删除(过期)对象。
它还可以与 版本控制 一起使用,这样不同的规则可以应用于 'current' 版本和 'all previous' 版本。例如,当前版本可以保持可访问,而以前的版本可以过渡到 Glacier 并最终删除。
不过,它确实有一个"monthly backup"或"weekly backup"的概念。相反,规则平等地应用于所有对象。
要实现您的 monthly/weekly objective,您可以:
- 将每个月的第一个备份存储在特定目录(路径)
- 将其他备份存储在不同的目录
- 对每个目录应用生命周期规则不同
或者,您可以对所有备份使用相同的生命周期规则,但编写一些代码以不同的时间间隔删除不需要的备份(例如,每天删除一个 week-old 备份,除非它是本月的第一个备份) .此代码将作为每日 Lambda 函数触发。