本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
編輯 Network Load Balancer 的目標群組屬性
為 Network Load Balancer 建立目標群組後,您可以編輯其目標群組屬性。
用戶端 IP 保留
將要求路由至後端目標時,Network Load Balancer 可以保留用戶端來源的 IP 地址。當您停用用戶端 IP 保留時,來源 IP 地址是 Network Load Balancer 的私有 IP 地址。
根據預設,使用 和 TCP_UDP 通訊協定的執行個體和 IP UDP 類型目標群組會啟用用戶端 IP 保留 (且無法停用)。不過,您可以使用TLS目標群組屬性啟用或停用 TCP和preserve_client_ip.enabled
目標群組的用戶端 IP 保留。
預設設定
-
執行個體類型目標群組:啟用
-
IP 類型目標群組 (UDP、TCP_UDP):已啟用
-
IP 類型目標群組 (TCP、TLS):已停用
需求和考量事項
-
啟用用戶端 IP 保留時,流量必須直接從 Network Load Balancer 流向目標。目標必須位於與 Network Load Balancer VPC相同的 中,或位於相同區域中的對等 VPC 中。
-
使用 Gateway Load Balancer 端點檢查 Network Load Balancer 與目標 (執行個體或 IP) 之間的流量時,即使目標與 VPC Network Load Balancer 位於相同的 Amazon 中,也不支援用戶端 IP 保留。
-
下列執行個體類型不支援用戶端 IP 保留:C1、CC1、CC2、CG1、CG2、CR1、G1, G2、HS1、、M1, M2, M3 HI1和 T1。建議您在停用用戶端 IP 保留的情況,將這些執行個體類型登錄為 IP 地址。
-
用戶端 IP 保留不會影響來自 的傳入流量 AWS PrivateLink。 AWS PrivateLink 流量的來源 IP 一律是 Network Load Balancer 的私有 IP 地址。
-
當目標群組包含 或其他 Network Load Balancer ENI的 時 AWS PrivateLink ENIs,不支援用戶端 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 保留變更僅在新TCP連線中生效。
-
NAT 啟用用戶端 IP 保留時,不支援回送,也稱為髮夾式。啟用時,您可能會遇到與觀察到的通訊端在目標上重複使用相關的 TCP/IP 連線限制。當用戶端或用戶端前方NAT的裝置在同時連線至多個負載平衡器節點時,使用相同的來源 IP 地址和來源連接埠時,可能會發生這些連線限制。如果負載平衡器將這些連線路由至相同的目標,則連線會顯示在目標上,就像它們來自相同的來源通訊端一樣,這會導致連線錯誤。如果發生這種情況,用戶端可以重試(如果連線失敗)或重新連線(如果連線中斷)。您可以增加來源暫時連接埠的數目或增加負載平衡器的目標數目,以減少此類型的連線錯誤。您可以停用用戶端 IP 保留或停用跨區域負載平衡來防止此類連線錯誤。
-
當您停用用戶端 IP 保留時,Network Load Balancer 可支援 55,000 條同時連線,或每分鐘 55,000 條連線連至唯一目標 (IP 地址和連接埠)。若超過上述連線數量,將提高連接埠配置錯誤機率,導致無法建立新連線。可以使用
PortAllocationErrorCount
指標追蹤連接埠配置錯誤。若要修復連接埠配置錯誤,請將更多目標加入目標群組。如需詳細資訊,請參閱CloudWatch Network Load Balancer 的指標。
使用主控台設定用戶端 IP 保留
在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/
。 -
在導覽窗格的 Load Balancing (負載平衡) 中,選擇 Target Groups (目標群組)。
-
選擇目標群組的名稱,以開啟其詳細資訊頁面。
-
在屬性索引標籤中,選擇編輯。
-
如果要啟用用戶端 IP 保留,請開啟 保留用戶端 IP 地址。如果要停用用戶端 IP 保留,請關閉 保留用戶端 IP 地址。
-
選擇 Save changes (儲存變更)。
使用 啟用或停用用戶端 IP 保留 AWS CLI
將 modify-target-group-attributes命令與 preserve_client_ip.enabled
屬性搭配使用。
例如,使用以下命令停用用戶端 IP 保留。
aws elbv2 modify-target-group-attributes --attributes Key=preserve_client_ip.enabled,Value=
false
--target-group-arnARN
輸出內容應如下範例所示。
{
"Attributes": [
{
"Key": "proxy_protocol_v2.enabled",
"Value": "false"
},
{
"Key": "preserve_client_ip.enabled",
"Value": "false"
},
{
"Key": "deregistration_delay.timeout_seconds",
"Value": "300"
}
]
}
取消登記的延遲
取消註冊目標時,負載平衡器會停止建立與目標的新連線。負載平衡器會以連接耗盡功能,來確保傳輸中流量在現有連線上完成。如果執行取消登錄的目標保持良好的狀態,且現有連線未閒置,負載平衡器可以繼續傳送流量至執行目標。為了確保現有連線已關閉,您可以執行下列其中一項操作:啟用連線終止目標群組屬性、在執行取消登錄目標之前確保執行個體運作狀態不佳或定期關閉用戶端連線。
取消註冊目標的初始狀態為 draining
,在此期間目標將停止接收新連線。不過,目標仍然可能因組態傳播延遲而收到連線。根據預設,負載平衡器會在 300 秒後將取消登錄的目標狀態變更成 unused
。若要變更負載平衡器在將取消登錄目標的狀態變更成 unused
之前的等候時間,請更新取消登錄的延遲的值。我們建議您指定的值至少 120 秒,以確保完成該請求。
如果啟用連線終止目標群組屬性,則與已取消登錄目標的連線會在取消登錄逾時結束後不久關閉。
使用主控台更新取消註冊屬性
在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/
。 -
在導覽窗格的 Load Balancing (負載平衡) 中,選擇 Target Groups (目標群組)。
-
選擇目標群組的名稱,以開啟其詳細資訊頁面。
-
在屬性索引標籤選擇編輯。
-
若要變更取消登錄延遲,請輸入新的取消登錄延遲值。若要確保在取消登錄目標後關閉現有連線,請選擇 取消登錄終止時連線。
-
選擇 Save changes (儲存變更)。
使用 更新取消註冊屬性 AWS CLI
使用 modify-target-group-attributes命令。
Proxy Protocol (代理通訊協定)
將使用 Proxy Protocol 第 2 版來傳送額外的連線資訊,例如來源與目的地。Proxy Protocol 第 2 版提供 Proxy Protocol 標頭的二進位編碼。使用TCP接聽程式時,負載平衡器會將代理通訊協定標頭預先安裝到TCP資料。它不會捨棄或覆寫現有資料,包括用戶端傳送的 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 Protocol 之後,在與負載平衡器的運作狀態檢查連線中,也會包含 Proxy Protocol 標頭。不過,如果有運作狀態檢查連線,在 Proxy Protocol 的標頭中就不會傳送用戶端的連線資訊。
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通訊協定第 1 版和第 2 版
使用主控台來啟用 Proxy Protocol 第 2 版
在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/
。 -
在導覽窗格的 Load Balancing (負載平衡) 中,選擇 Target Groups (目標群組)。
-
選擇目標群組的名稱,以開啟其詳細資訊頁面。
-
在屬性索引標籤中,選擇編輯。
-
在 編輯屬性 頁面上,選擇 Proxy Protocol v2。
-
選擇 Save changes (儲存變更)。
使用 啟用代理通訊協定 v2 AWS CLI
使用 modify-target-group-attributes命令。
黏性工作階段
黏性工作階段是將用戶端流量路由到目標群組中相同目標的機制。這對於維護狀態資訊以便為用戶端提供持續體驗的伺服器來說很實用。
考量事項
-
使用粘性工作階段會導致連線和流程分配不均,因而可能會影響目標的可用性。例如,相同NAT裝置後面的所有用戶端都有相同的來源 IP 地址。因此,來自這些用戶端的所有流量都會路由到相同的目標。
-
如果目標群組之任何目標的運作狀態發生變更,或者如果您向目標群組註冊或取消註冊目標,則負載平衡器可能會重設該目標群組的粘性工作階段。
-
當目標群組的黏性屬性開啟時,不支援被動運作狀態檢查。如需詳細資訊,請參閱目標群組 的運作狀態檢查。
-
TLS 接聽程式不支援粘性工作階段。
使用主控台啟用黏性工作階段
在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/
。 -
在導覽窗格的 Load Balancing (負載平衡) 中,選擇 Target Groups (目標群組)。
-
選擇目標群組的名稱,以開啟其詳細資訊頁面。
-
在屬性索引標籤中,選擇編輯。
-
在目標選擇配置下,開啟粘性。
-
選擇 Save changes (儲存變更)。
使用 啟用黏性工作階段 AWS CLI
將 modify-target-group-attributes命令與 stickiness.enabled
屬性搭配使用。
目標群組的跨區域負載平衡
負載平衡器的節點會將請求從用戶端分發到已註冊的目標。開啟跨區域負載平衡時,每個負載平衡器節點會將流量分散到所有已註冊可用區域內的已註冊目標。關閉跨區域負載平衡時,每個負載平衡器節點只會將流量分散到其可用區域內已註冊的目標。如果區域故障網域優先於地區故障網域,就可能發生此情形,以確保運作狀態良好的區域不受運作狀態不佳區域的影響,也可能是為改善整體延遲。
當使用 Network Load Balancer 時,在負載平衡器層級預設會關閉跨區域負載平衡,但您可以隨時將其開啟。對於目標群組,預設值是使用負載平衡器設定,但您可以在目標群組層級明確關閉跨區域負載平衡來覆寫預設值。
考量事項
-
為 Network Load Balancer 啟用跨區域負載平衡時,需支付EC2資料傳輸費用。如需詳細資訊,請參閱 Data Exports 使用者指南中的了解資料傳輸費用 AWS
-
目標群組設定會決定目標群組的負載平衡行為。例如,如果在負載平衡器層級啟用跨區域負載平衡,並在目標群組層級停用,則傳送至目標群組的流量不會跨可用區域路由傳送。
-
當跨區域負載平衡關閉時,請確定您在每個負載平衡器可用區域都有足夠的目標容量,以便每個區域都能為其關聯的工作負載提供服務。
-
當關閉跨區域負載平衡時,請確定所有目標群組都參與相同的可用區域。空白的可用區域會被視為運作狀態不佳。
修改負載平衡器的跨區域負載平衡
您可以隨時在負載平衡器層級開啟或關閉跨區域負載平衡。
使用控制台修改負載平衡器的跨區域負載平衡
在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/
。 -
在導覽窗格的 Load Balancing (負載平衡) 下方,選擇 Load Balancers (負載平衡器)。
-
選取您負載平衡器的名稱來開啟其詳細資訊頁面。
-
在屬性索引標籤中,選擇編輯。
-
在 編輯負載平衡器屬性 頁面,開啟 跨區域負載平衡 或關閉。
-
選擇 Save changes (儲存變更)。
使用 修改負載平衡器的跨區域負載平衡 AWS CLI
使用 modify-load-balancer-attributes命令搭配 load_balancing.cross_zone.enabled
屬性。
修改目標群組的跨區域負載平衡
目標群組層級的跨區域負載平衡設定會在負載平衡器層級覆寫設定。
如果目標群組類型為 instance
或 ip
,您可以在目標群組層次開啟或關閉跨區域負載平衡。如果目標群組類型為 alb
,則目標群組一律會繼承負載平衡器的跨區域負載平衡設定。
使用控制台修改目標群組的跨區域負載平衡
在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/
。 -
在導覽窗格的負載平衡下,選取目標群組。
-
選取目標群組的名稱,以開啟其詳細資訊頁面。
-
在屬性索引標籤中,選擇編輯。
-
在編輯目標群組屬性頁面上,選取開啟以進行跨區域負載平衡。
-
選擇 Save changes (儲存變更)。
使用 修改目標群組的跨區域負載平衡 AWS CLI
將 modify-target-group-attributes命令與 load_balancing.cross_zone.enabled
屬性搭配使用。
運作狀態不佳目標的連線終止
預設會啟用連線終止。當 Network Load Balancer 的目標未通過設定的運作狀態檢查,並被視為運作狀態不佳時,負載平衡器會終止已建立的連線,並停止將新連線路由至目標。在停用連線終止的情況下,目標仍會被視為運作狀態不佳,不會收到新的連線,但已建立的連線會保持作用中狀態,讓目標可以正常關閉。
每個目標群組可以個別設定運作狀態不佳目標的連線終止。
使用主控台修改連線終止設定
在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/
。 -
在導覽窗格的負載平衡中,選擇目標群組。
-
選擇目標群組的名稱,以開啟其詳細資訊頁面。
-
在屬性索引標籤中,選擇編輯。
-
在 目標運作狀態不佳管理,選擇是否啟用或停用 當目標運作狀態不佳時終止連線 。
-
選擇 Save changes (儲存變更)。
使用 修改連線終止設定 AWS CLI
使用 target_health_state.unhealthy.connection_termination.enabled
modify-target-group-attributes命令搭配 屬性。
排放間隔不良
重要
必須先停用連線終止,才能啟用運作狀態不佳的排空間隔。
unhealthy.draining
狀態中的目標會被視為運作狀態不佳,不會接收新的連線,而是在設定的間隔內保留已建立的連線。運作狀態不佳的連線間隔會決定目標在狀態變成 之前保持 unhealthy.draining
狀態的時間unhealthy
。如果目標在運作狀態不佳的連線間隔內通過運作狀態檢查,則狀態會healthy
再次變為 。如果觸發取消註冊,則目標狀態會變成 draining
,並開始取消註冊延遲逾時。
每個目標群組可以個別設定運作狀態不佳的排放間隔。
使用主控台修改運作狀態不佳的排放間隔
在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/
。 -
在導覽窗格的負載平衡中,選擇目標群組。
-
選擇目標群組的名稱,以開啟其詳細資訊頁面。
-
在屬性索引標籤中,選擇編輯。
-
在目標運作狀態不良管理 下,確保在目標運作狀態不佳時終止連線。
-
為運作狀態不佳的排放間隔 輸入值。
-
選擇 Save changes (儲存變更)。
若要使用 修改運作狀態不佳的排放間隔 AWS CLI
將 modify-target-group-attributes命令與 target_health_state.unhealthy.draining_interval_seconds
屬性搭配使用。