全部产品
Search
文档中心

云服务器 ECS:弹性供应概述

更新时间:Jan 30, 2024

弹性供应是一种快速交付ECS实例集群的方案,简单配置后即可自动在多个可用区内交付不同计费方式(按量付费和抢占式实例)、多种实例规格的实例集合,提升批量交付大量实例的效率。同时,弹性供应提供多种供应策略,有效缓解抢占式实例被回收对业务的影响,让您更稳定地使用低价算力。例如,使用按量付费实例满足最低算力的需求,然后在此基础上使用抢占式实例,可以满足您的算力需求并降低成本。本文为您介绍弹性供应的应用的应用场景、计费说明和使用说明。

弹性供应简介

弹性供应组根据您设置的资源池、目标容量、供应策略等属性自动交付实例集群,您无需逐一关注实例的创建过程或计算单台实例的成本。以下为弹性供应组的主要属性:

属性

说明

资源池

单可用区和单实例规格的组合形成一个资源池,指定多个可用区、多个实例规格,弹性供应组在创建实例时即可有多个资源池可以选择。

目标容量

期望通过弹性供应组交付的算力,分为抢占式实例容量和按量付费实例容量,容量单位支持实例个数、vCPU个数或内存大小。

弹性供应组默认使用抢占式实例来满足目标容量的需求,但您也可以手动指定按量付费实例来满足最低算力的需求。如果您指定了按量付费实例容量,弹性供应组会优先创建按量付费实例,再创建抢占式实例以补足剩余容量。但如果库存不足无法创建抢占式实例时,弹性供应组会创建按量付费实例来满足目标容量的需求。

供应策略

创建实例时选择资源池的策略,例如尽量选择单价低的资源池以降低成本,尽量在不同可用区均衡创建实例以提高集群的可用性。有关供应策略的更多信息,请参见策略类型

应用场景

弹性供应组和抢占式实例的应用场景类似,适用于无状态应用的场景,例如可横向伸缩的Web站点服务、图像渲染、大数据分析以及并行计算等。更多信息,请参见什么是抢占式实例

计费说明

弹性供应本身不收费。

但是您需要为创建出的ECS实例付费。弹性供应支持创建抢占式实例和按量付费实例,更多信息,请参见什么是抢占式实例按量付费

重要

请确保账户余额充足,以避免欠费导致后付费ECS实例(包括按量付费和抢占式实例)停机。停机时间点,请参见按量付费。如果账号欠费,弹性供应组将无法交付新的ECS实例。由于弹性供应组具有健康检查功能,已停机的ECS实例将被视为不健康状态并被移出弹性供应组并释放。

使用说明

