我想為我的 Application Load Balancer 註冊加權目標群組。
解決方法
您可以為 Application Load Balancer 的目標群組指派不同的權重,以便按比例分配流量。
建立目標群組
若要建立註冊至 Application Load Balancer 的目標群組,請完成下列步驟:
- 開啟 Amazon Elastic Compute Cloud (Amazon EC2) console (Amazon Elastic Compute Cloud (Amazon EC2) 主控台)。
- 選取您 Amazon EC2 執行個體所在的 AWS 區域。
- 在導覽窗格的 Load balancing (負載平衡) 下,選擇 Target groups (目標群組)。
- 若要建立第一個目標群組,請完成以下步驟:
選擇 Create target group (建立目標群組)。
在 Target group name (目標群組名稱) 中,指定目標群組的名稱。
設定目標群組的通訊協定、連接埠和虛擬私有雲端 (VPC)。
選擇建立。
針對執行個體,選取一個或多個執行個體。
指定執行個體的連接埠。
選擇 Include as pending below (在下方增加待處理內容),然後選擇 Create target group (建立目標群組)。
- 若要設定加權目標群組,您必須建立至少兩個目標群組。重複步驟 4 以建立第二個目標群組。
建立 Application Load Balancer
**重要:**如果您有想要使用的 Application Load Balancer,請繼續執行 Configure listener rules and assign weights (設定接聽程式規則並指派權重) 區段。若要建立 Application Load Balancer,請完成下列步驟:
- 在導覽窗格中的 Load balancing (負載平衡) 下,選擇 Load Balancers (負載平衡器)。
- 選擇 Create load balancer (建立負載平衡器)。
- 在 Select load balancer type (選取負載平衡器類型) 中,選擇 Application Load Balancer,然後選擇 Create (建立)。
- 在 Create Application Load Balancer (建立 Application Load Balancer) 精靈中,完成以下步驟:
輸入負載平衡器的名稱。
選擇 Internet-facing (網際網路對應) 或 Internal (內部)。
選擇 IP Address type (IP 位址類型)。
選取您的 VPC 和至少兩個可用區域。
在 Security groups (安全群組),選取或建立一個安全群組。
在 Listeners and routing (接聽程式和路由) 中,保留連接埠 80 上的預設 HTTP 接聽程式。
- 在 Configure routing (設定路由) 頁面上,完成以下步驟:
針對目標群組,選擇現有目標。
在 Name (名稱) 中,選取您建立的第一個目標群組。
選擇下一步: 註冊目標。
- 在 Register Targets (註冊目標) 頁面上,確認您註冊的執行個體出現在 Registered instances (已註冊的執行個體) 下。
**注意:**若要修改目標,請返回「目標群組」主控台。「註冊目標」頁面僅供檢閱。
- 在 Review (檢閱) 頁面上,選擇 Create (建立)。
- 建立 Application Load Balancer 後,選擇 Close (關閉)。
- 建立精靈關閉後,您將返回負載平衡器頁面。從負載平衡器清單中選取新的負載平衡器。
設定接聽程式規則並指派權重
若要為目標群組指派權重,請完成下列步驟為您的 Application Load Balancer 設定接聽程式規則:
- 在 Listeners (接聽程式) 索引標籤上,選擇 View/edit rules (檢視/編輯規則)。
- 選擇 Edit rules (編輯規則)。
- 在 Forward to (轉送到) 旁邊,選擇 Edit (編輯)。
- 新增您之前建立的第二個目標群組。
- 輸入一個介於 0 到 999 之間的目標群組權重值。
- 選取 Check mark (核取記號),然後選擇 Update (更新)。
- (選用) 如果目標群組具有黏性,則設定群組層級黏性。
**注意:**設定群組層級黏性時,路由請求會在工作階段持續期間保留在目標群組中。預設值為 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>
在此範例中,T1 代表來自第一個目標群組的回應 (70% 權重),T2 代表來自第二個目標群組的回應 (30% 權重)。
如果第二個目標的權重為 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>
在此範例中,T2 代表來自第二個目標群組的回應 (70% 權重),T1 代表來自第一個目標群組的回應 (30% 權重)。輸入負載平衡器的名稱。