結合ECI伸縮組與應用型負載平衡器ALB,快速搭建跨可用性區域彈性高可用的大模型推理服務。
方案概覽
本方案採用跨可用性區域高可用架構,將搭載推理服務的ECI執行個體分散部署於單地區的多個可用性區域,實現可用性區域級容災。通過負載平衡進行智能流量調度,並使用Object Storage Service作為模型倉庫,確保商務持續性與資料可靠性。本方案架構如圖所示。
方案優勢
-
避免單點故障(高可用):使用多台伺服器來分攤業務負載,從而提高服務承載能力,避免出現單一服務故障造成的服務中斷。
-
Auto Scaling:使用伸縮組管理推理服務叢集可以一鍵調整ECI數量,快速橫向擴充。同時還支援設定自動調整的機制,實現根據業務負載按需擴充。
搭建流程
-
規劃叢集網路。建立Virtual Private Cloud和多個可用性區域的交換器,以搭建叢集的基礎網路環境。
-
建立Object Storage ServiceBucket。該Bucket用於儲存模型權重檔案。
-
配置執行個體RAM角色。後續ECI執行個體將扮演該角色,訪問步驟2中建立的Object Storage ServiceBucket。
-
準備鏡像緩衝。在ECI控制台建立鏡像緩衝以加快執行個體啟動速度,並將模型權重檔案下載到Object Storage ServiceBucket。
-
建立應用負載平衡ALB執行個體。該ALB執行個體將作為服務訪問入口。
-
建立伸縮組。建立伸縮組並綁定ALB,確保新擴容的ECI執行個體自動加入ALB的後端伺服器組。
-
開啟服務。調整伸縮組的期望執行個體數以啟動服務,並等待服務啟動完成。
1. 規劃叢集網路
首先需要規劃叢集網路,並根據規劃建立專用網路和交換器。為實現高可用性,請儘可能將ECI等資源分布在多個可用性區域,以規避單個可用性區域故障導致的服務不可用。本方案以雙可用性區域為例,您需要建立一個Virtual Private Cloud以及兩個可用性區域的交換器。操作步驟如下:
您也可以複用已有的Virtual Private Cloud,以跳過該步驟。
-
在控制台。根據以下指引建立1個專用網路及2個交換器。
①:在左側導覽列單擊專用網路,進而單擊建立專用網路。
②:地區。華東1(杭州)。
③:名稱。
vpc-ess-hangzhou。④:IPv4網段。選擇使用192.168.0.0/16。
交換器1:
⑤:名稱。
vSwitch-j。⑥:可用區。杭州可用性區域J。
⑦:IPv4網段。192.168.0.0/24。
⑧:單擊添加建立交換器2。
交換器2:
⑨:名稱。
vSwitch-k。⑩:可用區。杭州可用性區域K。
⑪:IPv4網段。192.168.1.0/24。
-
完成配置後單擊確定,等待專用網路建立完成。
2. 建立Object Storage ServiceBucket
網路環境搭建完成後,需建立Object Storage Service的儲存空間(Bucket),用於儲存模型權重檔案,後續ECI執行個體會從該Bucket中讀模數型權重檔案。操作步驟如下:
您也可以複用已有的Object Storage Service的Bucket,以跳過該步驟。
-
完成配置後單擊完成創建。
3. 建立執行個體RAM角色
本步驟需要建立執行個體RAM角色,並為該角色設定訪問Object Storage ServiceBucket的許可權,後續ECI執行個體將扮演該角色,讀取Bucket中的模型權重檔案。操作步驟如下:
-
在控制台建立執行個體RAM角色。關鍵配置項說明如下。
①:單擊创建角色。
②:信任主體類型。選擇雲端服務。
③:信任主體名稱。選擇雲服務器ECS。
④:單擊確定後,根據介面提示設定執行個體RAM角色的名稱。
-
在控制台建立以下自訂權限原則。
①:單擊创建权限策略。
②:單擊腳本編輯。
③:該策略代表某個Bucket的全部許可權。權限原則指令碼內容如下。
重要設定以下自訂策略時,請將
<bucket_name>替換為您所建立的儲存空間的Bucket名稱。{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "oss:*", "Resource": [ "acs:oss:*:*:<bucket_name>", "acs:oss:*:*:<bucket_name>/*" ] } ] }完成配置後單擊確定,根據介面提示設定權限原則名稱。
-
在控制台為執行個體RAM角色授權。
①:單擊新增授权。
②:授权主体。選擇之前建立的執行個體RAM角色。
③:权限策略。選擇之前建立的自訂權限原則。
完成配置後單擊確認新增授權。
4. 準備鏡像緩衝和模型權重檔案
由於本方案中ECI執行個體使用的鏡像檔案較大,因此需要在ECI控制台建立鏡像緩衝,以加快執行個體啟動速度。同時還需要將模型權重檔案下載到Object Storage ServiceBucket,以提升模型載入速度。
-
在控制台建立ECI鏡像緩衝。
①:在Elastic Container Instance控制台左側導覽列單擊鏡像緩衝進入鏡像快取頁面面,單擊創建鏡像緩存。
②:地區及可用區。地區與步驟1中VPC地區保持一致,可用性區域與步驟1中建立的交換器可用性區域保持一致(任選一個)。
③:網絡。選擇步驟1中建立的VPC和交換器(交換器任選一個)。
④:Elastic IP Address。選擇已有Elastic IP Address,若沒有,請單擊Elastic IP Address控制台開始建立。建立完成後,單擊
重新整理後重新選擇Elastic IP Address。⑤:安全性群組。選擇一個安全性群組,如果沒有安全性群組,請單擊新建安全性群組,建立完成後,需回到該頁面重新選擇安全性群組。
⑥:鏡像緩衝名。vllm。
⑦:緩衝大小。100GB。
⑧:鏡像。
egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm。⑨:版本号。
0.6.4.post1-pytorch2.5.1-cuda12.4-ubuntu22.04。⑩:勾選Elastic Container Instance 服務合約。⑪:單擊確認建立。
等待鏡像建立完成。鏡像緩衝建立需15分鐘左右,請耐心等待。您可以在控制台鏡像快取頁面,查看建立進度。
鏡像緩衝建立後,狀態列顯示為準備中並附帶完成百分比(如 0%),表示正在正常建立中。
-
在控制台啟動一台臨時ECI執行個體,用於將模型權重檔案下載到Object Storage Service。
①:在左側導覽列單擊容器組,進而單擊創建彈性容器組。
②:付费模式。隨用隨付。
③:地區。地區與步驟1中VPC地區保持一致,本文為華東1(杭州)為例。
④:專用網路。選擇步驟1中建立的Virtual Private Cloud。
⑤:交換器。選擇步驟1中建立的交換器。
⑥:安全性群組。根據介面提示設定。
容器組配置:
⑦:CPU。2vCPU。
⑧:記憶體。4GiB。
⑨:容器運行退出後。選擇失敗後重啟。
容器組進階配置:
⑩:展開高級配置。
⑪:開啟自動匹配鏡像緩存。
⑫:選擇並添加OSS持久化存儲。
⑬:名稱。
oss-data。⑭:Bucket。選擇步驟2建立的Bucket。
⑮:RAM角色。選擇步驟3建立的執行個體RAM角色。
⑯:臨時儲存大小。設定為100GiB。
容器配置:
⑰:鏡像。
egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm。⑱:鏡像版本。
0.6.4.post1-pytorch2.5.1-cuda12.4-ubuntu22.04。⑲:啟動命令。將以下命令分別複製到對應輸入框。
/bin/bash -c git-lfs clone https://www.modelscope.cn/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B.git /oss-data/DeepSeek-R1-Distill-Qwen-7B該命令含義:使用git-lfs將模型從魔搭社區的倉庫複製到
/oss-data/DeepSeek-R1-Distill-Qwen-7B目錄下。容器進階配置:
⑳:展開container-1 進階配置。
㉑:CPU。2vCPU。
㉒:記憶體。4GiB。
㉓:開啟儲存功能並添加掛載。
㉔:選擇
oss-data。㉕:容器內掛載路徑。
/oss-data。㉖:單擊下一步: 其他設置。
㉗:Elastic IP Address。選擇自動創建。
㉘:頻寬峰值。設定為200Mbps。
㉙:單擊配置確認,根據介面提示完成ECI執行個體的建立。
ECI建立完成後,會自動開始下載模型權重檔案。請耐心等待。您可以在等待期間,同時進行步驟5和步驟6的操作。
5. 建立應用負載平衡ALB執行個體
在開始建立ECI叢集前,需先建立應用型負載平衡ALB作為叢集訪問入口。具體操作如下:
-
在控制台建立ALB執行個體。
①:在左側導覽列選擇應用型負載平衡 ALB > 執行個體,進入執行個體列表頁面,單擊建立應用型負載平衡。
②:地區。選擇華東 1 (杭州),與步驟1中建立的VPC保持一致。
③:實例網絡類型。選擇公網,選擇公網才能對外提供服務。
④:VPC。選擇步驟1中建立的VPC。
⑤:可用區和交換器。選擇步驟1中建立的交換器。
⑥:執行個體名稱。
alb-eci-deepseek-7B。⑦:單擊立即購買,然後根據介面提示完成ALB執行個體建立操作。
-
在控制台為ALB執行個體建立監聽及後端伺服器組。
①:找到上一步建立的ALB執行個體,單擊操作列下的建立監聽。
如果沒有找到ALB執行個體,請在頁面左上方切換地區。
②:選擇HTTP協議。
③:監聽連接埠設定為80。
④:單擊下一步。
⑤:單擊建立伺服器組。
⑥:伺服器群組類型。選擇伺服器類型。
⑦:伺服器組名稱。
eci-deepseek-7B。⑧:VPC。選擇步驟1建立的VPC,會自動選中。
⑨:選擇後端協議。HTTP。
⑩:開啟健全狀態檢查。
⑪:健全狀態檢查方法。選擇GET。
⑫:健全狀態檢查路徑。設定為
/health。後續推理服務啟動後,會通過檢查/health路徑判斷服務啟動狀態。⑬:單擊建立,單擊下一步,單擊提交,等待建立完成。
6. 建立伸縮組
建立伸縮組並綁定ALB,伸縮組負責自動建立和管理ECI執行個體,並確保新擴容的ECI執行個體自動加入ALB的後端伺服器組以實現負載平衡。
-
在Auto Scaling控制台建立伸縮組並關聯ALB。
①:在左側導覽列單擊伸縮組管理,在頂部功能表列選擇目標地區(以華東1(杭州)為例),單擊建立伸縮組。
②:伸縮組名稱。
deepseek-7B-servers。③:伸縮群組類型。選擇ECI。
④:組內執行個體配置資訊來源。選擇從零開始建立。
⑤:組內最小執行個體數。設定為0,伸縮組執行個體數下限。
⑥:組內最大執行個體數。設定為10,伸縮組執行個體數上限。
⑦:專用網路。選擇步驟1建立的VPC。
⑧:交換器。選擇步驟1建立的所有交換器。
⑨:單擊展開高級配置。
進階配置:
⑩:開啟期望執行個體數,並配置期望執行個體數為0,代表先建立一個空的伸縮組。
⑪:單擊添加伺服器組,並選擇伺服器組類型為ALB。
⑫:服务器组。選擇步驟5建立的伺服器組。
⑬:連接埠。選擇
30000。後續ECI中部署的推理服務會使用該連接埠對外提供服務。⑭:單擊建立。等待伸縮組建立完成,可根據介面提示建立伸縮配置。
-
在Auto Scaling控制台建立伸縮配置。
伸縮配置用於定義伸縮組中執行個體的模板,伸縮組在擴容時,會以伸縮配置為模板建立新執行個體。操作步驟如下。
①:在左側導覽列單擊伸縮組管理,在頂部功能表列選擇目標地區(以華東1(杭州)為例),在列表中找到目標伸縮組,單擊伸縮組ID進入伸縮組詳情頁。
②:單擊。
③:付费模式。選擇隨用隨付。
④:選擇安全性群組。
容器組配置:
⑤:選擇指定規格。
⑥:執行個體規格。
ecs.gn7i-c8g1.2xlarge。⑦:勾選自動匹配鏡像緩存。
⑧:展開高級配置。
⑨:選擇OSS持久化存儲。並配置Bucket和執行個體RAM角色。
⑩:臨時儲存大小。100GiB。
⑪:GPU驅動版本。
tesla=550。OSS 持久化儲存的名稱設定為
oss-data,RAM 角色選擇EciOssRole。容器配置:
⑫:鏡像。
egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm。⑬:鏡像版本。
0.6.4.post1-pytorch2.5.1-cuda12.4-ubuntu22.04。⑭:啟動命令。將以下命令分別複製到對應輸入框。
/bin/bash -c vllm serve /oss-data/DeepSeek-R1-Distill-Qwen-7B --port 30000 --served-model-name DeepSeek-R1-Distill-Qwen-7B --tensor-parallel-size 1 --max-model-len=16384 --enforce-eager --dtype=half --api-key api-key-example-abc123該命令代表從Object Storage Service中讀模數型權重檔案,並在
30000連接埠啟動推理服務,api-key為api-key-example-abc123。⑮:展開container-1 進階配置。
⑯:CPU。設定為8vCPU。
⑰:記憶體。設定為30GiB。
⑱:GPU。設定為1。
⑲:開啟儲存功能並添加儲存。
⑳:容器內掛載路徑。/oss-data
㉑:單擊下一步: 其他設置。
㉒:Elastic IP Address。選擇自動創建。
㉛:峰值頻寬。200Mbps。
㉜:單擊配置確認,並根據介面提示完成伸縮配置的建立。
㉝㉞㉟:根據介面提示啟用伸縮配置並啟動伸縮組。
7. 開啟服務
進行本步驟操作前,請確保步驟4中的模型權重檔案已完成下載。
在完成上述所有步驟後,您可以通過調整伸縮組期望執行個體數,觸發伸縮組的擴容活動。本文以擴容5台ECI執行個體為例,具體操作如下。
調整期望執行個體數後,建立執行個體的操作可能會有延遲。您可以在伸縮活動頁簽下,查看伸縮組中進行中的伸縮活動。
-
在伸縮組詳情頁基本資料頁簽的執行個體伸縮概覽地區,修改期望執行個體數的值。
-
在修改執行個體伸縮概覽對話方塊中,開啟期望執行個體數開關,將組內期望執行個體數設定為
5,單擊確認。
後續步驟
使用Dify與大模型對話
釋放本文資源
應用於生產環境
如果要將該方案應用於生產,您可以參考以下建議完善架構。
-
建立自動調整機制,按業務負載自動擴縮容伸縮組執行個體數量,節省成本。例如基於GPU記憶體使用量率配置警示任務實現自定擴縮容、基於ALB的單機QPS監控指標自動擴縮容。
-
使用NAT Gateway,無需為所有執行個體配置Elastic IP Address。本樣本中,ECI執行個體通過配置Elastic IP Address實現拉取公網鏡像。在實際生產中,您可以使用NAT Gateway提供ECI執行個體的公網訪問能力。
-
為ALB佈建網域名並添加HTTPS協議支援。推薦使用自訂網域名作為叢集訪問入口,同時配置HTTPS協議支援以提升安全性。更多資訊,請參見為ALB配置CNAME解析、添加HTTPS監聽。