全部產品
Search
文件中心

DataWorks:SSH節點實現負載平衡高可用

更新時間:May 13, 2025

基於阿里雲網路負載平衡(NLB),DataWorks的SSH節點能夠利用NLB提供的智能負載平衡,規避單點故障風險,並顯著簡化任務配置與營運管理。本文將分步驟詳解如何在DataWorks中部署與使用該方案,實現SSH任務的穩定執行。

背景資訊

在DataWorks中,SSH資料來源通常配置到固定的ECS執行個體主機地址。若該主機出現異常(如宕機或資源耗盡),可能導致SSH節點執行失敗。為解決這一問題,您可以將多個ECS執行個體綁定到NLB(網路型負載平衡)的伺服器組。NLB通過內部演算法策略將任務分發到可用的ECS執行個體,並持續檢測執行個體的健康狀態:若某個ECS執行個體發生故障,NLB會自動將工作要求轉移至其他正常啟動並執行執行個體,從而避免因單個ECS執行個體異常導致任務中斷,確保任務持續穩定執行。

如上圖所示:

  • 未配置負載平衡:DataWorks的SSH節點任務只能在當前串連的ECS執行個體上執行。如果該ECS執行個體資源佔滿或出現故障,任務會順延強制或中斷。

  • 已配置負載平衡:DataWorks的SSH節點任務會根據NLB的演算法策略自動分配到伺服器組中的某個ECS執行個體上執行。同時,NLB會對伺服器組進行健全狀態檢查,一旦檢測到故障ECS執行個體,會將任務重新分配給其他正常啟動並執行ECS執行個體,從而確保任務的連續性和高可用性。

這一方案解決了資源佔滿和單點故障問題,提高了任務執行的效率和可靠性。

前提條件

  • RAM帳號添加至對應空間(可選)。

    進行任務開發的RAM帳號已被添加至對應工作空間中,並具有開發空間管理員(許可權較大,謹慎添加)角色許可權。新增成員並授權,詳情請參見為工作空間增加空間成員

  • 對應空間已綁定Serverless資源群組。詳情請參見:使用Serverless資源群組

使用限制

  • SSH節點內執行的代碼長度上限為128KB

  • DataWorks的資源群組、ECS執行個體和NLB執行個體必須位於同一地區的同一個VPC中。

環境準備

為了實現SSH節點的負載平衡和高可用性,您需要建立至少兩個ECS執行個體,並在這些ECS執行個體上添加不同的樣本資料以進行驗證。

建立ECS執行個體

請按照以下步驟建立併購買所需的ECS執行個體。

  1. 選購ECS執行個體。

    進入ECS執行個體購買頁,選擇自訂購買頁簽,並配置以下參數以建立ECS執行個體。更多參數配置詳情請參見自訂購買執行個體

    參數

    說明

    地區

    選擇您所建立的DataWorks工作空間所在的地區。

    網路及可用性區域

    請選擇您建立Serverless資源群組時所使用的Virtual Private Cloud和交換器。

    安全性群組

    請選擇與Serverless資源群組交換器綁定的安全性群組。

    其它參數

    您可以根據實際業務需求進行選擇和配置。

  2. 設定購買數量。

    在ECS執行個體購買頁面的右側找到購買執行個體數量選項,輸入您所需的ECS執行個體數量。本教程中購買2個即可。

  3. 單擊確認下單按鈕,完成ECS執行個體的建立和購買。

準備樣本資料

找到您所建立的兩個ECS執行個體,並分別在ECS執行個體1和ECS執行個體2上填寫不同的樣本資料資訊,以便後續進行結果比對。

  1. 進入ECS執行個體。

    1. 進入ECS執行個體管理主控台,切換地區到您建立ECS執行個體的所在地區,找到您建立的兩個ECS執行個體。

    2. 單擊ECS執行個體對應操作欄中的遠端連線,在遠端連線彈窗中選擇立即登入

    3. 進入登入執行個體頁面,配置認證資訊完成登入。

  2. 建立樣本資料。

    • 在ECS執行個體1中執行以下命令:

      echo "I am the first server" > /tmp/a.txt
    • 在ECS執行個體2中執行以下命令:

      echo "I am the second server" > /tmp/a.txt

