全部產品
Search
文件中心

Server Load Balancer:使用Auto Scaling為NLB自動添加或移除後端伺服器

更新時間:Jun 19, 2024

Auto Scaling產品支援關連網絡型負載平衡NLB的伺服器組,通過配置觸發任務,自動調整伺服器組內的ECS執行個體個數,從而有效增強了NLB的高可用服務能力並降低了資源使用成本。

情境樣本

某新聞網站播出了一則新聞,訪問量突增,伺服器無法承載巨大訪問量,導致新聞頁面重新整理不出來。新聞的時效性降低後,訪問量回落,可以正常訪問新聞頁面。由於該新聞網站的訪問量突增和回落的具體時間難以預測,無法及時手動調整執行個體,且執行個體的調整數量也不確定,為維護新聞網站的服務增加了困難。

面對以上的情境,您可以利用Auto Scaling的警示任務,由阿里雲CloudMonitor根據CPU使用率等衡量指標自動調整其彈性資源服務,同時自動關聯NLB伺服器組。伸縮組關聯NLB執行個體的伺服器組後,無論是伸縮組自動添加或移除ECS執行個體,還是您向伸縮組手動添加或移除ECS執行個體,都會自動同步到NLB執行個體的伺服器組。NLB執行個體會根據流量分發、健全狀態檢查等策略靈活使用ECS執行個體資源,在資源彈性的基礎上大大提高資源可用性。

本文以如下方案作為樣本進行介紹,NLB通過配置的轉寄規則將用戶端的請求分發給後端伺服器ECS01。通過建立Auto Scaling服務並配置警示任務,當ECS01的CPU使用率上升到設定的閾值時,自動建立ECS執行個體並添加到後端伺服器組;當ECS01的CPU使用率下降到設定的閾值時,自動將ECS執行個體從後端伺服器組移除並刪除。

前提條件

  • 您已建立一個或多個處於運行中狀態的NLB執行個體。具體操作,請參見建立和管理NLB執行個體

  • NLB執行個體已建立伺服器組RS1並添加了ECS01執行個體,且開啟了健全狀態檢查,伺服器組處於可用狀態。

  • 您已建立了ECS01執行個體的自訂鏡像。具體操作,請參見使用執行個體建立自訂鏡像

  • NLB執行個體至少配置了一個監聽。具體操作,請參見添加TCP監聽

  • NLB執行個體和伸縮組必須位於同一專用網路。

步驟一:建立伸縮組

  1. 登入Auto Scaling控制台
  2. 在左側導覽列中,單擊伸縮組管理
  3. 在頂部功能表列處,選擇地區。
  4. 進入伸縮組管理頁面。單擊建立伸縮組,您在建立伸縮組時,部分配置項可參考如下配置。

    配置項

    說明

    組內執行個體配置資訊來源

    選擇從零開始建立

    組內最小執行個體數

    當伸縮組的當前執行個體數小於伸縮最小執行個體數時,Auto Scaling服務會自動添加執行個體,使得伸縮組的當前執行個體數等於伸縮最小執行個體數。本文配置樣本為1(至少需要1個已有ECS01執行個體)

    組內最大執行個體數

    當伸縮組的當前執行個體數大於伸縮最大執行個體數時,Auto Scaling服務會自動移出執行個體,使得伸縮組的當前執行個體數等於伸縮最大執行個體數。本文配置樣本為2(本文樣本中除ECS01執行個體外最多添加一個執行個體)

    預設冷卻時間

    一個伸縮活動(添加或移出執行個體)執行完成後的一段冷卻時間內,該伸縮組不執行其他的伸縮活動。目前僅針對警示任務(CloudMonitor)觸發的伸縮活動有效。本文配置樣本為0,實際使用時需要根據實際情況調整

    專用網路選擇交換器

    選擇ECS01執行個體所在的專用網路及交換器

    關聯負載平衡ALB、NLB伺服器組

    選擇對應伺服器組,並配置連接埠及權重

  5. 根據需要配置其餘選項,單擊確認。完成後您可以在伸縮組管理頁面查看已建立的伸縮組。

步驟二:建立伸縮配置

  1. 伸縮組管理頁面的操作列單擊查看詳情,在執行個體配置來源頁簽選擇伸縮配置

  2. 伸縮配置頁簽,單擊建立伸縮配置並完成配置,部分配置項可參考下表,其他配置項可根據實際需求進行配置。

    配置項

    說明

    付費模式

    ECS的付費方式,本文選擇隨用隨付

    執行個體配置方式

    本文選擇指定執行個體規格

    選擇執行個體規格

    選擇與建立的ECS01執行個體規格相同的規格

    選擇鏡像

    選擇已經建立的ECS01執行個體的自訂鏡像

    安全性群組

    選擇已建立的ECS01執行個體所在安全性群組

  3. 配置完成後單擊建立,然後單擊確認建立

  4. 伸縮配置建立成功對話方塊,單擊啟用配置,並在彈窗中啟動伸縮配置與伸縮組。

