我想為我的 Application Load Balancer 註冊加權目標群組。
解決方法
完成下列步驟,以向負載平衡器註冊目標群組,並向目標群組新增加權。
建立目標群組
1. 開啟 Amazon Elastic Compute Cloud (Amazon EC2) 主控台。
2. 選擇您的 Amazon EC2 執行個體所在的 AWS 區域。
3. 在導覽窗格的負載平衡下,選擇目標群組。
4. 建立第一個目標群組:
選擇建立目標群組。
針對目標群組名稱,指定目標群組的名稱。
設定目標群組的通訊協定、連接埠和虛擬私有雲端 (VPC)。
選擇建立。
針對執行個體,選取一個或多個執行個體。
指定執行個體的連接埠。
選擇新增至已註冊,然後選擇儲存。
5. 重複執行步驟 4,以建立第二個目標群組。
建立 Application Load Balancer
**注意:**如果您已經有 Application Load Balancer,則請繼續進行下一節。
1. 在導覽窗格的負載平衡下,選擇負載平衡器。
2. 選擇建立負載平衡器。
3. 針對選取負載平衡器類型,選擇 Application Load Balancer。
4. 選擇繼續。
5. 完成建立 Application Load Balancer 中的步驟。
6. 完成設定路由步驟:
針對目標群組,選擇現有目標。
針對名稱,選擇您建立的第一個目標群組。
選擇下一步: 註冊目標。
7. 在註冊目標頁面上,您向目標群組註冊的執行個體會在已註冊的執行個體下顯示。您無法在此處修改註冊目標。
8. 在檢閱頁面上,選擇建立。
9. 收到已建立負載平衡器通知後,選擇關閉。
10. 選擇負載平衡器。
設定接聽程式規則並向目標群組新增加權
1. 在接聽程式標籤,選擇檢視/編輯規則。
2. 選擇編輯規則 (鉛筆圖示)。
3. 選擇轉寄至選項旁的編輯。
4. 新增其他目標群組。
5. 輸入目標群組加權值。這些數值必須介於 0 到 999 之間。
6. 選取核取記號,然後選擇更新。
7. (選用) 如果目標群組為黏性,則設定群組層級黏性。設定此設定時,路由請求會在工作階段期間保留在目標群組中。預設值為 1 小時。工作階段期間結束後,會根據目標群組的加權分配請求。
**注意:**Application Load Balancer 會根據加權將流量分配給目標群組。如果目標群組的所有目標都未通過運作狀態檢查,則 Application Load Balancer 不會將請求路由或容錯移轉至其他目標群組。如果目標群組僅有運作狀態不良的註冊目標,則負載平衡器節點會將請求路由至運作狀態不良的目標。目標群組的所有目標運作狀態不良時,請勿使用加權目標群組作為容錯移轉機制。
例如,如果第一個目標的加權為 70%,而第二個目標為 30%,則多數請求會來自第一個目標群組:
$ for X in `seq 6`; do curl -so -i /dev/null -w "" http://FINAL-721458494.us-east-2.elb.amazonaws.com; done
<h1> This is T1 </h1>
<h1> This is T1 </h1>
<h1> This is T1 </h1>
<h1> This is T1 </h1>
<h1> This is T2 </h1>
<h1> This is T2 </h1>
如果您將第二個目標的加權設定為 70%,第一個目標設定為 30%,則多數請求會來自第二個目標群組:
$ for X in `seq 7`; do curl -so -i /dev/null -w "" http://FINAL-721458494.us-east-2.elb.amazonaws.com; done
<h1> This is T2 </h1>
<h1> This is T2 </h1>
<h1> This is T2 </h1>
<h1> This is T1 </h1>
<h1> This is T1 </h1>
<h1> This is T2 </h1>
<h1> This is T2 </h1>If all targets in a target group fail health checks, then the Application Load Balancer doesn't automatically route or failover the requests to another target group