配置NLB

通過以下步驟建立NLB執行個體、配置後端伺服器組(添加2個ECS)並配置監聽器,實現流量負載平衡。

建立NLB執行個體

您可通過以下步驟完成NLB執行個體的建立,更多詳情請參見建立NLB執行個體的前提條件建立和管理NLB執行個體

  1. 進入NLB執行個體購買頁。

    登入網路型負載平衡NLB控制台,在頂部功能表列選擇執行個體地區,然後在執行個體頁面單擊建立網路型負載平衡,進入雲產品購買頁。

    重要

    請選擇與DataWorks工作空間一致的執行個體地區,以避免因配置錯誤而需要重新購買。

  2. 配置購買NLB執行個體。

    在雲產品購買頁,配置以下參數資訊以建立NLB執行個體:

    參數

    說明

    網路

    執行個體網路類型

    選擇私網類型。

    VPC

    選擇您建立Serverless資源群組所使用的專用網路。

    可用性區域

    選擇您建立Serverless資源群組的交換器所在的可用性區域。

    協議版本

    選擇IPv4協議。

    管理設定

    執行個體名稱

    自訂執行個體名稱。

    資源群組

    選擇系統內建的預設資源群組。

  3. 購買NLB執行個體。

    在配置完所有參數後,單擊立即建立。在確認訂單頁面,單擊立即開通

建立後端伺服器組

等待NLB執行個體狀態變為運行中後,您可以通過以下步驟為NLB執行個體建立並綁定後端伺服器組。更多詳情請參見建立和管理伺服器組

  1. 進入執行個體詳情頁。

    1. 登入網路型負載平衡NLB控制台,在頂部功能表列選擇執行個體地區,在執行個體列表中找到您所建立的執行個體。

    2. 單擊執行個體名稱,進入執行個體詳情頁。

  2. 建立後端伺服器組。

    1. 單擊執行個體詳情頁上方的建立後端伺服器組,進入建立伺服器組頁面。

    2. 自訂伺服器組名稱ECS_NLB後,然後單擊建立按鈕。

  3. 添加後端伺服器。

    1. 伺服器組建立成功彈窗,單擊添加後端伺服器

    2. 後端伺服器頁簽單擊添加後端伺服器,進入添加後端伺服器頁面。

    3. 勾選您所建立的2個ECS執行個體。

    4. 單擊下一步,進入配置連接埠和權重步驟。

  4. 配置連接埠與權重。

    1. 配置連接埠22

    2. 單擊確定按鈕完成建立。

等待添加成功即可。

配置監聽器

等待將ECS執行個體綁定為NLB執行個體的後端伺服器組後,您可以通過以下步驟為NLB執行個體配置監聽器。更多詳情請參見添加TCP監聽

  1. 進入執行個體詳情頁。

    1. 登入網路型負載平衡NLB控制台,在頂部功能表列選擇執行個體地區,在執行個體列表中找到您所建立的執行個體。

    2. 單擊執行個體名稱,進入執行個體詳情頁。

  2. 配置監聽器。

    1. 單擊執行個體詳情頁上方的建立監聽,進入負載平衡業務設定精靈配置頁。

    2. 選擇監聽協議為TCP,設定監聽連接埠為22

    3. 單擊下一步

  3. 選擇伺服器組。

    1. 選擇伺服器組步驟中,基於伺服器類型,選擇您在建立後端伺服器組中建立的伺服器組ECS_NLB

    2. 單擊下一步

  4. 提交組態稽核。

    組態稽核步驟中,確認您所綁定的ECS執行個體和監聽連接埠無誤,單擊提交按鈕完成配置。

配置SSH資料來源

