阿里雲團隊努力不懈,讓最新技術內容能以更快方式以您最熟悉的語言呈現給您。本文內容由機器自動翻譯簡體中文,過程無人工干預。轉碼所造成任何內容錯誤及相關損失,阿里雲概不負責。敬請見諒。若任何內容問題涉及信息準確性,請以英文版為準。
全部產品
Search
文件中心

用負載平衡實現ECS的高可用性

更新時間: Aug 23, 2018

負載平衡(Server Load Balancer)是將訪問流量根據轉寄策略分發到後端多台Elastic Compute Service的流量分發控制服務。

應用場景

在以下應用場景中,若您搭配使用SLB,可以極大地提高ECS執行個體的高可用性。

高訪問量的業務

若應用訪問量很高,可以通過配置監聽規則將流量分發到不同的ECS執行個體上。此外,您可以使用會話保持功能將同一用戶端的請求轉寄到同一台後端ECS,提高訪問效率。

橫向擴張系統

根據業務發展需要,通過隨時添加和移除ECS執行個體來擴充應用系統的服務能力,適用於各種Web伺服器和App伺服器。詳情參見添加後端伺服器

消除單點故障

您可以在Server Load Balancer執行個體下添加多台ECS執行個體。當其中一部分ECS執行個體發生故障後,負載平衡會自動屏蔽故障的ECS執行個體,將請求分發給正常啟動並執行ECS執行個體,保證應用系統仍能正常工作。

同城容災 (多可用性區域容災)

使用負載平衡時,您可以將Server Load Balancer執行個體部署在支援多可用性區域的地域以實現同城容災。通過該特性可實現當整個機房故障時,負載平衡能在較短時間內,將前端訪問流量切換到同一地域下的其它可用性區域,以恢複服務能力。

說明:如果您的每個可用性區域均至少添加了1台ECS執行個體,那麼此種部署模式下的負載平衡服務的效率是最高的。

本地容災

跨地域容災

您可以在不同地域下部署Server Load Balancer執行個體,並分別掛載相應地域內不同可用性區域的ECS。上層利用雲解析做智能DNS,將網域名稱解析到不同地域的Server Load Balancer執行個體服務地址下,可實現全域負載平衡。當某個地域出現不可用時,暫停對應解析即可實現所有使用者訪問不受影響。

異地容災

準備工作

在使用負載平衡前,您需要做好以下準備:

規劃Server Load Balancer執行個體的地域

阿里雲提供包括華北、華東、華南、亞太東南、亞太東北、歐洲中部、美國東部、美國西部、香港、中東東部在內的不同地域的負載平衡服務。

在選擇地域時,請注意:

  • 為了減少延遲並提高下載速度,建議選擇離您客戶最近的地域。

  • 由於負載平衡不支援跨地域部署,因此應選擇與後端ECS執行個體相同的地域(提前規劃好部署地域)。

選擇Server Load Balancer執行個體的類型(公網或私網)

根據您的業務類型,確定負載平衡的執行個體類型。Server Load Balancer執行個體建立後,系統會根據執行個體類型分配一個公網服務地址或私網服務地址。

  • 公網Server Load Balancer執行個體僅提供公網IP,可以通過Internet訪問負載平衡服務。
  • 私網Server Load Balancer執行個體僅提供阿里雲私網IP,只能通過阿里雲內部網路訪問該負載平衡服務,無法從Internet訪問。私網類型的Server Load Balancer執行個體不收取費用。

選擇監聽協議

負載平衡提供4層(TCP協議和UDP協議)和7層(HTTP協議和HTTPS協議)監聽。

  • 4層監聽將請求直接轉寄給後端伺服器,不會修改標題。用戶端請求到達負載平衡監聽後,負載平衡伺服器會使用監聽中配置的後端通信埠與後端ECS建立TCP串連。

  • 7層監聽原理上是反向 Proxy的一種實現。用戶端請求到達負載平衡監聽後,負載平衡伺服器會通過與後端ECS建立TCP串連,即再次通過新TCP串連HTTP協議訪問後端,而不是直接轉寄報文到後端ECS。

由於7層監聽比4層監聽在底層實現上多了一個Tengine處理環節,因此,7層監聽效能沒有4層好。此外,用戶端通信埠不足、後端伺服器串連過多等場景也可能導致7層服務效能不高,如果您對效能有很高的要求,建議您使用4層監聽。

準備後端伺服器

您需要在Server Load Balancer執行個體中添加ECS來處理前端監聽轉寄的請求。在建立負載平衡前,需要建立好ECS執行個體並部署相關應用。建立ECS時,請注意:

  • ECS執行個體的地域和可用性區域

    確保ECS執行個體的地域和Server Load Balancer執行個體的地域相同。此外,建議您將ECS部署在不同的可用性區域內,提高本地可用性。

  • ECS配置

    在ECS上部署好應用後,不需要再進行特別的配置。但如果您要配置一個4層監聽(TCP協議或UDP協議),並且ECS使用的是Linux系統,確保net.ipv4.conf檔案中的以下3個參數的值為0:

    1. net.ipv4.conf.default.rp_filter = 0
    2. net.ipv4.conf.all.rp_filter = 0
    3. net.ipv4.conf.eth0.rp_filter = 0
  • ECS部署

    目前Server Load Balancer執行個體後端可配置的ECS數量沒有限制。但是,為了保證對外服務的穩定與高效,建議您根據業務分類或應用服務的模組劃分,將提供不同服務或執行不同任務的應用伺服器ECS添加到不同的Server Load Balancer執行個體中。

操作步驟

  1. 建立ECS執行個體。使用負載平衡服務前,您需要至少建立2台ECS執行個體。詳情參見建立ECS執行個體

  2. 建立ECS執行個體後,您需要在ECS上部署相關應用。詳情參見建立靜態頁面

  3. 建立Server Load Balancer執行個體。一個Server Load Balancer執行個體可以添加多個監聽和後端伺服器。詳情參見建立Server Load Balancer執行個體

  4. 建立Server Load Balancer執行個體後,您需要添加至少1個監聽和1組後端伺服器。詳情參見配置Server Load Balancer執行個體

計費說明

負載平衡支援按流量計費,根據執行個體類型和效能類型的不同,具體的收費項也不同。詳情參見 負載平衡定價