本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
目標群組運作狀態
依預設,只要目標群組至少有一個運作狀態良好的目標,就會被視為運作狀態良好。如果您擁有龐大的機群,則只有一個運作狀態良好的目標服務流量是不夠的。相反地,您可以指定必須為運作狀態良好的目標最小計數或百分比,以及當運作狀態良好目標低於指定臨界值時,負載平衡器會採取哪些動作。這提高了可用性。
運作運作狀態不佳
您可以針對下列動作設定運作狀態良好的臨界值:
-
DNS容錯移轉 — 當區域中的健全狀況目標低於閾值時,我們會在中將區域的負載平衡器節點的 IP 位址標記為狀況DNS不良。因此,當用戶端解析負載平衡器DNS名稱時,流量只會路由至狀態良好的區域。
-
路由容錯移轉 — 當區域中運作狀態良好的目標低於臨界值時,負載平衡器會將流量傳送至負載平衡器節點可用的所有目標,包括運作狀態不良的目標。這會增加用戶端連線成功的機會,尤其是當目標暫時無法通過運作狀態檢查時,並降低運作狀態良好目標超載的風險。
需求和考量事項
-
您無法在目標為 Lambda 函數的目標群組中使用此功能。如果應用程式負載平衡器是 Network Load Balancer 或全域加速器的目標,請勿設定DNS容錯移轉的臨界值。
-
如果您為動作指定兩種類型的閾值 (計數和百分比),則當違反任一閾值時,負載平衡器都會採取動作。
-
如果您指定這兩個動作的臨界值,DNS容錯移轉的臨界值必須大於或等於路由容錯移轉的臨界值,以便DNS容錯移轉發生在路由容錯移轉或之前。
-
如果您將臨界值指定為百分比,我們會根據向目標群組註冊的目標總數來動態計算值。
-
目標總數取決於是關閉還是開啟跨區域負載平衡。如果關閉跨區域負載平衡,則每個節點只會將流量傳送到其自身區域中的目標,這代表臨界值會分別套用至每個已啟用區域中的目標數目。如果跨區域負載平衡是開啟狀態,則每個節點會將流量傳送到所有已啟用區域中的所有目標,這代表會對所有已啟用區域中的目標總數套用此閾值。
-
透過DNS容錯移轉,我們會從負載平衡器的DNS主機名稱中移除運作狀態不良區域的 IP 位址。不過,本機用戶端DNS快取可能會包含這些 IP 位址,直到DNS記錄中的 time-to-live (TTL) 到期 (60 秒) 為止。
-
發生DNS容錯移轉時,這會影響與負載平衡器相關聯的所有目標群組。確保剩餘區域中有足夠的容量來處理這些額外的流量,尤其是在跨區域負載平衡關閉的情況下。
-
使用DNS容錯移轉時,如果所有負載平衡器區域都被視為狀況不良,負載平衡器會將流量傳送到所有區域,包括運作狀態不良的區域。
-
除了是否有足夠健全的目標可能導致DNS容錯移轉之外,還有其他因素,例如區域的健全狀況。
監控
若要監視目標群組的健全狀況,請參閱目標群組健全狀況的CloudWatch 指標。
範例
以下範例示範如何套用目標群組運作狀態設定。
案例
-
支援 A 和 B 兩個可用區域的負載平衡器
-
每個可用區域包含 10 個已註冊目標
-
目標群組具有下列目標群組運作狀態設定:
DNS容錯移轉-50%
路由容錯移轉 - 50%
-
可用區域 B 中有六個目標失敗
如果停用跨區域負載平衡
-
每個可用區域中的負載平衡器節點只能將流量傳送到其可用區域中的 10 個目標。
-
可用區域 A 中有 10 個運作狀態良好的目標,符合運作狀態目標的必要百分比。負載平衡器會繼續在 10 個運作狀態良好的目標之間分配流量。
-
可用區域 B 中只有 4 個運作狀態良好的目標,這是可用區域 B 中負載平衡器節點目標的 40%,因為小於運作狀態良好目標的必要百分比,所以負載平衡器會採取下列動作:
-
DNS容錯移轉-可用性區域 B 在中DNS標示為狀況不良。由於用戶端無法將負載平衡器名稱解析為可用區域 B 中的負載平衡器節點,且可用區域 A 運作狀態良好,因此用戶端會將新的連線傳送至可用區域 A。
-
路由容錯移轉 - 當新連線明確傳送至可用區域 B 時,負載平衡器會將流量分配給可用性區域 B 中的所有目標,包括運作狀態不佳的目標。這樣可以防止剩餘運作狀態良好的目標中斷。
-
如果啟用跨區域負載平衡
-
每個負載平衡器節點都可以將流量傳送到兩個可用區域的所有 20 個已註冊目標。
-
可用區域 A 中有 10 個運作狀態良好的目標,而可用區域 B 中有 4 個運作狀態良好的目標,總共有 14 個運作狀態良好目標。這是兩個可用區域中負載平衡器節點目標的 70%,符合運作狀態良好目標的必要百分比。
-
負載平衡器會在兩個可用區域中 14 個運作狀況良好的目標之間分配流量。
修改目標群組運作狀態良好設定
您可以依照下列方式修改目標群組的目標群組運作狀況設定。
若要使用主控台修改目標群組的運作狀態設定
在打開 Amazon EC2 控制台https://console.aws.amazon.com/ec2/
。 -
在導覽窗格的負載平衡中,選擇目標群組。
-
選擇目標群組的名稱,以開啟其詳細資訊頁面。
-
在屬性索引標籤中,選擇編輯。
-
檢查是否開啟或關閉跨區域負載平衡。視需要更新此設定,以確保您有足夠的容量可在區域發生故障時處理額外的流量。
-
展開目標群組運作狀況需求。
-
針對組態類型,建議您選擇統一組態,這兩個動作都會設定相同的臨界值。
-
對於狀態良好的狀態要求,請執行下列其中一項:
-
選擇最小運作狀況目標計數,然後輸入從 1 到目標群組目標數目上限的數字。
-
選擇最小狀態良好目標百分比,然後輸入 1 到 100 之間的數字。
-
-
選擇 Save changes (儲存變更)。
使用修改目標群組健全設定 AWS CLI
使用指modify-target-group-attributes令。下列範例會將兩個運作狀態不佳的動作的運作狀態良好閾值設定為 50%。
aws elbv2 modify-target-group-attributes \ --target-group-arn arn:aws:elasticloadbalancing:
region
:123456789012
:targetgroup/my-targets
/73e2d6bc24d8a067
\ --attributes Key=target_group_health.dns_failover.minimum_healthy_targets.percentage,Value=50 \ Key=target_group_health.unhealthy_state_routing.minimum_healthy_targets.percentage,Value=50
為負載平衡器使用 Route 53 DNS 容錯移轉
如果您使用 Route 53 將DNS查詢路由到負載平衡器,也可以使用 Route 53 為負載平衡器設定DNS容錯移轉。在容錯移轉組態中,Route 53 會檢查負載平衡器的目標群組目標的運作狀態,以判斷是否可用。如果沒有負載平衡器註冊的狀態良好目標,或者負載平衡器本身運作狀態不佳,Route 53 會將流量路由到另一可用資源,例如運作狀態良好的負載平衡器或 Amazon S3 中的靜態網站。
例如,假設您有一個 www.example.com
Web 應用程式,而且您需要在後方執行兩個負載平衡器備援執行個體,位於不同的區域。您希望流量在一個區域主要路由到負載平衡器,而且您想要在其他區域使用負載平衡器,以供失敗時備份。如果設定DNS容錯移轉,則可以指定主要和次要 (備份) 負載平衡器。Route 53 會引導流量到可用的主要負載平衡器,或是次要負載平衡器。
使用「評估目標運作狀態」
-
如果 Application Load Balancer 別名記錄上的「評估目標運作狀態」設定為
Yes
,Route 53 會評估alias target
值所指定資源的運作狀態。如果是 Application Load Balancer,Route 53 會使用與負載平衡器關聯的目標群組運作狀態檢查。 -
如果 Application Load Balancer 中所有的目標群組運作狀態都是良好,Route 53 會將別名記錄標記為運作狀態良好。如果目標群組包含至少一個運作狀態良好的目標,則目標群組的運作狀態檢查會通過。之後,Route 53 會根據您的路由政策傳回記錄。如果使用容錯移轉路由政策,則 Route 53 會傳回主要記錄。
-
如果 Application Load Balancer 中有任何目標群組運作狀態不佳,則別名記錄不會通過 Route 53 運作狀態檢查 (故障開啟)。如果使用「評估目標運作狀態」,這將使容錯移轉路由政策失敗。
-
如果 Application Load Balancer 中的所有目標群組都是空的 (沒有目標),則 Route 53 會將記錄視為運作狀態不佳 (故障開啟)。如果使用「評估目標運作狀態」,這將使容錯移轉路由政策失敗。
如需詳細資訊,請參閱 DNS Amazon Route 53 開發人員指南中的設定容錯移轉。