亚马逊AWS官方博客

新增功能 – 使用 Amazon Data Lifecycle Manager 和自定义脚本创建应用程序一致性快照



Amazon Data Lifecycle Manager 现在支持使用嵌入在 AWS Systems Manager 文档中的快照前和快照后脚本。您可以使用这些脚本确保由 Data Lifecycle Manager 创建的 Amazon Elastic Block Store(Amazon EBS)快照是应用程序一致的。脚本可以暂停和恢复 I/O 操作,将缓冲的数据刷新到 EBS 卷等。作为本次发布的一部分,我们还发布了一组详细的博客文章,向您展示如何在自我管理的关系数据库和 Windows Volume Shadow Copy Service(VSS)中使用此功能。

Data Lifecycle Manager(DLM)回顾
简要回顾一下,Data Lifecycle Manager 可帮助您自动创建、保留和删除 Amazon EBS 卷快照。完成诸如将 EC2 实例加载到 AWS Systems Manager、为 DLM 设置 IAM 角色以及标记 SSM 文档等先决条件步骤后,您只需创建生命周期策略并指明(通过标签)适用的 Amazon Elastic Compute Cloud(Amazon EC2)实例,设置保留模型,剩下的交给 DLM 即可。这些策略指定了何时运行、要备份的内容以及快照必须保留多长时间。要全面了解 DLM,请阅读我 2018 年的博客文章新增功能 – Amazon EBS 快照的生命周期管理

应用程序一致性快照
EBS 快照是崩溃一致的,这意味着这些快照代表了创建快照时关联 EBS 卷的状态。这对于许多类型的应用程序来说已经足够了,包括那些不使用快照捕获活动关系数据库状态的应用程序。要制作应用程序一致的快照,必须考虑待处理事务(要么等待事务完成,要么导致事务失败),暂时暂停进一步的写入操作,拍摄快照,然后恢复正常操作。

这就是今天发布的内容。DLM 现在能够告诉实例为应用程序一致性备份做准备。快照前脚本可以管理待处理的事务,将内存中的数据刷新到永久存储,冻结文件系统,甚至使应用程序或数据库停止。然后,快照后脚本可以使应用程序或数据库恢复活力,从永久存储中重新加载内存缓存,解冻文件系统等等。

除了对自定义脚本的基本支持外,您还可以使用此功能自动创建 VSS Backup 快照:

前脚本和后脚本
新脚本适用于实例的 DLM 策略。假设我创建了一个策略,该策略使用快照前和快照后脚本引用 SSM 文档,并且适用于单个实例。以下是策略按计划运行时发生的情况:

  1. 快照前脚本从 SSM 文档启动。
  2. 运行脚本中的每条命令并捕获脚本级别的状态(成功或失败)。如果在策略中启用,DLM 将重试失败的脚本。
  3. 多卷 EBS 快照是针对附加到实例的 EBS 卷启动的,并通过策略进行进一步控制。
  4. 快照后脚本从 SSM 文档启动,
  5. 运行脚本中的每条命令并捕获脚本级别的状态(成功或失败)。

该策略包含的选项使您可以控制在任一脚本超时或失败时采取的操作(重试、继续或跳过)。状态已记录,Amazon CloudWatch 指标已发布,Amazon EventBridge 事件已发出,状态还使用自动分配给每个快照的标签进行编码。

快照前脚本和快照后脚本可以执行命令文档中允许的任何操作:运行 shell 脚本运行 PowerShell 脚本等。操作必须在策略中指定的超时时间内完成,允许的范围为 10 秒到 120 秒。

入门
为了构建一对强大的脚本,您需要对应用程序或数据库有详细的了解。除了在一切顺利时处理“幸福之路”外,您的脚本还需要为几种失败场景做好准备。例如,快照前脚本应分出一个后台任务分支,该任务将在快照后脚本无法按预期运行时起到故障保护作用。每个脚本都必须返回 shell 级别的状态码,详见此处

编写和测试脚本并将其打包为 SSM 文档后,我在 EC2 控制台中打开 Data Lifecycle Manager 页面,选择 EBS 快照策略,然后单击下一步

我将所有标有生产模式的实例作为目标,并使用默认 IAM 角色(如果您使用不同的角色,则必须启用对 SSM 的访问权限),将其余值保持原样,然后继续:

在下一页上,我向下滚动到前脚本和后脚本,然后展开该部分。我单击启用前脚本和后脚本,选择自定义 SSM 文档,然后从菜单中选择我的 SSM 文档。我还设置了超时和重试选项,如果我的一个脚本失败,我会选择默认为崩溃一致性备份。我单击查看策略,做最后一次检查,然后在下一页上单击创建策略

我的策略已创建,将立即生效。在策略至少运行一次之后,我可以检查 CloudWatch 指标以检查启动、完成和失败情况:

其他阅读资源
以下是我之前承诺的第一篇详细博客文章:

今年晚些时候,我们还有更多工作要做,我将在上面的列表发布后对其进行更新。

您也可以阅读文档以了解更多信息。

DLM 视频
借此机会,我想与大家分享几个有用的视频:

这项新功能现已推出,您可以立即开始使用!

Jeff