通过部署集提高业务可用性或降低ECS实例间通信延时

部署集是ECS实例在物理服务器上的放置策略。针对追求高可用性的集群业务,可利用高可用或部署集组高可用策略,将ECS实例分散部署在不同的物理服务器上,以避免单点故障,提高业务的可用性;对于网络延迟高度敏感的应用(如高频交易、实时数据分析等),可利用网络低时延策略,将ECS实例集中部署到同一个网络拓扑范围内,缩短ECS实例间的网络通信延时。本文主要介绍部署集的部署策略、使用限制及如何使用部署集。

部署策略

部署策略用于确定ECS实例在物理服务器上的部署方式,您可以根据业务对于高可用性、网络延迟和部署规模等要求来选择。

策略

说明

高可用策略(Availability)

确保部署集内的ECS实例分散部署在不同物理服务器上,有效降低因单台服务器故障导致的服务中断风险。

  • 适用场景:小规模部署,且对服务连续性和隔离性有较高要求的系统,如Hadoop分布式计算集群、SQL数据库集群等。

  • 可用区:实例可部署在不同可用区。

  • 实例数量:单个可用区的实例数不超过20台。

部署集组高可用策略(AvailabilityGroup)

在单一可用区内提供更精细的控制,单可用区内支持将实例分配到最多7个不同的分组中,实现更高级别的故障隔离。

不同分组的ECS实例会在指定地域内严格分散在不同的物理服务器上,避免单点故障;同组内多台ECS实例不保证分散部署,可能部署在同一物理机,从而降低互访延时。

说明

通过接口DescribeInstances可查询实例在部署集中分组的位置(DeploymentSetGroupNo)。

  • 适用场景:大规模部署且需要高隔离性的应用,尤其是已具备内部高可用机制(如Redis主从复制、Nginx负载均衡)的业务。

  • 可用区:实例可部署在不同可用区。

  • 实例数量:单可用区单组的实例上限20台,单可用区最多可有7个组。

网络低时延策略(LowLatency)

所有ECS实例会集中部署在同一可用区内的同一个网络拓扑范围内,可降低网络互通的时延。

重要

可能导致多台实例集中在同一台物理服务器上,无法保证高可用。

  • 适用场景:对网络响应时间高度敏感的应用,尤其是应用自身已经实现了高可用机制,但对数据交换速度有严苛要求。比如高性能计算、实时数据分析、AI推理等场景。

  • 可用区:实例必须部署在同一个可用区。

    实例数量:不可超过20台。

使用限制

重要

遇到地域内供货紧缺时,可能无法创建ECS实例,或者重启按量付费ECS实例(节省停机模式)失败。一般情况下,您可以等待一段时间后重试创建或重启操作。更多信息,请参见节省停机模式

  • 部署集不支持创建专有宿主机。

  • 部署集数量限制:单个阿里云账户可拥有的部署集的数量有上限,具体可在配额中心查看。

  • 地域与可用区限制:实例与部署集必须在同一地域;策略为网络低时延的部署集内的实例,必须都在同一可用区。

  • 支持的实例规格族限制

    不同部署策略仅支持创建特定的实例规格族,具体信息如下。

    说明

    您也可以调DescribeDeploymentSetSupportedInstanceTypeFamily指定部署集策略来获取各部署集策略支持的实例规格族。

    部署策略

    支持的实例规格族

    高可用策略和部署集组高可用策略

    • g8a、g8i、g8y、g7se、g7a、g7、g7h、g7t、g7ne、g7nex、g6、g6e、g6a、g6h、g5、g5ne、sn2ne

    • c8a、c8i、c8y、c7se、c7、c7t、c7nex、c7a、c6、c6a、c6e、c5、ic5、sn1ne

    • r8a、r8i、r8y、r7、r7se、r7t、r7a、r6、r6e、r6a、re6、re6p、r5、re4、se1ne、se1

    • hfc8i、hfg8i、hfr8i、hfc7、hfg7、hfr7、hfc6、hfg6、hfr6、hfc5、hfg5

    • d3s、d3c、d2s、d2c、d1、d1ne、d1-c14d3、d1-c8d3

    • i4、i4g、i4r、i3g、i3、i2、i2g、i2ne、i2gne、i1

    • ebmg5、ebmc7、ebmg7、ebmr7、sccgn6、scch5、scch5s、sccg5、sccg5s

    • e、s6、t6、xn4、mn4、n4、e4

    • gn6i

    • u1

    网络低时延策略

    • g8a、g8i、g8ae、g8y

    • c8a、c8i、c8ae、c8y

    • ebmc8i、ebmg8i、ebmr8i

    • r8a、r8i、r8ae、r8y

    • i4

    • hfc8i、hfg8i、hfr8i

    • ebmgn7ex、ebmc7、ebmg7、ebmr7

  • 部署集之间不支持相互合并。

