使用容量预留在特定可用区中预留容量
Amazon EC2 按需容量预留允许您在特定的可用区中预留计算容量。如需开始使用 Auto Scaling 容量预留,请先在指定的可用区中创建容量预留或容量预留组。然后,就可以在创建自动扩缩组或更新现有组时,向自动扩缩组添加容量预留首选项。
要创建容量预留,请参阅《Amazon EC2 用户指南》中的创建容量预留。要创建容量预留组,请参阅《Amazon EC2 用户指南》中的创建容量预留组。
容量预留首选项
容量预留首选项通过在使用按需容量之前确定容量预留中预留容量的优先级,可帮助您高效使用容量预留。您可以从以下容量预留首选项中选择:
-
默认:Auto Scaling 使用启动模板中的容量预留首选项,或使用开放容量预留。
-
无:Auto Scaling 不会将实例启动到容量预留中。实例使用按需容量运行。
-
仅限容量预留:Auto Scaling 仅会将实例启动到容量预留或容量预留组中。如果容量不可用,则实例将无法启动。
-
容量预留优先:Auto Scaling 会将实例启动到容量预留或容量预留组中。如果容量不可用,则实例将以按需容量运行。
如果选择“仅限容量预留”或“容量预留优先”,则可以指定容量预留目标。
注意
必须选择容量预留首选项。容量预留目标是可选的。
容量预留首选项及启动模板的注意事项
如果选择“仅限容量预留”或“容量预留优先”,请考虑以下事项:
-
如果选择“仅限容量预留”或“容量预留优先”,自动扩缩将使用自动扩缩组中指定的容量预留目标,而不是启动模板中的容量预留目标。
-
如果选择“仅限容量预留”或“容量预留优先”,并且未指定容量预留目标,自动扩缩将使用启动模板容量预留目标或打开的容量预留。
容量预留目标规范
如果选择“仅限容量预留”或“容量预留优先”,则可使用以下容量预留目标选项:
-
开放:Auto Scaling 将实例启动到任何开放容量预留中。如果选择了仅限容量预留,而容量不可用,实例将启动失败。如果选择了容量预留优先,而容量不可用,实例将在按需容量中启动。
-
指定容量预留:Auto Scaling 将实例启动到指定容量预留中。如果选择了仅限容量预留,而容量不可用,实例将启动失败。如果选择了容量预留优先,而容量不可用,实例将在按需容量中启动。
-
指定容量预留资源组:Auto Scaling 将实例启动到指定容量预留资源组中的开放容量预留中。如果选择了仅限容量预留,而容量不可用,实例将启动失败。如果选择了容量预留优先,而容量不可用,实例将在按需容量中启动。
可用区平衡与容量预留
即使您使用了容量预留首选项,Auto Scaling 也会优先考虑可用区平衡。这意味着:
-
使用
capacity-reservations-first:自动扩缩组首先在可用区之间均匀分配实例,然后使用容量预留(如果可用)。如果可用区中没有容量预留,则实例将按需启动,以保持可用区平衡。 -
使用
capacity-reservations-only:自动扩缩组将仅使用容量预留。这可能会导致实例跨可用区分布不均匀,具体取决于容量预留的可用位置。
示例
如果可用区 a 中有 10 个容量预留,可用区 b 中有 3 个容量预留,可用区 c 中有 1 个容量预留,而所需容量为 9 个实例:
-
如果 9 个实例使用
capacity-reservations-first,则每个可用区将会出现 3 个实例(保持可用区平衡),有些实例可能会按需运行。 -
如果 9 个实例使用
capacity-reservations-only,则会导致分配不均匀,具体取决于可用容量预留。