在创建弹性供应组之前,请确定以下内容:

  • 确定弹性供应组的实例基本配置,即启动模板。更多信息,请参见实例启动模板概述

    弹性供应组沿用启动模板中指定的镜像、安全组、登录凭证等属性,但不会直接使用交换机(决定实例所在可用区)和实例规格属性,而是使用单独指定的交换机和实例规格。

  • 确定弹性供应组的资源池,实现多可用区、多实例规格。

    单可用区和单实例规格的组合形成一个资源池,当某些资源池库存不足时,弹性供应组会自动切换到其他资源池继续尝试创建实例。资源池越多,创建实例时的可选范围越大,创建成功率越高。

    重要

    单可用区下仅支持指定一个交换机。如果指定了同一个可用区下的多个交换机,仅第一个交换机生效。

  • 确定弹性供应组的目标容量以及不同类型容量的占比。

    弹性供应组目标容量的单位支持实例个数、vCPU个数和内存大小,通过权重表示单台实例可满足的容量大小。权重规则如下:

    • 如果目标容量单位为实例个数,各实例规格的权重都是相同的。

    • 如果目标容量单位为vCPU个数,各实例规格的权重和vCPU个数有关,vCPU个数越多,权重越大,满足目标容量所需实例的数量越少。

    • 如果目标容量是实例规格多个维度因子(例如vCPU、内存)的组合,请您自行评估指定实例规格能为目标容量贡献的算力,然后手动为各实例规格设置权重,权重越大代表该实例规格能贡献的算力越大。

      说明

      仅在调用API CreateAutoProvisioningGroup创建弹性供应组时支持手动设置权重。

    按量付费实例容量用于满足最低算力的需求,在此基础上使用抢占式实例可以大大降低成本。

  • 确定供应策略。

    弹性供应组支持的策略类型如下表所示。

    策略类型

    适用于

    支持设置策略的方式

    说明

    容量优化策略(capacity-optimized)

    抢占式实例

    • 控制台(抢占式实例):供应策略设置为容量优化策略

    • API(抢占式实例):SpotAllocationStrategy取值为capacity-optimized

    综合考虑抢占式实例的回收率和价格,使用创建成功率高且成本相对较低的资源池创建实例,有效降低抢占式实例被回收的次数,保证容量稳定。

    多可用区均衡策略(diversified)

    抢占式实例

    • 控制台(抢占式实例):供应策略设置为多可用区均衡策略

    • API(抢占式实例):SpotAllocationStrategy取值为diversified

    优先在多个可用区中均衡地创建实例,规避因单可用区库存不足导致实例创建失败,有效提高应用容灾能力。

    成本最优策略(lowest-price)

    抢占式实例、按量付费实例

    • 控制台(抢占式实例):供应策略设置为成本最优策略

    • API(抢占式实例):SpotAllocationStrategy取值为lowest-price

    • API(按量付费实例):PayAsYouGoAllocationStrategy取值为lowest-price

    使用成本最低的资源池创建实例,有效降低成本。此处成本最低指vCPU单价最低。

    如果您调用CreateAutoProvisioningGroup创建弹性供应组,可以针对抢占式实例指定使用成本最优策略和使用的资源池数量(SpotInstancePoolsToUseCount),同时使用成本最低的多个资源池创建实例。

    例如,目标容量为100台抢占式实例,SpotInstancePoolsToUseCount取值为5,则使用每个资源池创建20台实例。当单个资源池对应的抢占式实例被回收时,其他资源池对应的抢占式实例仍然可用,可以有效提高服务的可用性。

    优先级策略(prioritized)

    按量付费实例

    API(按量付费实例):PayAsYouGoAllocationStrategy取值为prioritized

    按照资源池的优先级从高到低依次创建实例,在高优先级资源池的库存不足时,才会使用低优先级资源池创建实例。

    需要调用CreateAutoProvisioningGroup创建弹性供应组,指定使用优先级策略和资源池的优先级(LaunchTemplateConfig.N.Priority)。

    重要

    仅在调用API CreateAutoProvisioningGroup创建弹性供应组时支持为按量付费实例设置供应策略,否则默认应用成本最优策略。

  • 确定价格上限。

    弹性供应组支持针对单资源池和全部资源池设置抢占式实例的价格上限。如果超过了价格上限,弹性供应组即使没有达到目标容量也会停止创建实例,保证不会超过您的预算。

    针对按量付费实例,您可以搭配预留实例券、节省计划等折扣计划,进一步降低成本。更多信息,请参见预留实例券概述节省计划概述

  • 确定是否持续保持目标容量。

    弹性供应组分为一次性交付和持续保持两种类型。其中,持续保持类型的弹性供应组具备自动健康检查功能,实时比对实际容量与目标容量,自动创建新的实例以补足算力需求,确保实时容量满足需求。当发现实例不健康或库存不足时,该类型的弹性供应组会自动执行补充操作。

弹性供应组启动后会自动根据供应策略选择合适的资源池,尝试交付满足目标容量需求的实例集群。例如,您希望基于启动模板MyLaunchTemplate交付一个包含12台实例的集群,并尽量提高集群的可用性,则设置弹性供应组的流程如下:

  1. 基于MyLaunchTemplate扩展出多个资源池。

  2. 确定抢占式实例容量和按量付费实例容量的占比。

  3. 选择提高集群可用性的供应策略。

image

使用限制

  • 弹性供应组不支持跨地域供应实例。

  • 每个弹性供应组最多指定一个启动模板的指定版本作为实例的基本配置,但是您可以扩展模板中的实例规格,形成多个资源池。

  • 弹性供应组下最多支持设置20个资源池(即可用区+实例规格的组合)。

  • 每个弹性供应组下最多创建1000台实例。

弹性供应配置指引

您可以根据如下操作,使用弹性供应。

  1. (条件必选)授予当前账号操作权限。

    如果您使用RAM用户,则需要授予该RAM用户操作弹性供应组的相关权限。具体操作,请参见管理弹性供应服务关联角色

  2. 创建弹性供应服务关联角色。

    具体操作,请参见管理弹性供应服务关联角色

  3. 创建实例启动模板后,创建弹性供应组。

    具体操作,请参见创建弹性供应组。您也可以在查看弹性供应组配置示例后,再根据实际需要创建弹性供应组,更多信息,请参见弹性供应组配置示例

  4. 管理弹性供应组。

相关文档

  • 如果您需要在业务需求量有波动时自动增加或减少ECS实例的数量,则您可以通过配置伸缩组来自动调整业务计算能力(即实例数量)。更多信息,请参见什么是弹性伸缩ESS

  • 更多创建ECS实例的方式,请参见ECS实例交付(创建)方式