全部產品
Search
文件中心

Elastic Compute Service:通過部署集提高業務可用性或降低ECS執行個體間通訊延時

更新時間:Oct 25, 2024

部署集是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執行個體(節省停機模式)失敗。一般情況下,您可以等待一段時間後重試建立或重啟操作。更多資訊,請參見節省停機模式

  • 部署集不支援建立Dedicated Host。

  • 部署集數量限制:單個阿里雲賬戶可擁有的部署集的數量有上限,具體可在配額中心查看。

  • 地區與可用性區域限制:執行個體與部署集必須在同一地區;策略為網路低時延的部署集內的執行個體,必須都在同一可用性區域。

  • 支援的執行個體規格類型系列限制

    不同部署策略僅支援建立特定的執行個體規格類型系列,具體資訊如下。

    說明

    您也可以調DescribeDeploymentSetSupportedInstanceTypeFamily指定部署集策略來擷取各部署集策略支援的執行個體規格類型系列。

    部署策略

    支援的執行個體規格類型系列

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

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

    • 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

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

    • i3g、i3、i2、i2g、i2ne、i2gne、i1

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

    • e、t6、xn4、mn4、n4、e4、n2、n1、

    • gn6i

    網路低時延策略

    • g8a、g8i、g8ae、g8y

    • c8a、c8i、c8ae、c8y

    • ebmc8i、ebmg8i、ebmr8i

    • r8a、r8i、r8ae、r8y

    • 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,證明移除成功。

修改或刪除部署集

部署集列表,找到目標部署集,單擊操作列的修改資訊刪除,按照介面提示完成操作。

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

  • 刪除部署集:當您不再需要使用部署集時,您可以刪除部署集,以免造成不必要的資源佔用。

    重要

    刪除部署集時,請確保部署集內沒有執行個體。如果存在執行個體,必須移出執行個體後才能刪除部署集。具體操作,請參見調整執行個體所屬部署集將執行個體移出部署集