启动实例刷新 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

启动实例刷新

重要

您可以回滚正在进行的实例刷新,以撤消任何更改。要使此功能起作用,自动扩缩组在启动实例刷新之前必须满足使用回滚的先决条件。有关更多信息,请参阅通过回滚撤消更改

以下过程可帮助您使用 Amazon Web Services Management Console 或 Amazon CLI 启动实例刷新。

启动实例刷新(控制台)

如果这是您第一次开启实例刷新,则使用控制台将有助于您了解可用的功能和选项。

如果您以前没有为 Auto Scaling 组定义混合实例策略,请使用下面的步骤。如果您以前定义了混合实例策略,请参阅 在控制台中开启实例刷新(混合实例组) 以开启实例刷新。

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

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

    将在 Auto Scaling group(Auto Scaling 组)页面底部打开一个拆分窗格。

  3. Instance refresh(实例刷新)选项卡上的 Active instance refresh(活跃实例刷新)中,选择 Start instance refresh(开启实例刷新)。

  4. 对于 Minimum healthy percentage(最低运行正常百分比),输入在实例刷新期间必须保持健康状态的 Auto Scaling 组的百分比。将最低运行正常百分比设置为 100% 会将替换率限制为一次只能替换一个实例。相比之下,将其设置为 0% 会同时替换所有实例。

  5. 对于实例预热,输入从新实例的状态变为 InService 之后到其可以接收流量时为止需要经过的秒数。Amazon EC2 Auto Scaling 在继续替换下一个实例之前会等待这段时间。

    预热时,新启动的实例也不会计入自动扩缩组的聚合实例指标(例如 CPUUtilizationNetworkInNetworkOut)。如果已在 Auto Scaling 组中添加了扩展策略,扩展活动将并行运行。如果为实例刷新设置了较长的预热周期,则新启动的实例需要更多的时间才能显示在指标中。因此,设置充分的预热时间可防止 Amazon EC2 Auto Scaling 根据过时的指标数据进行扩缩。

    如果您已经为自动扩缩组正确定义了默认实例预热,则无需更改实例预热。但是,如果您想覆盖默认,则可以。有关设置默认实例预热的更多信息,请参阅 为 Auto Scaling 组设置原定设置实例预热

  6. (可选)对于 Checkpoints(检查点),选择 Enable checkpoints(启用检查点),以使用递增量或分阶段的实例刷新方法来替换实例。这将为在替换集之间进行验证提供额外时间。如果您选择不启用检查点,将以一次近乎连续的操作替换这些实例。

    如果您启用检查点,请参阅 启用检查点(控制台) 以了解其他步骤。

  7. 启用或关闭 Skip matching(跳过匹配):

    • 若要跳过替换已与您的启动模板匹配的实例,请将启用跳过匹配复选框保持为选中状态。

    • 如果通过清除此复选框关闭跳过匹配,则可替换所有实例。

    当您启用跳过匹配,而不是使用当前启动模板时,则可以设置新启动模板或启动模板的新版本。您可以在启动实例刷新页面的所需配置部分中执行此操作。

    注意

    要使用跳过匹配功能更新当前使用启动配置的 Auto Scaling 组,您必须在 Desired configuration(所需配置)中选择启动模板。不支持跳过匹配与启动配置一起使用。

  8. 对于备用实例,选择忽略终止等待。这决定了当实例处于 Standby 状态时会发生什么。有关更多信息,请参阅临时从 Auto Scaling 组中移除实例

    如果您选择等待,则必须采取其他步骤才能使这些实例恢复服务。如果您不这样做,则实例刷新会替换所有 InService 实例并等待一小时。然后,如果还有任何 Standby 实例,则实例刷新将失败。为防止出现这种情况,请改为选择忽略终止这些实例。

  9. 对于横向缩减保护实例,选择忽略替换等待。这决定了如果找到横向缩减保护实例会发生什么。有关更多信息,请参阅实例横向缩减保护

    如果您选择等待,则必须采取其他措施来删除这些实例的横向缩减保护。如果您不这样做,则实例刷新会替换所有未受保护的实例并等待一小时。然后,如果还有任何横向缩减保护实例,则实例刷新将失败。为防止出现这种情况,请改为选择忽略替换这些实例。

  10. (可选)展开所需配置部分,以指定您要对自动扩缩组进行的任何更新。

    对于此步骤,您可以选择使用 JSON 或 YAML 语法来编辑参数值,而不是在控制台界面中进行选择。为此,请选择 Use code editor(使用代码编辑器),而不是 Use console interface(使用控制台界面)。以下步骤介绍如何使用控制台界面进行选择。

    1. 对于 Update launch template(更新启动模板):

      • 如果您尚未为自动扩缩组创建新启动模板或新启动模板版本,则不要选中此复选框。

      • 如果您已创建新启动模板或新启动模板版本,请选中此复选框。当您选择此选项时,Amazon EC2 Auto Scaling 将为您显示当前启动模板和当前启动模板版本。它还列出了任何其他可用版本。选择启动模板,然后选择版本。

        在您选择版本后,可以看到版本信息。这是作为实例刷新的组成部分替换实例时将要使用的启动模板的版本。如果实例刷新成功,则每当新实例启动时(例如在组扩展时),也将使用此版本的启动模板。

    2. 对于 Choose a set of instance types and purchase options to override the instance type in the launch template(选择一组实例类型和购买选项以覆盖启动模板中的实例类型):

      • 如果您想使用您在启动模板中指定的实例类型和购买选项,请不要选中此复选框。

      • 如果您要覆盖启动模板中的实例类型或运行竞价型实例,请选中此复选框。您可以手动添加每种实例类型,也可以选择主实例类型和为您检索任何其他匹配实例类型的建议选项。如果您计划启动竞价型实例,我们建议添加几种不同的实例类型。这样,如果您选择的可用区中实例容量不足,则 Amazon EC2 Auto Scaling 可以启动另一种实例类型。有关更多信息,请参阅Auto Scaling 组具有多个实例类型和购买选项

        警告

        不要将竞价型实例用于无法处理竞价型实例中断的应用程序。如果 Amazon EC2 Spot 服务需要回收容量,可能会发生中断。

      如果您选中此复选框,请确保启动模板尚未请求竞价型实例。您无法使用请求竞价型实例的启动模板来创建使用多种实例类型并启动竞价型和按需型实例的自动扩缩组。

      注意

      要在当前使用启动配置的 Auto Scaling 组上配置这些选项,您必须在 Update launch template(更新启动模板)中选择启动模板。不支持覆盖您的启动配置中的实例类型。

  11. (可选)对于回滚设置,选择启用自动回滚以在实例刷新失败时自动回滚实例刷新。

    当自动扩缩组不满足使用回滚的先决条件时,无法启用此设置。

    有关更多信息,请参阅通过回滚撤消更改

  12. 审核您的所有选择,以确认所有选择的设置都正确。

    此时,最好验证当前更改与建议更改之间的差异不会以意外或不需要的方式影响您的应用程序。要确认您的实例类型与您的启动模板兼容,请参阅 实例类型兼容性

  13. 如果您对实例刷新选择感到满意,请选择 Start(开启)。