费用说明

使用部署集不会收取服务费用,但您创建和使用的ECS实例、磁盘、快照、镜像和公网带宽等服务将收取费用。更多信息,请参见计费概述

快速使用

步骤一:创建部署集

通过控制台
  1. 在ECS管理控制台,进入部署集页面(即部署与弹性 > icon1 > 部署集)。

  2. 在页面左侧顶部,选择目标资源所在的资源组和地域。地域

  3. 创建部署集对话框,输入部署集名称描述,选择策略如何选择部署策略?

通过API

调用CreateDeploymentSet在指定的地域内创建一个部署集,并设置部署集策略。

如果部署策略为部署集组高可用策略,可指定参数GroupCount设置分组数量。

步骤二:在部署集内创建或添加ECS实例

通过控制台
重要

ECS实例的规格、地域、数量需符合使用限制要求。具体,请参见使用限制

  • 在部署集内创建新实例

    在部署集列表页面,找到目标部署集创建实例,在部署集的操作列中,单击创建实例,跳转到自定义购买页面完成实例配置选项。

    image

  • 将已创建实例加入部署集:具体操作,可参见调整实例所属部署集

通过API
  • 在部署集内创建新实例:调用RunInstances接口,并指定DeploymentSetId(部署集ID)。

    为部署集组高可用策略设置分组数量。

  • 将已创建实例加入至部署集:调用ModifyInstanceDeployment接口,并指定参数InstanceId(实例ID)和DeploymentSetId(部署集ID)。

    说明

    如果指定的部署集对应策略为AvailabilityGroup(部署集组高可用策略),可以通过参数DeploymentSetGroupNo指定实例在部署集中的分组号。

更多操作

调整实例所属部署集

您可以根据业务需求,更改ECS实例所属的部署集,将其从一个部署集转移到另一个部署集,或将未加入部署集的实例添加到符合业务需求的目标部署集中。

操作步骤
通过控制台
  1. 进入实例列表页面。

  2. 在页面左侧顶部,选择目标资源所在的资源组和地域。地域

  3. 找到目标实例,在操作列中,选择1 > 部署与弹性 > 调整实例所属部署集

  4. 调整实例所属部署集对话框中,选择目标部署集,并设置是否强制调整。

    • :允许更换实例物理服务器。该操作可能会导致实例重启,影响服务的连续性,请谨慎操作。

    • :不会更换实例的物理服务器,而是尝试将实例加入到指定的部署集。这种方式避免了实例重启的风险,但如果当前实例不满足新部署集的要求,会导致调整失败。

通过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,证明移除成功。

修改或删除部署集

部署集列表,找到目标部署集,单击操作列的修改信息删除,按照界面提示完成操作。

  • 修改部署集:修改部署集的名称和描述。

  • 删除部署集:当您不再需要使用部署集时,您可以删除部署集,以免造成不必要的资源占用。

    重要

    删除部署集时,请确保部署集内没有实例。如果存在实例,必须移出实例后才能删除部署集。具体操作,请参见调整实例所属部署集将实例移出部署集