EC2 队列实例权重
在创建 EC2 队列时,您可以定义每种实例类型为应用程序性能贡献的容量单位。然后,您可以使用实例权重调整每个启动规范的最高价格。
默认情况下,您指定的价格是每实例小时 价格。在使用实例权重功能时,您指定的价格是每单位小时 价格。您可以将某种实例类型的价格除以它表示的单位数来计算每单位小时价格。EC2 队列通过将目标容量除以实例权重,计算出要启动的实例数。如果结果不是整数,则 队列会将其向上舍入到下一个整数,以便队列的大小不低于其目标容量。队列可以选择您在启动规范中指定的任意池,即使所启动实例的容量超过请求的目标容量也是如此。
下表中提供了用于为目标容量是 10 的 EC2 队列请求确定每单位出价的计算示例。
实例类型 | 实例权重 | 目标容量 | 启动的实例数 | 每实例小时价格 | 每单位小时价格 |
---|---|---|---|---|---|
r3.xlarge |
2 |
10 |
5 (10 除以 2) |
0.05 美元 |
0.025 美元 (0.05 除以 2) |
r3.8xlarge |
8 |
10 |
2 (10 除以 8,结果向上舍入) |
0.10 美元 |
0.0125 美元 (0.10 除以 8) |
按如下所示使用 EC2 队列实例权重,在执行时具有每单位最低价格的池中预置所需的目标容量:
-
采用实例 (默认设置) 或采用所选单位 (如虚拟 CPU、内存、存储或吞吐量) 为 EC2 队列设置目标容量。
-
设置每单位价格。
-
为每个启动规范指定权重,这是实例类型向目标容量提供的单位数。
实例权重示例
考虑一个具有以下配置的 EC2 队列请求:
-
目标容量为 24
-
一个实例类型为
r3.2xlarge
且权重为 6 的启动规范 -
一个实例类型为
c3.xlarge
且权重为 5 的启动规范
每个权重表示相应实例类型向目标容量提供的单位数。如果第一个启动规范提供了最低的每单位价格(r3.2xlarge
每实例小时价格除以 6),则 EC2 队列会启动 4 个这样的实例(24 除以 6)。
如果第二个启动规范提供了最低的每单位价格(c3.xlarge
每实例小时价格除以 5),则 EC2 队列会启动 5 个这样的实例(24 除以 5,结果向上舍入)。
实例权重和分配策略
考虑一个具有以下配置的 EC2 队列请求:
-
目标容量为 30 个竞价型实例
-
一个实例类型为
c3.2xlarge
且权重为 8 的启动规范 -
一个实例类型为
m3.xlarge
且权重为 8 的启动规范 -
一个实例类型为
r3.xlarge
且权重为 8 的启动规范
EC2 队列会启动四个实例 (30 除以 8,结果向上舍入)。在使用 lowest-price
策略时,所有四个实例均来自提供最低每单位价格的池。使用 diversified
策略时,队列会在所有三个池中各启动一个实例,并在三个池中提供最低每单位价格的那个池中启动第四个实例。