Gateway Load Balancer 的目標群組 - Elastic Load Balancing

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

Gateway Load Balancer 的目標群組

每個目標群組會用來將請求轉送到一個或多個註冊的目標。當您建立接聽程式時,可以為其預設動作指定一個目標群組。流量會轉送至接聽程式規則中指定的目標群組。您可以針對不同類型的請求,建立不同的目標群組。

您可以針對每個目標群組,指定 Gateway Load Balancer 的運作狀態檢查設定。除非您在建立目標群組時覆寫這些設定,或是在之後修改設定,否則每個目標群組都會使用預設的運作狀態檢查設定。當您在接聽程式的規則中指定目標群組後,Gateway Load Balancer 會針對自己已啟用可用區域中的目標群組,持續地監控透過該目標群組註冊的所有目標,以了解目標的運作狀態。Gateway Load Balancer 會將請求路由至運作狀態良好的已註冊目標。如需詳細資訊,請參閱 目標群組運作狀態檢查

路由組態

Gateway Load Balancer 的目標群組支援下列的通訊協定和連接埠:

  • 通訊協定:GENEVE

  • 連接埠:6,081

Target type (目標類型)

在建立目標群組時,您會指定其目標類型,這會決定您指定其目標的方式。目標群組建立之後,您就無法更改其目標類型。

下列是可能的目標類型:

instance

以執行個體 ID 來指定目標。

ip

以 IP 地址來指定目標。

如果目標類型是 ip,您可以從下列其中一個 CIDR 區塊指定 IP 地址:

  • 目標群組 VPC 的子網路

  • 10.0.0.0/8 (RFC 1918)

  • 100.64.0.0/10 (RFC 6598)

  • 172.16.0.0/12 (RFC 1918)

  • 192.168.0.0/16 (RFC 1918)

重要

您無法指定可公開路由傳送的 IP 地址。

已登記的目標

您的 Gateway Load Balancer 可做為用戶端的單一聯絡窗口,並將傳入的流量分配到各個運作狀態良好的已登錄目標。在 Gateway Load Balancer 能夠使用的每個可用區域中,每個目標群組都必須擁有至少一個已註冊的目標。您可以利用一個或多個群組來登錄每個目標。

如果需求增加,您可以利用一個或多個目標群組來註冊額外的目標以應付需求。只要註冊程序一完成,Gateway Load Balancer 就會開始將流量轉傳到新註冊的目標。

如果需求減少,或者您需要為目標提供服務,可以從目標群組取消目標的註冊。取消目標的登錄,會將該目標從目標群組中移除,但不會影響到目標。取消目標的註冊之後,Gateway Load Balancer 就會立即停止將流量轉傳到目標。目標會進入 draining 狀態,直到處理中的請求已完成。當您準備讓目標再繼續接收流量時,可以將目標登錄到目標群組。

目標群組屬性

您可以對目標群組使用下列屬性:

deregistration_delay.timeout_seconds

將取消註冊目標的狀態從 draining 變更為 unused 之前,Elastic Load Balancing 要等待的時間量。範圍介於 0 到 3600 秒之間。預設值為 300 秒。

stickiness.enabled

指示是否啟用目標群組的可設定流程黏性。可能的值為 truefalse。預設值為 false。當屬性設定為時 false,會使用 5_tuple。

stickiness.type

指示流程黏性的類型。與 Gateway Load Balancer 相關聯的目標群組的可能值為:

  • source_ip_dest_ip

  • source_ip_dest_ip_proto

target_failover.on_deregistration

指示當取消註冊目標時,Gateway Load Balancer 處理現有流程的方式。可能的值為 rebalanceno_rebalance。預設值為 no_rebalance。這兩個屬性 (target_failover.on_deregistrationtarget_failover.on_unhealthy) 無法單獨設定。這兩個屬性必須設為相同的值。

target_failover.on_unhealthy

指示當目標運作狀態不佳時,Gateway Load Balancer 處理現有流程的方式。可能的值為 rebalanceno_rebalance。預設值為 no_rebalance。這兩個屬性 (target_failover.on_deregistrationtarget_failover.on_unhealthy) 無法單獨設定。這兩個屬性必須設為相同的值。

取消登記的延遲

取消註冊目標時,Gateway Load Balancer 會依照下列方式管理該目標的流程:

新流程

Gateway Load Balancer 會停止傳送新流程。

現有流程

Gateway Load Balancer 會依據通訊協定處理現有流程:

  • TCP:如果現有流程閒置超過 350 秒,則會關閉它們。

  • 其他通訊協定:如果現有流程閒置超過 120 秒,則會關閉這些流程。