如果您已使用混合实例策略创建了 Auto Scaling 组,则请使用以下步骤。如果您尚未为您的组定义混合实例策略,请参阅 在控制台中开启实例刷新(基本步骤) 以开启实例刷新。

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

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

    将在 Auto Scaling group(Auto Scaling 组)页面底部打开一个拆分窗格。

  3. Instance refresh(实例刷新)选项卡上的 Active instance refresh(活跃实例刷新)中,选择 Start instance refresh(开启实例刷新)。

  4. 对于 Minimum healthy percentage(最低运行正常百分比),输入在实例刷新期间必须保持健康状态的 Auto Scaling 组的百分比。将最低运行正常百分比设置为 100% 会将替换率限制为一次只能替换一个实例。相比之下,将其设置为 0% 会同时替换所有实例。

  5. 对于实例预热,输入从新实例的状态变为 InService 之后到其可以接收流量时为止需要经过的秒数。Amazon EC2 Auto Scaling 在继续替换下一个实例之前会等待这段时间。

    预热时,新启动的实例也不会计入自动扩缩组的聚合实例指标(例如 CPUUtilizationNetworkInNetworkOut 等等)。如果已在 Auto Scaling 组中添加了扩展策略,扩展活动将并行运行。如果为实例刷新设置了较长的预热周期,则新启动的实例需要更多的时间才能显示在指标中。因此,设置充分的预热时间可防止 Amazon EC2 Auto Scaling 根据过时的指标数据进行扩缩。

    如果您已经正确定义了自动扩缩组的默认实例预热,则无需更改实例预热(除非您想覆盖默认)。有关设置默认实例预热的更多信息,请参阅 为 Auto Scaling 组设置原定设置实例预热

  6. (可选)对于 Checkpoints(检查点),选择 Enable checkpoints(启用检查点),以使用递增量或分阶段的实例刷新方法来替换实例。这将为在替换集之间进行验证提供额外时间。如果您选择不启用检查点,将以一次近乎连续的操作替换这些实例。

    如果您启用检查点,请参阅 启用检查点(控制台) 以了解其他步骤。

  7. 启用或关闭 Skip matching(跳过匹配):

    • 若要跳过替换已与您的启动模板匹配的实例和任何实例类型覆盖,请将启用跳过匹配复选框保持为选中状态。

    • 如果您选择通过清除此复选框关闭跳过匹配,则可替换所有实例。

    当您启用跳过匹配,而不是使用当前启动模板时,则可以设置新启动模板或启动模板的新版本。您可以在启动实例刷新页面的所需配置部分中执行此操作。您还可以在 Desired configuration(所需配置)中更新实例类型覆盖。

  8. 对于备用实例,选择忽略终止等待。这决定了当实例处于 Standby 状态时会发生什么。有关更多信息,请参阅临时从 Auto Scaling 组中移除实例

    如果您选择等待,则必须采取其他步骤才能使这些实例恢复服务。如果您不这样做,则实例刷新会替换所有 InService 实例并等待一小时。然后,如果还有任何 Standby 实例,则实例刷新将失败。为防止出现这种情况,请改为选择忽略终止这些实例。

  9. 对于横向缩减保护实例,选择忽略替换等待。这决定了如果找到横向缩减保护实例会发生什么。有关更多信息,请参阅实例横向缩减保护

    如果您选择等待,则必须采取其他措施来删除这些实例的横向缩减保护。如果您不这样做,则实例刷新会替换所有未受保护的实例并等待一小时。然后,如果还有任何横向缩减保护实例,则实例刷新将失败。为防止出现这种情况,请改为选择忽略替换这些实例。

  10. Desired configuration(所需配置)部分中,执行以下操作。

    对于此步骤,您可以选择使用 JSON 或 YAML 语法来编辑参数值,而不是在控制台界面中进行选择。为此,请选择 Use code editor(使用代码编辑器),而不是 Use console interface(使用控制台界面)。以下步骤介绍如何使用控制台界面进行选择。

    1. 对于 Update launch template(更新启动模板):

      • 如果您尚未为自动扩缩组创建新启动模板或新启动模板版本,则不要选中此复选框。

      • 如果您已创建新启动模板或新启动模板版本,请选中此复选框。当您选择此选项时,Amazon EC2 Auto Scaling 将为您显示当前启动模板和当前启动模板版本。它还列出了任何其他可用版本。选择启动模板,然后选择版本。

        在您选择版本后,可以看到版本信息。这是作为实例刷新的组成部分替换实例时将要使用的启动模板的版本。如果实例刷新成功,则每当新实例启动时(例如在组扩展时),也将使用此版本的启动模板。

    2. 对于 Use these settings to override the instance type and purchase option defined in the launch template(使用这些设置覆盖在启动模板中定义的实例类型和购买选项):

      默认情况下,此复选框处于选中状态。Amazon EC2 Auto Scaling 将使用当前在适用于 Auto Scaling 组的混合实例策略中设置的值填充每个参数。仅更新您要更改的参数的值。有关这些设置的指导,请参阅 Auto Scaling 组具有多个实例类型和购买选项

      警告

      我们建议您不要清除此复选框。仅当您希望停止使用混合实例策略时才清除它。在实例刷新成功后,Amazon EC2 Auto Scaling 会将您的组更新为与 Desired configuration(所需配置)匹配。如果它不再包含混合实例策略,Amazon EC2 Auto Scaling 将逐渐终止当前运行的所有竞价型实例,并将它们替换为按需型实例。或者,如果您的启动模板请求竞价型实例,则 Amazon EC2 Auto Scaling 将逐渐终止当前正在运行的所有按需型实例,并将它们替换为竞价型实例。

  11. (可选)对于回滚设置,选择启用自动回滚以在实例刷新因任何原因而失败时自动回滚。

    当自动扩缩组不满足使用回滚的先决条件时,无法启用此设置。

    有关更多信息,请参阅通过回滚撤消更改

  12. 审核您的所有选择,以确认所有选择的设置都正确。

    此时,最好验证当前更改与建议更改之间的差异不会以意外或不需要的方式影响您的应用程序。要确认您的实例类型与您的启动模板兼容,请参阅 实例类型兼容性

    如果您对实例刷新选择感到满意,请选择 Start(开启)。

启动实例刷新(Amazon CLI)

启动实例刷新

使用以下 start-instance-refresh 命令从 Amazon CLI 启动实例刷新。您可以在 JSON 配置文件中指定要更改的任何首选项。引用配置文件时,请提供该文件的路径和名称,如以下示例所示。

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

config.json 的内容:

{ "AutoScalingGroupName": "my-asg", "Preferences": { "InstanceWarmup": 60, "MinHealthyPercentage": 50, "AutoRollback": true, "ScaleInProtectedInstances": Ignore, "StandbyInstances": Terminate } }

如果不提供首选项,则会使用默认值。有关更多信息,请参阅了解实例刷新的默认值

输出示例:

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