通过回滚撤消更改 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

通过回滚撤消更改

您可以回滚仍在进行的实例刷新。完成后,您无法将其回滚。但是,您可以通过开始新的实例刷新来再次更新您的自动扩缩组。

回滚时,Amazon EC2 Auto Scaling 会替换到目前为止已部署的实例。新实例与您在启动实例刷新之前保存在自动扩缩组中的配置相匹配。

Amazon EC2 Auto Scaling 提供了以下回滚方式:

  • 手动回滚:手动开始回滚,以撤消部署到回滚点的内容。

  • 自动回滚:如果由于某种原因实例刷新失败,Amazon EC2 Auto Scaling 会自动撤消已部署的内容。

先决条件

要使用回滚功能,您必须执行以下操作:

  • 指定所需的配置。

  • 确保您上次保存在自动扩缩组中的配置处于稳定状态。如果未处于稳定状态,回滚工作流程仍会发生,但最终会失败。在您解决问题之前,自动扩缩组可能处于失败状态,无法再成功启动实例。这可能会影响服务或应用程序的可用性。

  • 确保可以回滚到自动扩缩组的当前启动模板。如果自动扩缩组的启动模板或启动模板版本不兼容,则在启用自动回滚的情况下开始手动回滚或实例刷新时会收到错误。不兼容的启动模板使用 Amazon Systems Manager Parameter Store 中的 AMI 别名。不兼容的启动模板版本包括 $Latest$Default

手动开始回滚(控制台)

手动开始实例刷新回滚
  1. 访问 https://console.aws.amazon.com/ec2/,打开 Amazon EC2 控制台,然后从导航窗格中选择 Auto Scaling Groups(Auto Scaling 组)。

  2. 选中 Auto Scaling 组旁边的复选框。

  3. 实例刷新选项卡的活跃实例刷新中,依次选择操作开始回滚

  4. 当系统提示进行确认时,选择 Confirm

手动开始回滚(Amazon CLI)

手动开始实例刷新回滚

使用来自 Amazon CLI 的 rollback-instance-refresh 命令,并提供自动扩缩组名。

aws autoscaling rollback-instance-refresh --auto-scaling-group-name my-asg

输出示例:

{ "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" }
提示

如果此命令引发错误,请确保您已在本地将 Amazon CLI 更新到最新版本。

使用自动回滚启动实例刷新

默认情况下,如果实例刷新失败,则不会回滚其应用到新实例的更改。您可以更改行为,以便在实例刷新失败时进行回滚。

本节包含使用自动回滚启动实例刷新的 Amazon CLI 说明。有关如何使用控制台的说明,请参阅启动实例刷新(控制台)

使用自动回滚启动实例刷新(Amazon CLI)

使用 start-instance-refresh 命令,并将首选项中的自动回滚选项设置为 true。此外,提供自动扩缩组名称和所需的配置。

aws autoscaling start-instance-refresh --cli-input-json file://config.json

config.json 的内容。

{ "AutoScalingGroupName": "my-asg", "DesiredConfiguration": { "LaunchTemplate": { "LaunchTemplateId": "lt-068f72b729example", "Version": "$Default" } }, "Preferences": { "AutoRollback": true } }

如果成功,该命令将返回类似于以下内容的输出。

{ "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" }
提示

如果此命令引发错误,请确保您已在本地将 Amazon CLI 更新到最新版本。