本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 Auto Scaling 组配置为使用实例权重
当您使用多个实例类型时,您可以指定与每种实例类型关联的单位数量,然后使用相同的计量单位来指定组的容量。此容量规格选项称为权重。
例如,假设您运行一个计算密集型应用程序,该应用程序在至少具有 8 个 vCPU 和 15 GiB RAM 时性能最佳。如果您使用 c5.2xlarge
作为基本单元,以下任何 EC2 实例类型都将满足您的应用程序需求。
实例类型 | vCPU | 内存 (GiB) |
---|---|---|
c5.2xlarge
|
8 | 16 |
c5.4xlarge |
16 | 32 |
c5.12xlarge |
48 | 96 |
c5.18xlarge
|
72 | 144 |
c5.24xlarge |
96 | 192 |
默认情况下,无论大小如何,所有实例类型的权重都相同。换句话说,无论 Amazon EC2 Auto Scaling 启动大型还是小型实例类型,每个实例都会计入自动扩缩组的所需容量。
但是,对于权重,您可以分配一个数字值,该值指定与每种实例类型关联的单位数量。例如,如果实例大小不相同,c5.2xlarge
实例的权重可能为 2,而 c5.4xlarge
(大两倍)的权重可能为 4,依此类推。然后,在 Amazon EC2 Auto Scaling 扩展组时,这些权重将转换为每个实例计入您所需容量中的单位数量。
权重不会更改 Amazon EC2 Auto Scaling 选择启动的实例类型;而是分配策略会做到这一点。有关更多信息,请参阅 多种实例类型的分配策略。
重要
要使用 vCPU 数量或每种实例类型的内存量配置自动扩缩组以满足其所需容量,我们建议使用基于属性的实例类型选择。设置该DesiredCapacityType
参数会根据您为此参数设置的值自动指定与每种实例类型关联的单位数。有关更多信息,请参阅 使用基于属性的实例类型选择创建混合实例组。
注意事项
本节讨论有效实现权重的关键注意事项。
-
选择几种符合应用程序性能需求的实例类型。根据每种实例类型的功能,确定每种实例类型应计入 Auto Scaling 组所需容量的权重。这些权重适用于当前和将来的实例。
-
避免权重之间的距离过大。例如,当下一个较大的实例类型的权重为 200 时,不要将某个实例类型的权重指定为 1。此外,最小权重和最大权重之间的差异不能太极端。极端的重量差异会对性价比优化产生负面影响。
-
以单位而不是实例为单位指定组的所需容量。例如,如果您使用基于 vCPU 的权重,请设置所需的内核数以及最小和最大值。
-
设置权重和所需容量,使所需容量至少比最大权重大两到三倍。
更新现有群组时请注意以下几点:
-
向现有组添加权重时,应包括当前正在使用的所有实例类型的权重。
-
当您添加或更改权重时,Amazon EC2 Auto Scaling 将根据新的权重值启动或终止实例以达到所需的容量。
-
如果您移除某个实例类型,则该类型的正在运行的实例会保留其上次权重,即使不再定义也是如此。
实例权重行为
当您使用实例权重时,Amazon EC2 Auto Scaling 的行为方式如下:
-
当前容量等于或高于所需容量。如果启动的实例超过了剩余的所需容量单位,则当前容量可能会超过所需容量。例如,假设您指定了两个实例类型
c5.2xlarge
和c5.12xlarge
,并且您为c5.2xlarge
分配了实例权重 2,为c5.12xlarge
分配了实例权重 12。如果还剩 5 个单位才能实现所需容量,Amazon EC2 Auto Scaling 会预配置c5.12xlarge
,所需容量将超过 7 个单位。 -
启动实例时,Amazon EC2 Auto Scaling 优先考虑在可用区之间分配容量并遵守分配策略,而不是超过所需容量。
-
使用您的首选分配策略,Amazon EC2 Auto Scaling 可以超过最大容量限制,以保持可用区域间的平衡。Amazon EC2 Auto Scaling 强制执行的硬限制是您的所需容量加上您的最大重量。