若要協助耗盡現有流程,您可以為目標群組啟用流程重新平衡。如需詳細資訊,請參閱 目標容錯移轉

已取消註冊的目標會顯示其 draining,直到逾時到期為止。取消註冊延遲逾時到期後,目標會轉換為 unused 狀態。

使用主控台來更新取消登錄的延遲值
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格的 Load Balancing (負載平衡) 中,選擇 Target Groups (目標群組)

  3. 選擇目標群組的名稱,以開啟其詳細資訊頁面。

  4. 群組詳細資訊頁面的屬性區段中,選擇編輯

  5. 編輯屬性頁面上,視需要變更取消註冊延遲的值。

  6. 選擇儲存變更

若要使用更新取消註冊延遲值 AWS CLI

使用 modify-target-group-attributes 指令。

目標容錯移轉

使用目標容錯移轉,您可以指定 Gateway Load Balancer 處理現有流量流程的方式,或當取消註冊目標時處理現有流量流程的方式。依預設,即使目標失敗或已取消註冊,Gateway Load Balancer 仍會繼續將現有流程傳送至相同的目標。您可以透過重新雜湊流程 (rebalance) 或將其保留為預設狀態 (no_rebalance) 來管理這些流程。

無重新平衡

Gateway Load Balancer 會繼續將現有流程傳送至失敗或耗盡的目標。不過,新流程會傳送至運作狀態良好的目標。這是預設行為。

重新平衡

Gateway Load Balancer 會重新雜湊現有的流程,並在取消註冊延遲逾時後將其傳送至運作狀態良好的目標。

對於已取消註冊的目標,容錯移轉的最短時間取決於取消註冊延遲。在完成取消註冊延遲之前,目標不會標示為已取消註冊。

對於運作狀態不佳的目標,容錯移轉的最短時間取決於目標群組運作狀態檢查組態 (間隔時間閾值)。這是目標標記為運作狀態不佳之前的最短時間。在此之後,Gateway Load Balancer 可能需要數分鐘的時間,這是因為需要額外的傳輸時間和 TCP 重新傳輸倒傳,才能將新的流程重新路由到運作狀態良好的目標。

使用主控台更新目標容錯移轉值
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格的 Load Balancing (負載平衡) 中,選擇 Target Groups (目標群組)

  3. 選擇目標群組的名稱,以開啟其詳細資訊頁面。

  4. 群組詳細資訊頁面的屬性區段中,選擇編輯

  5. 編輯屬性頁面上,視需要變更目標容錯移轉的值。

  6. 選擇儲存變更

使用更新目標容錯移轉值 AWS CLI

使用 modify-target-group-attributes 命令與下列索引鍵值對:

  • Key=target_failover.on_deregistration 和 Value= no_rebalance (預設) 或 rebalance

  • Key=target_failover.on_unhealthy 和 Value= no_rebalance (預設) 或 rebalance

注意

這兩個屬性 (target_failover.on_deregistrationtarget_failover.on_unhealthy) 都必須具有相同的值。

流程黏性

依預設,Gateway Load Balancer 使用 5 元組 (針對 TCP/UDP 流程) 維護特定目標應用裝置的流程黏性。5 元組包括來源 IP、來源連接埠、目的地 IP、目的地連接埠和傳輸通訊協定。您可以使用黏性類型屬性來修改預設值 (5 元組),並選擇 3 元組 (來源 IP、目的地 IP 和傳輸通訊協定) 或 2 元組 (來源 IP 和目的地 IP)。

流程黏性的考量
  • 流程黏性在目標群組層級設定和套用,並套用至前往目標群組的所有流量。

  • 開啟 AWS Transit Gateway 應用裝置模式時,不支援 2 元組和 3 元組流程黏性。若要在您的裝置上使用設備模式 AWS Transit Gateway,請在閘道 Load Balancer 上使用 5 個元組流程黏性

  • 流程黏性會導致連線和流程分配不均,因而可能會影響目標的可用性。建議您先終止或耗盡所有現有流程,然後再修改目標群組的黏性類型。

使用主控台更新流程黏性
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格的 Load Balancing (負載平衡) 中,選擇 Target Groups (目標群組)

  3. 選擇目標群組的名稱,以開啟其詳細資訊頁面。

  4. 群組詳細資訊頁面的屬性區段中,選擇編輯

  5. 編輯屬性頁面上,視需要變更流程黏性的值。

  6. 選擇儲存變更

若要啟用或修改流動黏性,請使用 AWS CLI

使用 modify-target-group-attributes 命令搭配 stickiness.enabledstickiness.type 目標群組屬性。