启动实例刷新 - 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 group(Auto Scaling 组)页面底部打开一个拆分窗格。

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

  4. 对于可用性设置,请执行以下操作:

    1. 对于实例替换方法

      • 如果您尚未在自动扩缩组上设置实例维护策略,则实例替换方法的默认设置为终止并启动。这是实例刷新的旧版默认行为。

      • 如果您在自动扩缩组上设置了实例维护策略,它将为实例替换方法提供默认值。要覆盖实例维护策略,请选择覆盖。覆盖仅适用于当前的实例刷新。下次启动实例刷新时,这些值将重置为实例维护策略的默认值。

      以下步骤介绍如何更新实例替换方法。

      1. 选择以下实例替换方法之一:

        • 终止前启动:必须先配置新实例,然后才能终止现有实例。对于偏向于可用性而不是成本节约的应用程序来说,这是一个不错的选择。

        • 终止并启动:在终止现有实例的同时配置新实例。对于偏向于节省成本而不是可用性的应用程序来说,这是一个不错的选择。对于启动容量不应超过当前可用容量的应用程序来说,它也是一个不错的选择。

        • 自定义行为:此选项允许您为替换实例时所需的可用容量设置自定义的最小和最大范围。这可以帮助您在成本和可用性之间取得适当的平衡。

      2. 对于设置运行正常百分比,为以下一个或两个字段输入值。启用字段因所选择的实例替换方法的选项而异。

        • 最小:设置继续进行实例刷新所需的最低运行正常百分比。

        • 最大:设置实例刷新期间可能的最高运行正常百分比。

      3. 展开根据当前群组规模查看替换期间的估计临时容量部分,以确认最小值最大值如何适用于您的组。使用的确切值取决于所需的容量值,如果组发生扩缩,该值将发生变化。

      4. 展开为无效的替换大小设置回退行为部分,然后选择是通过违反最高运行正常百分比来确定可用性的优先级,还是通过违反最低运行正常百分比

        对于非常小的组,不建议保留默认的违反最低运行正常百分比选项。如果自动扩缩组中只有一个实例时,启动实例刷新可能会导致中断。

        如果您使用的自动扩缩组还没有实例维护策略,则此步骤将配置回退行为。此选项不可用,也不会在您的组有实例维护策略时出现。此选项也仅适用于终止并启动替换方法。为了优先考虑可用性,其他替换方法将违反最高运行正常百分比。

    2. 对于实例预热,输入从新实例的状态变为 InService 之时起到其完成初始化时为止需要经过的秒数。Amazon EC2 Auto Scaling 在继续替换下一个实例之前会等待这段时间。

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

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

  5. 对于刷新设置,请执行以下操作:

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

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

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

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

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

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

      注意

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

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

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

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

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

  6. (可选)对于CloudWatch 警报,请选择启用 CloudWatch 警报,然后选择一个或多个警报。 CloudWatch 警报可用于识别任何问题,并在警报进入ALARM状态时使操作失败。有关更多信息,请参见 使用自动回滚启动实例刷新

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

    对于此步骤,您可以选择使用 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(更新启动模板)中选择启动模板。不支持覆盖您的启动配置中的实例类型。

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

    只有当自动扩缩组满足使用回滚的先决条件时,才能启用此设置。

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

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

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

  10. 如果您对实例刷新选择感到满意,请选择启动实例刷新

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

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

  2. 选中您的自动扩缩组旁边的复选框。

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

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

  4. 对于可用性设置,请执行以下操作:

    1. 对于实例替换方法

      • 如果您尚未在自动扩缩组上设置实例维护策略,则实例替换方法的默认设置为终止并启动。这是实例刷新的旧版默认行为。

      • 如果您在自动扩缩组上设置了实例维护策略,它将为实例替换方法提供默认值。要覆盖实例维护策略,请选择覆盖。覆盖仅适用于当前的实例刷新。下次启动实例刷新时,这些值将重置为实例维护策略的默认值。

      以下步骤介绍如何更新实例替换方法。

      1. 选择以下实例替换方法之一:

        • 终止前启动:必须先配置新实例,然后才能终止现有实例。对于偏向于可用性而不是成本节约的应用程序来说,这是一个不错的选择。

        • 终止并启动:在终止现有实例的同时配置新实例。对于偏向于节省成本而不是可用性的应用程序来说,这是一个不错的选择。对于启动容量不应超过当前可用容量的应用程序来说,它也是一个不错的选择。

        • 自定义行为:此选项允许您为替换实例时所需的可用容量设置自定义的最小和最大范围。这可以帮助您在成本和可用性之间取得适当的平衡。

      2. 对于设置运行正常百分比,为以下一个或两个字段输入值。启用字段因所选择的实例替换方法的选项而异。

        • 最小:设置继续进行实例刷新所需的最低运行正常百分比。

        • 最大:设置实例刷新期间可能的最高运行正常百分比。

      3. 展开根据当前群组规模查看替换期间的估计临时容量部分,以确认最小值最大值如何适用于您的组。使用的确切值取决于所需的容量值,如果组发生扩缩,该值将发生变化。

      4. 展开为无效的替换大小设置回退行为部分,然后选择是通过违反最高运行正常百分比来确定可用性的优先级,还是通过违反最低运行正常百分比

        对于非常小的组,不建议保留默认的违反最低运行正常百分比选项。如果自动扩缩组中只有一个实例时,启动实例刷新可能会导致中断。

        如果您使用的自动扩缩组还没有实例维护策略,则此步骤将配置回退行为。此选项不可用,也不会在您的组有实例维护策略时出现。此选项也仅适用于终止并启动替换方法。为了优先考虑可用性,其他替换方法将违反最高运行正常百分比。

    2. 对于实例预热,输入从新实例的状态变为 InService 之时起到其完成初始化时为止需要经过的秒数。Amazon EC2 Auto Scaling 在继续替换下一个实例之前会等待这段时间。

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

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

  5. 对于刷新设置,请执行以下操作:

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

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

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

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

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

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

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

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

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

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

  6. (可选)对于CloudWatch 警报,请选择启用 CloudWatch 警报,然后选择一个或多个警报。 CloudWatch 警报可用于识别任何问题,并在警报进入ALARM状态时使操作失败。有关更多信息,请参见 使用自动回滚启动实例刷新

  7. 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 将逐渐终止当前正在运行的所有按需型实例,并将它们替换为竞价型实例。

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

    只有当自动扩缩组满足使用回滚的先决条件时,才能启用此设置。

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

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

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

    如果您对实例刷新选择感到满意,请选择启动实例刷新

启动实例刷新(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" }