在伸缩组使用抢占式实例降低成本

在使用伸缩组后,您可以通过设置合适的伸缩策略提高资源利用率,从而降低成本,此时您还可以通过抢占式实例,以更低的价格使用ECS实例,从而进一步降低成本,本文为您介绍如何通过抢占式实例降低集群的成本。

重要

仅ECS类型的伸缩组支持使用抢占式实例。

什么是抢占式实例?

抢占式实例是一种按需实例,性能与常规ECS实例无异,价格根据市场供需关系实时变化,相对于按量付费实例最高能节约90%的实例成本,抢占式实例的特性如下:

  • 性能相同:在相同规格情况下,与按量计费实例除计费模式外无差别。

  • 出价机制:您可以在创建抢占式实例时进行出价。阿里云会根据当前市场供需情况动态调整市场价格,如果您的出价低于市场价,实例会被回收。此外,支持使用自动出价,以按需计费的价格为上限,自动跟随市场价进行出价。

  • 竞价机制:实例的价格根据市场供需关系实时变化,会将您的出价与市场价格进行对比,如果您的出价比市场价高且库存充足,可以创建出抢占式实例。

  • 中断回收机制:抢占式实例存在中断回收机制,如果您的出价小于市场价或者库存不足,会中断实例并回收

  • 保护期:您可以通过设定实例使用1小时,保护实例在创建后的一小时之内不被回收。

关于抢占式实例的更多信息,请参见什么是抢占式实例

总结:在使用伸缩组时,可以使用单价更低的抢占式实例来降低成本。但需要牺牲一定的稳定性,即无法确保实例可以一直被使用或创建。

合理利用抢占式实例降低成本

使用较低单价的抢占式实例能够有效减少伸缩组内实例集群的成本。然而,由于其固有的不稳定性,您需要仔细评估这种变化对集群整体稳定性可能带来的影响。伸缩组的稳定性可以从两个关键方面来考量:

  • 扩容稳定性:指在负载增加时,能够及时且可靠地启动新的实例以满足扩容需求。

    引入抢占式实例时,可能会因为市场价格波动或库存不足导致实例无法自动被创建,影响扩容稳定性,但您可以通过设置一系列机制提升扩容稳定性。

  • 实例稳定性:指保证已启动的实例能够持续稳定运行,不受非预期中断的影响。

    引入抢占式实例意味着部分实例可能因市场价格波动或库存不足而被自动回收,这要求业务具备快速恢复的能力,并且能够在实例被中断后无缝切换到其他可用资源上。

在评估了引入抢占式实例可能带来的成本节约及其对集群稳定性的影响后,接下来的关键是找到一个平衡点,既能有效控制成本,又能确保服务的可靠性和性能。

设计平衡成本和稳定性的方案

您可以按照以下思路设计平衡成本和集群稳定性的方案。

  • 设置合理的出价策略:通过设定略高于市场价格但低于按需价格的出价,增加获取抢占式实例的机会,同时减少因频繁中断而带来的管理负担。

  • 混合使用多种实例类型:在伸缩组引入抢占式实例时,需要根据您业务的实际情况,调整抢占式实例和按需实例的配比,从而平衡成本和集群稳定性。

    例如:您可以将按量的比例设置为可以保证业务稳定运行的最低容量,对于弹性的部分使用抢占式实例降低成本。

    不同配比的伸缩组集群稳定性与成本的变化如图所示,随着抢占式在集群中的比例的升高,成本会降低,但稳定性也会降低。

    使用抢占式实例降低成本

进一步提升集群稳定性

除了设计合理的平衡成本和稳定性方案,您还可以通过以下几个配置进一步提升伸缩组内集群的稳定性。

  • 组合多个规格实例的库存,提升扩容成功率。

    伸缩组支持配置多个实例规格,使伸缩组可以从多个规格的实例,组合多个实例规格的库存,提升伸缩组可用的抢占式实例库存,从而提升扩容成功率。

image
  • 组合多个可用区的实例库存,提升扩容成功率。

    通过配置多个可用区的交换机,使伸缩组可以在多个可用区创建抢占式实例,进一步提升伸缩组可用的抢占式实例库存,从而提升扩容成功率。

image
  • 避免抢占式实例扩容失败造成的性能缺口,维持整体性能的稳定。

    通过使用按量实例补充抢占式容量功能,可以在抢占式实例库存不足时,自动创建按量实例,避免因抢占式实例无法创建造成的集群性能缺口。

image
  • 避免因抢占式实例中断回收造成的断崖式异常,维持整体性能的稳定。

    通过开启抢占式实例补偿功能,可以实例被回收前5分钟左右,创建新的抢占式实例替换旧实例,减少因抢占式实例的中断回收造成的集群性能缺口。

