为规避底层物理机单点故障,或满足高频交易等应用对极致低延迟的需求,可通过配置部署集来控制ECS实例的分布。选择高可用策略可打散实例以提升容灾能力,选择低时延策略可集中实例以加快网络通信。
适用范围
-
部署集不支持创建专有宿主机。
-
地域与可用区限制:实例与部署集必须在同一地域;策略为网络低时延的部署集内的实例,必须都在同一可用区。
-
实例规格族限制:大部分6代及以上实例支持高可用、部署集组高可用及网络低时延策略部署集。
快速使用
步骤一:创建部署集
通过控制台
访问ECS控制台-部署集。
在页面左侧顶部,选择目标资源所在的资源组和地域。
-
在部署集页面,单击创建部署集。
-
在创建部署集对话框,输入部署集名称和描述,选择策略。如果选择高可用策略,还可以设置部署类型(物理机、机架或交换机)和亲和度(1~10)。如何选择部署策略?
通过API
调用CreateDeploymentSet在指定的地域内创建一个部署集,并设置部署集策略。
-
如果部署策略为部署集组高可用策略,可指定参数
GroupCount设置分组数量。 -
如果部署策略为高可用策略,可指定参数
Type设置部署类型(host、rack或sw),默认值为host。 -
如果部署策略为高可用策略,可指定参数
Affinity设置亲和度(1~10),默认值为1。
步骤二:在部署集内创建或添加ECS实例
通过控制台
ECS实例的规格、地域、数量需符合使用限制要求。具体,请参见使用限制。
-
在部署集内创建新实例:
在部署集列表页面,找到目标部署集,在部署集的操作列中,单击创建实例,跳转到自定义购买页面完成实例配置选项。
-
将已创建实例加入部署集:具体操作,可参见调整实例所属部署集。
通过API
-
在部署集内创建新实例:调用RunInstances接口,并指定
DeploymentSetId(部署集ID)。为部署集组高可用策略设置分组数量。
-
将已创建实例加入至部署集:调用ModifyInstanceDeployment接口,并指定参数
InstanceId(实例ID)和DeploymentSetId(部署集ID)。说明如果指定的部署集对应策略为
AvailabilityGroup(部署集组高可用策略),可以通过参数DeploymentSetGroupNo指定实例在部署集中的分组号。
部署策略
部署策略用于确定ECS实例在物理服务器上的部署方式,您可以根据业务对于高可用性、网络延迟和部署规模等要求来选择。
|
场景 |
推荐策略 |
关键限制 |
|
小规模集群,严格隔离故障 |
高可用策略 |
单可用区最多20~100台(取决于部署类型和亲和度) |
|
大规模部署,分组隔离 |
部署集组高可用策略 |
单可用区最多7组×20台/组 |
|
低网络延迟 |
网络低时延策略 |
必须同可用区,最多20台 |
高可用策略
将实例分散部署在不同的物理机、机架或交换机上,避免单点故障导致多台实例同时不可用。
打散粒度越细(如交换机级别),容灾能力越强,但可能面临更高的创建失败率。如果当前可用区没有足够的独立物理机/机架/交换机满足打散要求,实例创建将失败,请等待一段时间后重试或选择其他可用区。
-
适用场景:小规模部署,且对服务连续性和隔离性有较高要求的系统,如Hadoop分布式计算集群、SQL数据库集群等。
-
可用区:实例可部署在不同可用区。
-
实例数量:单个可用区的实例数上限取决于部署类型和亲和度设置。
部署类型
部署类型指定部署集内ECS实例的打散维度,取值如下:
|
取值 |
打散维度 |
说明 |
|
|
物理机级别 |
实例分散部署在不同物理服务器上,避免单台物理机故障影响多个实例。 |
|
|
机架级别 |
实例分散部署在不同机架上,规避因机架电力故障导致的批量实例不可用风险。 |
|
|
交换机级别 |
实例分散部署在不同交换机下,规避因交换机故障导致的网络中断风险。 |
亲和度
亲和度表示每个物理机上允许部署的最大实例数。取值范围为1~10,默认值为1。
-
亲和度为1时,实现严格打散,即每个物理机上最多部署1台实例。
-
亲和度大于1时,实现尽力打散,适用于实例数量较多但仍需一定程度容灾隔离的场景。
以下示例以部署类型为物理机(host)的场景,说明亲和度如何影响实例分布:
场景一:基于部署集创建实例
创建 HOST 类型部署集(Affinity=2),在该部署集中创建 3 台 ECS 实例。系统根据亲和度约束,将实例分散部署到不同物理机上,单台物理机最多承载 2 个实例。
场景二:调整部署集亲和度(调大)
将已有部署集的 Affinity 从 1 调整为 2。调大亲和度后,系统将允许单台物理机承载更多实例,为后续扩容提供空间。已有实例无需迁移。
实例数量上限
部署集的实例数量上限取决于部署类型和亲和度的组合:
|
部署类型(Type) |
亲和度(Affinity) |
单地域 上限 |
|
|
1~10 |
20台 |
|
|
1~10 |
20台 |
|
|
1~10 |
20台 |
部署集组高可用策略
将实例分配到多个分组中(最多7组),不同分组严格分散在不同物理服务器上,同组内允许集中部署。
不同分组的ECS实例会在指定地域内严格分散在不同的物理服务器上,避免单点故障;同组内多台ECS实例不保证分散部署,可能部署在同一物理机,从而降低互访延时。
通过接口DescribeInstances可查询实例在部署集中分组的位置(DeploymentSetGroupNo)。分布式应用(如HDFS、Cassandra)可利用分组号信息做智能副本放置决策,确保不同副本分布在不同分组中,从而在分组级故障时仍保持数据可用。
-
适用场景:大规模部署且需要高隔离性的应用,尤其是已具备内部高可用机制(如Redis主从复制、Nginx负载均衡)的业务。
-
可用区:实例可部署在不同可用区。
-
实例数量:单可用区单组的实例上限20台,单可用区最多可有7个组。
网络低时延策略
将实例集中部署在同一网络拓扑范围内,最大限度降低实例间网络通信延迟。
该策略以牺牲高可用性换取低延迟——多台实例可能集中在同一台物理服务器上。请确保您的应用已自身实现了高可用机制(如多副本、主从切换)。
-
适用场景:高性能计算(HPC)、实时数据分析、AI推理等对网络延迟有严苛要求的应用。
-
可用区:实例必须部署在同一个可用区。
-
实例数量:不可超过20台。
-
容量不足时:如果同一网络拓扑范围内没有足够资源,实例创建将失败。建议等待后重试,或联系客服确认资源可用性。
更多操作
调整实例所属部署集
根据业务需求,更改ECS实例所属的部署集,将其从一个部署集转移到另一个部署集,或将未加入部署集的实例添加到符合业务需求的目标部署集中。
通过控制台
访问ECS控制台-实例。
在页面左侧顶部,选择目标资源所在的资源组和地域。
-
单击目标实例ID进入实例详情页,单击全部操作展开所有操作面板,然后搜索并单击。
-
在调整实例所属部署集对话框中,选择目标部署集,并设置是否强制调整。
-
是:允许更换实例物理服务器。该操作可能会导致实例重启,影响服务的连续性,请谨慎操作。
-
否:不会更换实例的物理服务器,而是尝试将实例加入到指定的部署集。这种方式避免了实例重启的风险,但如果当前实例不满足新部署集的要求,会导致调整失败。
-
通过API
调用接口ModifyInstanceDeployment,并指定以下参数,调整实例所属部署集:
-
RegionId:选择实例所属地域。例如,
cn-hangzhou,即华东1(杭州)。 -
InstanceId:实例ID。例如,
i-bp67acfmxazb4ph***。 -
DeploymentSetId:目标部署集ID。例如,
ds-bp67acfmxazb4ph****。 -
Force:实例在调整部署集时,是否强制更换物理服务器。取值:
-
true:允许更换实例物理服务器。该操作可能会导致实例重启,影响服务的连续性,请谨慎操作。
-
false(默认):不会更换实例的物理服务器,而是尝试将实例加入到指定的部署集。这种方式避免了实例重启的风险,但如果当前实例不满足新部署集的要求,会导致调整失败。
-
将实例移出部署集
如果在删除部署集时,需要保留当前部署集内的实例,可以从部署集中移除实例后再进行删除,移除后实例保持原有状态。
-
调用ModifyInstanceDeployment,并指定以下参数,将实例移出部署集:
-
RegionId:选择实例所属地域。例如,
cn-hangzhou,即华东1(杭州)。 -
InstanceId:实例ID。例如,
i-bp67acfmxazb4ph***。 -
DeploymentSetId:部署集ID。例如,
ds-bp67acfmxazb4ph****。 -
RemoveFromDeploymentSet:是否将所选实例移出所选部署集。选择:
true。
-
-
验证实例是否移除成功:接口调用成功,且返回状态码:200,证明移除成功。
修改或删除部署集
在ECS控制台-部署集,找到目标部署集,单击操作列的修改信息或删除,按照界面提示完成操作。
-
修改部署集:修改部署集的名称和描述。
-
删除部署集:当您不再需要使用部署集时,您可以删除部署集,以免造成不必要的资源占用。
使用限制
遇到地域内供货紧缺时,可能无法创建ECS实例,或者重启按量付费ECS实例(节省停机模式)失败。一般情况下,您可以等待一段时间后重试创建或重启操作。更多信息,请参见节省停机模式。
-
部署集数量限制:单个阿里云账户可拥有的部署集的数量有上限,具体可在配额中心查看。
-
部署类型(Type)不支持变更:部署集创建后,其部署类型无法修改。如需变更,需新建部署集并迁移实例。
-
亲和度(Affinity)调整规则:
-
调大亲和度:无约束,可直接修改。当部署类型为
host时,调大亲和度可能会同步上调实例数量上限。 -
调小亲和度:需要先将部署集内的实例全部移出,清空部署集后再修改。
-
-
部署集之间不支持相互合并。
费用说明
使用部署集不会收取服务费用,但创建和使用的ECS实例、磁盘、快照、镜像和公网带宽等服务将收取费用。更多信息,请参见计费概述。