步驟三:建立伸縮規則

  1. 伸縮組管理頁面的操作列單擊查看詳情,在伸縮規則與警示任務頁簽單擊伸縮規則

  2. 建立自動添加的伸縮規則:在伸縮規則頁簽,單擊建立伸縮規則完成配置,部分配置項可參考下表,其他配置項可根據實際需求進行配置。完成後單擊確認

    配置項

    說明

    規則名稱

    自訂填寫,例如:自動添加1台的規則

    伸縮規則類型

    本文選擇簡單規則

    執行的操作

    本文選擇增加1台

  3. 建立自動移除的伸縮規則:在伸縮規則頁簽,單擊建立伸縮規則完成配置,部分配置項可參考下表,其他配置項可根據實際需求進行配置。完成後單擊確認

    配置項

    說明

    規則名稱

    自訂填寫,例如:自動移除1台的規則

    伸縮規則類型

    本文選擇簡單規則

    執行的操作

    本文選擇減少1台

步驟四:建立警示任務並添加伸縮規則

  1. 在左側導覽列選擇自動觸發任務管理 > 警示任務

  2. 警示任務頁面,選擇系統監控頁簽,然後單擊建立警示任務

  3. 建立自動添加的警示任務:在建立警示任務對話方塊中完成配置,部分配置項可參考下表,其他配置項可根據實際需求進行配置。完成後單擊確認

    配置項

    說明

    名稱

    自訂任務名稱,例如:自動添加1台的警示任務

    監控資源

    選擇步驟一中建立的伸縮組

    警示指標描述

    本文選擇CPU使用率、Maximum(最大值)>= 閾值 60%

    統計周期

    本文選擇1分鐘

    重複幾次後警示

    本文選擇1次

    警示觸發規則

    選擇步驟三中建立的自動添加的伸縮規則

  4. 建立自動減少的警示任務:在建立警示任務對話方塊中完成配置,部分配置項可參考下表,其他配置項可根據實際需求進行配置。完成後單擊確認

    配置項

    說明

    名稱

    自訂任務名稱,例如:自動移除1台的警示任務

    監控資源

    選擇步驟一中建立的伸縮組

    警示指標描述

    本文選擇CPU使用率、Maximum(最大值)<= 閾值 30%

    統計周期

    本文選擇1分鐘

    重複幾次後警示

    本文選擇1次

    警示觸發規則

    選擇步驟三中建立的自動移除的伸縮規則

步驟五:已有執行個體添加到伸縮組中進行監控

Auto Scaling需要基於已有商務服務器進行監控,根據警示任務觸發執行個體。因此需要將已有伺服器執行個體添加到伸縮組中進行監控。

  1. 伸縮組管理頁面的操作列單擊查看詳情,在執行個體列表頁簽單擊手動建立

  2. 單擊添加已有執行個體,選擇並添加ECS01執行個體,完成後單擊確認添加

  3. 手動建立頁簽,可查看到ECS01執行個體已添加成功。

步驟六:驗證自動添加和移除效果

通過stress壓測的方式,增加ECS01執行個體的CPU使用率超過60%,從而觸發Auto Scaling的自動添加警示任務,在這期間登入控制台可查看到ECS執行個體自動增加。壓測時間結束後,ECS01執行個體的CPU使用率低於30%,從而觸發Auto Scaling的自動移除警示任務,自動移除此前自動添加的ECS執行個體。

  1. 遠程登入ECS01執行個體後,執行以下命令安裝stress工具。

    sudo yum install -y epel-release 
    sudo yum install -y stress 
  2. 執行以下命令通過stress工具對ECS01執行個體進行壓測,壓測時間為60s。

    sudo stress --cpu 1 --io 4 --vm 2 --vm-bytes 128M --timeout 60s &
  3. 返回Auto Scaling的警示任務頁面,等待幾分鐘後,警示狀態顯示警示

  4. 進入伸縮組管理頁面,在執行個體數/容量列查看總執行個體數增加1個。證明已添加一台新的ECS執行個體到伸縮組。

  5. 登入網路型負載平衡NLB控制台
  6. 在左側導覽列,選擇網路型負載平衡NLB > 伺服器組

  7. 單擊建立的目標伺服器組的ID,單擊後端伺服器頁簽,可以看到後端伺服器有兩台執行個體,其中以ESS-XX命名的執行個體為通過Auto Scaling服務自動添加的ECS執行個體。

  8. 壓測時間60s結束後,可再次登入Auto Scaling與負載平衡控制台,可查看到此前已經添加的執行個體已自動移除。