基於阿里雲網路負載平衡(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執行個體。
選購ECS執行個體。
進入ECS執行個體購買頁,選擇自訂購買頁簽,並配置以下參數以建立ECS執行個體。更多參數配置詳情請參見自訂購買執行個體。
參數
說明
地區
選擇您所建立的DataWorks工作空間所在的地區。
網路及可用性區域
請選擇您建立Serverless資源群組時所使用的Virtual Private Cloud和交換器。
安全性群組
請選擇與Serverless資源群組交換器綁定的安全性群組。
其它參數
您可以根據實際業務需求進行選擇和配置。
設定購買數量。
在ECS執行個體購買頁面的右側找到購買執行個體數量選項,輸入您所需的ECS執行個體數量。本教程中購買2個即可。
單擊確認下單按鈕,完成ECS執行個體的建立和購買。
準備樣本資料
找到您所建立的兩個ECS執行個體,並分別在ECS執行個體1和ECS執行個體2上填寫不同的樣本資料資訊,以便後續進行結果比對。
進入ECS執行個體。
進入ECS執行個體管理主控台,切換地區到您建立ECS執行個體的所在地區,找到您建立的兩個ECS執行個體。
單擊ECS執行個體對應操作欄中的遠端連線,在遠端連線彈窗中選擇立即登入。
進入登入執行個體頁面,配置認證資訊完成登入。
建立樣本資料。
在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執行個體。
進入NLB執行個體購買頁。
登入網路型負載平衡NLB控制台,在頂部功能表列選擇執行個體地區,然後在執行個體頁面單擊建立網路型負載平衡,進入雲產品購買頁。
重要請選擇與DataWorks工作空間一致的執行個體地區,以避免因配置錯誤而需要重新購買。
配置購買NLB執行個體。
在雲產品購買頁,配置以下參數資訊以建立NLB執行個體:
參數
說明
網路
執行個體網路類型
選擇私網類型。
VPC
選擇您建立Serverless資源群組所使用的專用網路。
可用性區域
選擇您建立Serverless資源群組的交換器所在的可用性區域。
協議版本
選擇IPv4協議。
管理設定
執行個體名稱
自訂執行個體名稱。
資源群組
選擇系統內建的預設資源群組。
購買NLB執行個體。
在配置完所有參數後,單擊立即建立。在確認訂單頁面,單擊立即開通。
建立後端伺服器組
等待NLB執行個體狀態變為運行中後,您可以通過以下步驟為NLB執行個體建立並綁定後端伺服器組。更多詳情請參見建立和管理伺服器組。
進入執行個體詳情頁。
登入網路型負載平衡NLB控制台,在頂部功能表列選擇執行個體地區,在執行個體列表中找到您所建立的執行個體。
單擊執行個體名稱,進入執行個體詳情頁。
建立後端伺服器組。
單擊執行個體詳情頁上方的建立後端伺服器組,進入建立伺服器組頁面。
自訂伺服器組名稱為
ECS_NLB後,然後單擊建立按鈕。
添加後端伺服器。
在伺服器組建立成功彈窗,單擊添加後端伺服器。
在後端伺服器頁簽單擊添加後端伺服器,進入添加後端伺服器頁面。
勾選您所建立的2個ECS執行個體。
單擊下一步,進入配置連接埠和權重步驟。
配置連接埠與權重。
配置連接埠為
22。單擊確定按鈕完成建立。
等待添加成功即可。
配置監聽器
等待將ECS執行個體綁定為NLB執行個體的後端伺服器組後,您可以通過以下步驟為NLB執行個體配置監聽器。更多詳情請參見添加TCP監聽。
進入執行個體詳情頁。
登入網路型負載平衡NLB控制台,在頂部功能表列選擇執行個體地區,在執行個體列表中找到您所建立的執行個體。
單擊執行個體名稱,進入執行個體詳情頁。
配置監聽器。
單擊執行個體詳情頁上方的建立監聽,進入負載平衡業務設定精靈配置頁。
選擇監聽協議為TCP,設定監聽連接埠為
22。單擊下一步。
選擇伺服器組。
在選擇伺服器組步驟中,基於伺服器類型,選擇您在建立後端伺服器組中建立的伺服器組
ECS_NLB。單擊下一步。
提交組態稽核。
在組態稽核步驟中,確認您所綁定的ECS執行個體和監聽連接埠無誤,單擊提交按鈕完成配置。
配置SSH資料來源
完成以上配置後,您可以通過以下步驟將NLB執行個體綁定為SSH資料來源。更多詳情請參見建立SSH資料來源。
進入管理中心頁面。
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的,在下拉框中選擇對應工作空間後單擊進入管理中心。
單擊左側導覽列的,進入資料來源頁面。
在資料來源頁面,單擊新增資料來源,進入新增資料來源頁面。
在新增資料來源頁面選擇建立的資料來源類型為SSH,進入建立SSH資料來源頁面。您可以在該頁面按照以下參數進行配置。
參數
說明
資料來源名稱
您可以自訂資料來源名稱,例如
SSH_DB。配置模式
預設使用串連串模式。
認證模式
推薦選擇DataWorks SSH公開金鑰認證模式。
主機地址
登入網路型負載平衡NLB控制台,在頂部功能表列選擇執行個體地區,在執行個體列表中找到您所建立的執行個體,單擊執行個體名稱,進入執行個體詳情頁。複製DNS名稱作為您的主機地址。
主機連接埠
伺服器的主機連接埠為
22。使用者名稱
伺服器的登入使用者名稱為
root。公開金鑰
單擊產生金鑰組。平台將根據您配置的使用者名稱隨機產生公開金鑰。
重要進行網路連通性測試前,請先將金鑰組的公開金鑰配置到您所建立的
2個ECS執行個體主機的.ssh/authorized_keys檔案,以免網路無法連通。測試資源群組連通性。
在串連配置地區,找到工作空間綁定的Serverless資源群組,單擊連通狀態列的測試連通性。
執行SSH任務
您可以通過以下步驟完成SSH節點的建立與開發,並通過查看任務結果來驗證其功能。
建立SSH節點
您可通過以下步驟完成SSH節點的建立。更多詳情請參見建立SSH節點。
進入DataWorks工作空間列表頁,在頂部切換至目標地區,找到目標工作空間,單擊操作列的,進入Data Studio。
在左側導覽列單擊
,單擊專案目錄右側的
,選擇節點,進入建立節點彈窗。在建立節點彈窗中自訂SSH節點名稱。
單擊確認按鈕,進入節點編輯頁面。
開發SSH節點
在節點編輯頁面,您可以添加以下範例程式碼資訊並配置代碼執行環境。
編寫SSH節點代碼。
在節點編輯頁代碼地區輸入以下樣本命令:
cat /tmp/a.txt配置執行環境。
資料來源選擇:在節點編輯頁面上方的選擇資料來源位置,選擇您所配置的SSH資料來源
SSH_DB。資源群組配置:單擊節點編輯頁面右側的調試配置,將資源群組配置為您所建立的Serverless資源群組。
單擊節點上方工具列的儲存按鈕,儲存SSH節點任務。
查看任務結果
執行SSH節點代碼時,您可以通過對比多次執行的列印結果,來驗證配置生效。
執行SSH節點任務。
單擊節點上方工具列的運行按鈕。等待結果輸出後再次執行節點任務。
查看任務結果。
說明任務提交執行後,NLB(網路負載平衡器)會通過邏輯演算法將任務隨機分配給其中一個ECS執行個體。因此,您在多次執行該任務後,可能會看到不同的結果,因為每次任務都可能被分配到不同的ECS執行個體上。
執行結果1:

執行結果2:

附錄:實現原理說明
以下是如何在DataWorks中利用阿里雲網路負載平衡器(NLB)實現高並發SSH任務的穩定執行的詳細原理說明:
通過將多個ECS執行個體綁定至NLB伺服器組,並將NLB的DNS名稱配置為DataWorks的SSH資料來源,配置SSH節點任務後,工作要求經資料來源被NLB監聽器監聽到,並依據負載平衡策略分發至健康的ECS執行個體執行。執行結果通過NLB透傳返回,並在SSH節點日誌中即時展示。