完成以上配置後,您可以通過以下步驟將NLB執行個體綁定為SSH資料來源。更多詳情請參見建立SSH資料來源

  1. 進入管理中心頁面。

    登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的更多 > 管理中心,在下拉框中選擇對應工作空間後單擊進入管理中心

  2. 單擊左側導覽列的資料來源 > 資料來源列表,進入資料來源頁面。

  3. 在資料來源頁面,單擊新增資料來源,進入新增資料來源頁面。

  4. 新增資料來源頁面選擇建立的資料來源類型為SSH,進入建立SSH資料來源頁面。您可以在該頁面按照以下參數進行配置。

    參數

    說明

    資料來源名稱

    您可以自訂資料來源名稱,例如 SSH_DB

    配置模式

    預設使用串連串模式

    認證模式

    推薦選擇DataWorks SSH公開金鑰認證模式。

    主機地址

    登入網路型負載平衡NLB控制台,在頂部功能表列選擇執行個體地區,在執行個體列表中找到您所建立的執行個體,單擊執行個體名稱,進入執行個體詳情頁。複製DNS名稱作為您的主機地址

    主機連接埠

    伺服器的主機連接埠為22

    使用者名稱

    伺服器的登入使用者名稱為root

    公開金鑰

    單擊產生金鑰組。平台將根據您配置的使用者名稱隨機產生公開金鑰。

    重要

    進行網路連通性測試前,請先將金鑰組的公開金鑰配置到您所建立的2個ECS執行個體主機的.ssh/authorized_keys檔案,以免網路無法連通。

  5. 測試資源群組連通性。

    串連配置地區,找到工作空間綁定的Serverless資源群組,單擊連通狀態列的測試連通性

執行SSH任務

您可以通過以下步驟完成SSH節點的建立與開發,並通過查看任務結果來驗證其功能。

建立SSH節點

您可通過以下步驟完成SSH節點的建立。更多詳情請參見建立SSH節點

  1. 進入DataWorks工作空間列表頁,在頂部切換至目標地區,找到目標工作空間,單擊操作列的快速進入 > Data Studio,進入Data Studio。

  2. 在左側導覽列單擊image,單擊專案目錄右側的image,選擇建立節點 > 通用 > SSH節點,進入建立節點彈窗。

  3. 建立節點彈窗中自訂SSH節點名稱

  4. 單擊確認按鈕,進入節點編輯頁面。

開發SSH節點

在節點編輯頁面,您可以添加以下範例程式碼資訊並配置代碼執行環境。

  1. 編寫SSH節點代碼。

    在節點編輯頁代碼地區輸入以下樣本命令:

    cat /tmp/a.txt
  2. 配置執行環境。

    • 資料來源選擇:在節點編輯頁面上方的選擇資料來源位置,選擇您所配置的SSH資料來源SSH_DB

    • 資源群組配置:單擊節點編輯頁面右側的調試配置,將資源群組配置為您所建立的Serverless資源群組。

  3. 單擊節點上方工具列的儲存按鈕,儲存SSH節點任務。

查看任務結果

執行SSH節點代碼時,您可以通過對比多次執行的列印結果,來驗證配置生效。

  1. 執行SSH節點任務。

    單擊節點上方工具列的運行按鈕。等待結果輸出後再次執行節點任務。

  2. 查看任務結果。

    說明

    任務提交執行後,NLB(網路負載平衡器)會通過邏輯演算法將任務隨機分配給其中一個ECS執行個體。因此,您在多次執行該任務後,可能會看到不同的結果,因為每次任務都可能被分配到不同的ECS執行個體上。

    執行結果1image

    執行結果2

    image

附錄:實現原理說明

以下是如何在DataWorks中利用阿里雲網路負載平衡器(NLB)實現高並發SSH任務的穩定執行的詳細原理說明:

通過將多個ECS執行個體綁定至NLB伺服器組,並將NLB的DNS名稱配置為DataWorks的SSH資料來源,配置SSH節點任務後,工作要求經資料來源被NLB監聽器監聽到,並依據負載平衡策略分發至健康的ECS執行個體執行。執行結果通過NLB透傳返回,並在SSH節點日誌中即時展示。