本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
編輯 Network Load Balancer 的目標群組屬性
為 Network Load Balancer 建立目標群組之後,您可以編輯其目標群組屬性。
用戶端 IP 保留
Network Load Balancer 可以在將請求路由到後端目標時保留用戶端的來源 IP 地址。當您停用用戶端 IP 保留時,來源 IP 地址是 Network Load Balancer 的私有 IP 地址。
根據預設,針對具有 UDP 與 TCP_UDP 通訊協定的執行個體與 IP 類型目標群組,用戶端 IP 保留處於啟用狀態 (且無法停用)。不過,您可以使用 preserve_client_ip.enabled
目標群組屬性啟用或停用 TCP 與 TLS 目標群組的用戶端 IP 保留。
預設設定
-
執行個體類型目標群組:啟用
-
IP 類型目標群組 (UDP、TCP_UDP):已啟用
-
IP 類型目標群組 (TCP, TLS):已停用
啟用用戶端 IP 保留時
下表說明啟用用戶端 IP 保留時,目標收到的 IP 地址。
目標 | IPv4 用戶端請求 | IPv6 用戶端請求 |
---|---|---|
執行個體類型 (IPv4) | 用戶端 IPv4 地址 | 負載平衡器 IPv4 地址 |
IP 類型 (IPv4) | 用戶端 IPv4 地址 | 負載平衡器 IPv4 地址 |
IP 類型 (IPv6) | 負載平衡器 IPv6 地址 | 用戶端 IPv6 地址 |
停用用戶端 IP 保留時
下表說明停用用戶端 IP 保留時,目標收到的 IP 地址。
目標 | IPv4 用戶端請求 | IPv6 用戶端請求 |
---|---|---|
執行個體類型 (IPv4) | 負載平衡器 IPv4 地址 | 負載平衡器 IPv4 地址 |
IP 類型 (IPv4) | 負載平衡器 IPv4 地址 | 負載平衡器 IPv4 地址 |
IP 類型 (IPv6) | 負載平衡器 IPv6 地址 | 負載平衡器 IPv6 地址 |
需求和考量事項
-
用戶端 IP 保留變更只會對新的 TCP 連線生效。
-
啟用用戶端 IP 保留時,流量必須直接從 Network Load Balancer 流向目標。目標必須位於與負載平衡器相同的 VPC 中,或位於相同區域中的對等 VPC 中。
-
透過傳輸閘道達到目標時,不支援用戶端 IP 保留。
-
使用 Gateway Load Balancer 端點檢查 Network Load Balancer 與目標 (執行個體或 IP 地址) 之間的流量時,即使目標與 Network Load Balancer 位於相同的 VPC 中,也不支援用戶端 IP 保留。
-
以下執行個體類型不支援用戶端 IP 保留:C1、CC1、CC2、CG1、CG2、CR1、G1、G2、HI1、HS1、M1、M2、M3 和 T1 建議您在停用用戶端 IP 保留的情況,將這些執行個體類型登錄為 IP 地址。
-
用戶端 IP 保留對於來自 AWS PrivateLink的輸入流量沒有作用。 AWS PrivateLink 流量的來源 IP 地址一律是 Network Load Balancer 的私有 IP 地址。
-
當目標群組包含 AWS PrivateLink 網路介面或其他 Network Load Balancer 的網路介面時,不支援用戶端 IP 保留。這會導致與這些目標的通訊中斷。
-
用戶端 IP 保留對於從 IPv6 轉換為 IPv4 的流量沒有作用。這種流量的來源 IP 地址一律是 Network Load Balancer 的私有 IP 地址。
-
當您依 Application Load Balancer 類型指定目標時,Network Load Balancer 會保留所有傳入流量的用戶端 IP,並傳送至 Application Load Balancer。接著,Application Load Balancer 會將用戶端 IP 附加至
X-Forwarded-For
要求標頭,然後再將其傳送至目標。 -
當啟用用戶端 IP 保留時,不支援 NAT 迴路,也稱為假髮釘設定。在使用內部 Network Load Balancer 時會發生這種情況,而且在 Network Load Balancer 後方註冊的目標會建立與相同 Network Load Balancer 的連線。連線可以路由到嘗試建立連線的目標,從而導致連線錯誤。建議您不要從相同 Network Load Balancer 後方的目標連線至 Network Load Balancer,或者您也可以停用用戶端 IP 保留來防止這類連線錯誤。如果您需要用戶端 IP 地址,您可以使用 Proxy Protocol v2 來擷取。如需詳細資訊,請參閱Proxy Protocol (代理通訊協定)。
-
當您停用用戶端 IP 保留時,Network Load Balancer 可支援 55,000 條同時連線,或每分鐘 55,000 條連線連至唯一目標 (IP 地址和連接埠)。若超過上述連線數量,將提高連接埠配置錯誤機率,導致無法建立新連線。如需詳細資訊,請參閱後端流程的連接埠配置錯誤。
取消登記的延遲
取消註冊目標時,負載平衡器會停止建立與目標的新連線。負載平衡器會以連接耗盡功能,來確保傳輸中流量在現有連線上完成。如果執行取消登錄的目標保持良好的狀態,且現有連線未閒置,負載平衡器可以繼續傳送流量至執行目標。為了確保現有連線已關閉,您可以執行下列其中一項操作:啟用連線終止目標群組屬性、在執行取消登錄目標之前確保執行個體運作狀態不佳或定期關閉用戶端連線。
取消註冊目標的初始狀態為 draining
,在此期間目標將停止接收新的連線。不過,目標仍可能因組態傳播延遲而收到連線。根據預設,負載平衡器會在 300 秒後將取消登錄的目標狀態變更成 unused
。若要變更負載平衡器在將取消登錄目標的狀態變更成 unused
之前的等候時間,請更新取消登錄的延遲的值。我們建議您指定的值至少 120 秒,以確保完成該請求。
如果啟用連線終止目標群組屬性,則與已取消登錄目標的連線會在取消登錄逾時結束後不久關閉。
Proxy Protocol (代理通訊協定)
將使用 Proxy Protocol 第 2 版來傳送額外的連線資訊,例如來源與目的地。Proxy Protocol 第 2 版提供 Proxy Protocol 標頭的二進位編碼。負載平衡器會透過 TCP 接聽程式在 TCP 資料前面加上 Proxy Protocol 標頭。它不會捨棄或覆寫現有資料,包括用戶端傳送的 proxy protocol 標頭或網路路徑的其他代理程式、負載平衡器或伺服器。因此,可能接收多個 proxy protocol 標頭。此外,如果 Network Load Balancer 之外還有另一個通往目標的網路路徑,則第一個 Proxy Protocol 標頭可能不是來自 Network Load Balancer 的協定標頭。
如果您依 IP 地址指定目標,則提供給應用程式的來源 IP 地址會依據目標群組的通訊協定而定,如下所示:
-
TCP 和 TLS:預設會停用用戶端 IP 保留,而提供給應用程式的來源 IP 地址是負載平衡器節點的私有 IP 地址。若要保留用戶端的 IP 地址,請確定目標位於相同的 VPC 或對等 VPC 中,並啟用用戶端 IP 保留。如果您需要用戶端的 IP 地址,但不符合這些條件,請啟用代理通訊協定,並從代理通訊協定標頭取得用戶端 IP 地址。
-
UDP 和 TCP_UDP:來源 IP 地址是用戶端的 IP 地址,因為用戶端 IP 保留預設為針對這些通訊協定啟用,且無法停用。如果使用執行個體 ID 來指定目標,則提供給應用程式的來源 IP 地址,會是用戶端的 IP 地址。不過,如果您需要的話,可以啟用 Proxy Protocol,並從 Proxy Protocol 標頭取得用戶端的 IP 地址。
如果使用執行個體 ID 來指定目標,則提供給應用程式的來源 IP 地址,會是用戶端的 IP 地址。不過,如果您需要的話,可以啟用 Proxy Protocol,並從 Proxy Protocol 標頭取得用戶端的 IP 地址。
TLS 接聽程式不支援透過用戶端或任何其他 Proxy 傳送代理通訊協定標頭的傳入連線。
運作狀態檢查連線
啟用 Proxy Protocol 之後,在與負載平衡器的運作狀態檢查連線中,也會包含 Proxy Protocol 標頭。不過,如果有運作狀態檢查連線,在 Proxy Protocol 的標頭中就不會傳送用戶端的連線資訊。
如果目標無法剖析代理通訊協定標頭,則可能無法通過運作狀態檢查。例如,它們可能會傳回下列錯誤:HTTP 400:錯誤請求。
VPC 端點服務
針對服務使用者透過 VPC 端點服務傳來的流量,提供給應用程式的來源 IP 地址,會是負載平衡器節點的私有 IP 地址。如果應用程式需要服務消費者的 IP 地址,請啟用 Proxy Protocol,並且從 Proxy Protocol 標頭取得這些地址。
Proxy Protocol 標頭也包含了端點的 ID。這項資訊是使用自訂的 Type-Length-Value (類型/長度/值,TLV) 向量進行編碼。
欄位 | 長度 (單位:octet (八位元組)) | Description (描述) |
---|---|---|
Type |
1 |
PP2_TYPE_AWS (0xEA) |
長度 |
2 |
值的長度 |
Value |
1 |
PP2_SUBTYPE_AWS_VPCE_ID (0x01) |
變數 (值的長度減 1) | 端點的 ID |
如需剖析 TLV 類型 0xEA 的範例,請參閱 https://github.com/aws/elastic-load-balancing-tools/tree/master/proprot
啟用 Proxy Protocol
在針對目標群組啟用 Proxy Protocol 之前,請確定應用程式可處理和剖析 Proxy Protocol 第 2 版的標頭,否則應用程式可能會當機。如需詳細資訊,請參閱 Proxy Protocol 第 1 版和第 2 版
黏性工作階段
黏性工作階段是將用戶端流量路由到目標群組中相同目標的機制。這對於維護狀態資訊以便為用戶端提供持續體驗的伺服器來說很實用。
考量事項
-
使用粘性工作階段會導致連線和流程分配不均,因而可能會影響目標的可用性。例如,相同 NAT 裝置後面的所有用戶端都有相同的來源 IP 地址。因此,來自這些用戶端的所有流量都會路由到相同的目標。
-
如果目標群組之任何目標的運作狀態發生變更,或者如果您向目標群組註冊或取消註冊目標,則負載平衡器可能會重設該目標群組的粘性工作階段。
-
當目標群組的黏性屬性開啟時,不支援被動運作狀態檢查。如需詳細資訊,請參閱目標群組的運作狀態檢查。
-
TLS 接聽程式不支援粘性會話。
目標群組的跨區域負載平衡
負載平衡器的節點會將請求從用戶端分發到已註冊的目標。開啟跨區域負載平衡時,每個負載平衡器節點會將流量分散到所有已註冊可用區域內的已註冊目標。關閉跨區域負載平衡時,每個負載平衡器節點只會將流量分散到其可用區域內已註冊的目標。如果區域故障網域優先於地區故障網域,就可能發生此情形,以確保運作狀態良好的區域不受運作狀態不佳區域的影響,也可能是為改善整體延遲。
使用 Network Load Balancer 時,負載平衡器層級預設會停用跨區域負載平衡,您可以隨時啟用位元。對於目標群組,預設值是使用負載平衡器設定,但您可以透過在目標群組層級明確啟用或停用跨區域負載平衡來覆寫預設值。
考量事項
-
啟用 Network Load Balancer 的跨區域負載平衡時,需支付 EC2 資料傳輸費用。如需詳細資訊,請參閱《資料匯出使用者指南》中的了解資料傳輸費用 AWS
-
目標群組設定會決定目標群組的負載平衡行為。例如,如果在負載平衡器層級啟用跨區域負載平衡,並在目標群組層級停用,則傳送至目標群組的流量不會跨可用區域路由傳送。
-
停用跨區域負載平衡時,請確保您在每個負載平衡器可用區域中有足夠的目標容量,以便每個區域可以為其相關聯的工作負載提供服務。
-
停用跨區域負載平衡時,請確保所有目標群組都參與相同的可用區域。空白的可用區域會被視為運作狀態不佳。
-
如果目標群組類型為 或 ,您可以在目標群組層級啟用或停用跨區域負載平衡
instance
ip
。如果目標群組類型為alb
,則目標群組一律會繼承負載平衡器的跨區域負載平衡設定。
如需在負載平衡器層級啟用跨區域負載平衡的詳細資訊,請參閱 跨區域負載平衡。
運作狀態不佳目標的連線終止
連線終止預設為啟用。當 Network Load Balancer 的目標未通過設定的運作狀態檢查,且視為運作狀態不佳時,負載平衡器會終止已建立的連線,並停止將新連線路由至目標。停用連線終止後,該目標仍會被視為運作狀態不佳,且不會收到新的連線,但已建立的連線會保持作用中狀態,使其可正常關閉。
運作狀態不佳目標的連線終止是在目標群組層級設定。
運作狀態不佳的耗盡間隔
unhealthy.draining
狀態中的目標會被視為運作狀態不良、不會接收新連線,但會在設定的間隔內保留已建立的連線。運作狀態不佳的連線間隔會決定目標在狀態變成 之前保持 unhealthy.draining
狀態的時間unhealthy
。如果目標在運作狀態不佳的連線間隔內通過運作狀態檢查,其狀態會healthy
再次變為 。如果觸發取消註冊,目標狀態會變成 ,draining
且取消註冊延遲逾時開始。
需求
在啟用運作狀態不佳的耗盡間隔之前,必須停用連線終止。