為 Classic Load Balancer 設定連接耗盡 - Elastic Load Balancing

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

為 Classic Load Balancer 設定連接耗盡

為了確保 Classic Load Balancer 停止傳送請求給取消註冊或運作狀態不佳的執行個體,並保留現有的連線開放,請使用連接耗盡。這可讓負載平衡器完成取消註冊或運作狀態不佳的執行個體的處理中請求。

當您啟用連接耗盡時,您可以指定一個最長的時間,讓連線的負載平衡器在報告取消註冊執行個體前持續作用。最長逾時值可以設在 1 和 3,600 秒之間 (預設為 300 秒)。當達到最長時間限制,負載平衡器強制關閉連線到取消註冊的執行個體。

當提供了需求中的請求,負載平衡器報告正在取消註冊執行個體的 InService: Instance deregistration currently in progress 狀態。當取消註冊的執行個體完成服務中的所有請求,或是當達到限制的最長逾時,負載平衡器報告執行個體的狀態為 OutOfService: Instance is not currently registered with the LoadBalancer

如果執行個體運作狀態不佳,負載平衡器報告狀態為 OutOfService。如果有運作中狀態不佳的執行個體所做的處理中請求,會將它們完成。最長逾時限制不適用於連線到運作狀態不佳的執行個體。

如果您的執行個體是 Auto Scaling 群組的一部分且您的負載平衡器已啟用連接耗盡,在終止執行個體之前,由於擴展事件或運作狀態檢查替換,Auto Scaling 會等待傳送中的請求完成,或最長逾時過期。

如果您希望立即關閉連接到執行個體運作狀態不佳或取消註冊,您可以停用連接耗盡的負載平衡器。當停用連接耗盡時,任何處理中的請求的取消註冊或運作狀態不佳的執行個體都沒有完成。

啟用連接耗盡

您可以於任何時間啟用您的負載平衡器的連接耗盡。

使用主控台來啟用連接耗盡
  1. 在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/

  2. 在導覽窗格的 Load Balancing (負載平衡器),選擇 Load Balancer (負載平衡器)

  3. 選擇負載平衡器的名稱來開啟其詳細資訊頁面。

  4. 屬性索引標籤中,選擇編輯

  5. 編輯負載平衡器屬性頁面的流量組態區段中,選取啟用連接耗盡

  6. (選用) 對於逾時 (耗盡間隔),輸入 1 到 3,600 秒之間的值。否則,系統會使用 300 秒的預設值。

  7. 選擇 Save changes (儲存變更)。

若要使用 啟用連線排放 AWS CLI

使用下列 modify-load-balancer-attributes 命令:

aws elb modify-load-balancer-attributes --load-balancer-name my-loadbalancer --load-balancer-attributes "{\"ConnectionDraining\":{\"Enabled\":true,\"Timeout\":300}}"

以下是回應範例:

{ "LoadBalancerAttributes": { "ConnectionDraining": { "Enabled": true, "Timeout": 300 } }, "LoadBalancerName": "my-loadbalancer" }

停用連接耗盡

您可以於任何時間停用您的負載平衡器的連接耗盡。

使用主控台來停用連接耗盡
  1. 在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/

  2. 在導覽窗格的 Load Balancing (負載平衡器),選擇 Load Balancer (負載平衡器)

  3. 選擇負載平衡器的名稱來開啟其詳細資訊頁面。

  4. 屬性索引標籤中,選擇編輯

  5. 編輯負載平衡器屬性頁面的流量組態區段中,取消選取啟用連接耗盡

  6. 選擇 Save changes (儲存變更)。

使用 停用連線耗電 AWS CLI

使用下列 modify-load-balancer-attributes 命令:

aws elb modify-load-balancer-attributes --load-balancer-name my-loadbalancer --load-balancer-attributes "{\"ConnectionDraining\":{\"Enabled\":false}}"

以下是回應範例:

{ "LoadBalancerAttributes": { "ConnectionDraining": { "Enabled": false, "Timeout": 300 } }, "LoadBalancerName": "my-loadbalancer" }