image

示例:已有伸缩组使用抢占式实例降低成本

如果您已有伸缩组,您可以参考以下步骤在伸缩组中引入抢占式实例。

步骤一:为伸缩组设置多可用区交换机

设置多可用区交换机可以组合多个可用区的库存,增加伸缩组可用的抢占式实例库存。

  1. 登录弹性伸缩控制台

  2. 在顶部菜单栏处,选择地域。
  3. 在左侧导航栏中,单击伸缩组管理
  4. 找到目标伸缩组,单击伸缩组ID进入其管理页。

image

  1. 基本信息页签下,找到专有网络,单击右上方的image,进入修改专有网络页面。

image

  1. 配置多个可用区交换机,完成配置后,单击确认完成操作。

    说明

    如果您的专有网络下没有多个可用区的交换机,请先创建交换机,具体操作,请参见创建和管理交换机

image

步骤二:为伸缩组设置成本优化策略

  1. 基本信息页签下,找到组内实例扩缩容配置,单击右上方的image,进入修改组内实例扩缩容配置页面。

image

  1. 修改扩容缩容策略为成本优化策略,并根据您的实际需求完成相关配置项。配置项说明如下:

    • 组内最小按量实例数(台)

      伸缩组所需按量付费ECS实例的最小台数,默认为0台。如果伸缩组内的按量付费ECS实例的数量小于该值,将优先创建按量付费实例。

    • 按量实例所占比例(%)

      自动创建ECS实例时按量付费实例所占的比例,默认为70%。计算该值时,不包括组内最小按量实例数对应的台数。

    • 最低价的多个实例规格(个)

      价格最低的实例规格的个数,默认为1个。在伸缩配置中指定了多个可选实例规格时生效。创建抢占式实例时,伸缩组会在价格最低的几个实例规格之间均衡创建ECS实例。

    • 开启抢占式实例补偿

      开启抢占式实例补偿后,在抢占式实例被回收前5分钟,伸缩组会主动创建新的抢占式实例,并替换掉将被回收的抢占式实例。

    • 使用按量实例补充抢占式容量

      如果因价格、库存等原因无法满足所需要的抢占式实例容量时,开启该功能,伸缩组会尝试创建按量付费实例来满足当前抢占式实例的容量。

image

  1. 完成配置后单击确认

步骤三:修改伸缩配置

说明

本文以修改伸缩配置为例,您也可以根据实际情况,创建新的伸缩配置,具体操作请参见创建ECS伸缩组

  1. 实例配置来源 > 伸缩配置页签下,找到正在生效的伸缩配置,单击修改进入修改伸缩配置页面。

image

  1. 在修改伸缩配置页面,修改付费模式抢占式实例

image

  1. 修改实例配置方式为指定实例规格

  1. 设置实例的保护期以及出价方式,相关配置项如下:

    • 实例使用时长

      该配置项即抢占式实例的保护期,在保护期内,抢占式实例不会触发中断回收机制。
      • 设定实例使用1小时:设定1小时的保护期。实例创建完成后的一小时之内,实例不会触发抢占式实例存的中断回收机制,如果超过1小时,则每5分钟监测库存、出价的变化,进而判断是否能够继续使用资源。

      • 无确定使用时长:基于实际业务需求,不进行资源使用时长的设定,优势在于相较设定实例使用时长可获得更优成本。

    • 单台实例上限价格

      该配置项即实例的出价方式。
      • 使用自动出价:伸缩组会根据实例的市场价格自动出价,上限为相同规格按需实例的单价。

      • 设置单台上限价:当市场价格高于您的出价或者资源供需关系变化时,实例会被自动释放,请做好数据备份工作。

        您可以使用该出价方式控制实例的价格上限。

image

  1. 选择实例规格配置项中,选择多个实例规格以提高扩容成功率。

    说明

    如果您选择单台实例上限价格设置单台上限价,您需要为每个实例规格设置出价。

image

以自动出价为例
  1. 确认配置无误后单击修改,完成操作。

(验证)步骤四:触发扩容

在配置完成后,您可以触发一次扩容操作,检验伸缩组是否可以按照预期创建抢占式实例。本文以通过修改期望实例数触发扩容为例。

相关参数

  • 按量实例所占比例:70%。

  • 组内最小按量实例数:2台

  • 组内期望实例数:从0修改为12。

预期结果

按量付费实例数9台,抢占式实例数3台。

结果说明

组内最小按量实例数不计入按量实例所占比例,因此组内总按量实例数为,抢占式实例数为

说明

您可以在ECS控制台查看实例的付费模式。