Network Load Balancer - Elastic Load Balancing

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

Network Load Balancer

Network Load Balancer 做為用戶端的單一聯絡點。用戶端會將請求傳送至 Network Load Balancer,而 Network Load Balancer 會將請求傳送至一或多個可用區域中的目標,例如 EC2 執行個體。

若要設定 Network Load Balancer,您可以建立目標群組,然後向目標群組註冊目標。如果您確保每個啟用的可用區域至少有一個已註冊的目標,則 Network Load Balancer 最有效。您也可以建立接聽程式來檢查來自用戶端的連線請求,並路由來自用戶端的請求到目標群組中的目標。

Network Load Balancer 支援透過 VPC 對等互連 AWS Direct Connect、 AWS 受管 VPN 和第三方 VPN 解決方案從用戶端連線。

負載平衡器狀態

Network Load Balancer 可以處於下列其中一種狀態:

provisioning

正在設定 Network Load Balancer。

active

Network Load Balancer 已完全設定並準備好路由流量。

failed

無法設定 Network Load Balancer。

IP 地址類型

您可以設定用戶端可與 Network Load Balancer 搭配使用的 IP 地址類型。

Network Load Balancer 支援下列 IP 地址類型:

ipv4

用戶端必須使用 IPv4 地址連線 (例如 192.0.2.1)。

dualstack

用戶端可以使用 IPv4 地址 (例如 192.0.2.1) 和 IPv6 地址 (例如 2001:0db8:85a3:0:0:8a2e:0370:7334) 連線到 Network Load Balancer。

考量事項
  • Network Load Balancer 會根據目標群組的 IP 地址類型與目標通訊。

  • 當您為 Network Load Balancer 啟用雙堆疊模式時,Elastic Load Balancing 會提供 Network Load Balancer 的 AAAA DNS 記錄。使用 IPv4 地址與 Network Load Balancer 通訊的用戶端會解析 DNS 記錄。使用 IPv6 地址與 Network Load Balancer 通訊的用戶端會解析 AAAA DNS 記錄。

  • 透過網際網路閘道存取您的內部雙堆疊 Network Load Balancer 會遭到封鎖,以防止意外的網際網路存取。不過,這不會阻止其他網際網路存取 (例如,透過對等互連 AWS Direct Connect、Transit Gateway 或 AWS VPN)。

如需 IP 地址類型的詳細資訊,請參閱更新 Network Load Balancer 的 IP 地址類型

連線閒置逾時

對於用戶端透過 Network Load Balancer 做出的每項 TCP 請求,將追蹤該連線狀態。如果用戶端或目標透過連線傳送的資料超過閒置逾時的時間,則不會再追蹤連線。如果用戶端或目標在閒置逾時期間過後傳送資料,用戶端會收到 TCP RST 封包,指出連線不再有效。

TCP 流程的預設閒置逾時值為 350 秒,但可以更新為介於 60-6000 秒之間的任何值。用戶端或目標可以使用 TCP 保持連線封包來重新啟動閒置逾時。傳送來維護 TLS 連線的保持連線封包不能包含資料或有效負載。

當 TLS 接聽程式從用戶端或目標收到 TCP 保持連線封包時,負載平衡器會產生 TCP 保持連線封包,並每 20 秒將其傳送至前端與後端連線。您無法修改此行為。

儘管 UDP 為無連線,負載平衡器會根據來源與目的地 IP 地址及連接埠來維護 UDP 流程狀態。這可確保持續傳送屬於相同流程的封包至相同目標。在閒置逾時期間經過之後,負載平衡器會將傳入的 UDP 封包視為新流程,並將其路由至新目標。Elastic Load Balancing 會將 UDP 流量的閒置逾時值設為 120 秒。無法對此進行變更。

EC2 執行個體必須在 30 秒內回應新的請求,才能建立傳回路徑。

如需詳細資訊,請參閱更新閒置逾時

負載平衡器屬性

您可以編輯 Network Load Balancer 的屬性來設定它。如需詳細資訊,請參閱編輯負載平衡器屬性

以下是 Network Load Balancer 的負載平衡器屬性:

access_logs.s3.enabled

指出在 Amazon S3 中存放的存取日誌是否啟用。預設值為 false

access_logs.s3.bucket

存取日誌的 Amazon S3 儲存貯體名稱。如果啟用存取日誌,則此為必要屬性。如需詳細資訊,請參閱儲存貯體需求

access_logs.s3.prefix

Amazon S3 儲存貯體中的位置字首。

deletion_protection.enabled

表示是否已啟用刪除保護。預設值為 false

ipv6.deny_all_igw_traffic

封鎖網際網路閘道 (IGW) 對 Network Load Balancer 的存取,防止透過網際網路閘道意外存取您的內部 Network Load Balancer。false 面向網際網路的 Network Load Balancer 設為 ,內部 Network Load Balancer true 設為 。此屬性不會阻止非 IGW 網際網路存取 (例如,透過對等互連、Transit Gateway AWS Direct Connect、 或 AWS VPN)。

load_balancing.cross_zone.enabled

表示是否已啟用跨區域負載平衡。預設值為 false

dns_record.client_routing_policy

指示流量在 Network Load Balancer 可用區域之間的分佈方式。可能值為 availability_zone_affinity 具 100% 區域親和性、partial_availability_zone_affinity 具 85% 區域親和性,以及 any_availability_zone 具 0% 區域親和性。

zonal_shift.config.enabled

指出是否啟用區域轉移。預設值為 false

跨區域負載平衡

根據預設,每個 Network Load Balancer 節點只會在其可用區域中的已註冊目標之間分配流量。如果您開啟跨區域負載平衡,每個 Network Load Balancer 節點都會在所有啟用的可用區域中,將流量分散到已註冊的目標。您也可在目標群組層級開啟跨區域負載平衡。如需詳細資訊,請參閱 Elastic Load Balancing 使用者指南目標群組的跨區域負載平衡跨區域負載平衡

DNS 名稱

每個 Network Load Balancer 都會收到預設的網域名稱系統 (DNS) 名稱,其語法如下:name-id.elb.region.amazonaws.com。例如,my-load-balancer-1234567890abcdef.elb.us-east-2.amazonaws.com。

如果您想要使用更易於記住的 DNS 名稱,您可以建立自訂網域名稱,並將其與 Network Load Balancer 的 DNS 名稱建立關聯。當用戶端使用此自訂網域名稱提出請求時,DNS 伺服器會解析為 Network Load Balancer 的 DNS 名稱。

首先,向取得認證的網域名稱註冊商註冊網域名稱。接下來,使用您的 DNS 服務,例如網域註冊商,建立 DNS 記錄以將請求路由到您的 Network Load Balancer。如需詳細資訊,請參閱您的 DNS 服務文件。例如,如果您使用 Amazon Route 53 做為 DNS 服務,您可以建立指向 Network Load Balancer 的別名記錄。如需詳細資訊,請參閱《Amazon Route 53 開發人員指南》中的將流量路由到 ELB 負載平衡器

Network Load Balancer 每個啟用的可用區域都有一個 IP 地址。這些是 Network Load Balancer 節點的 IP 地址。Network Load Balancer 的 DNS 名稱會解析為這些地址。例如,假設 Network Load Balancer 的自訂網域名稱為 example.networkloadbalancer.com。使用下列 dignslookup命令來判斷 Network Load Balancer 節點的 IP 地址。

Linux 或 Mac

$ dig +short example.networkloadbalancer.com

Windows

C:\> nslookup example.networkloadbalancer.com

Network Load Balancer 的節點具有 DNS 記錄。您可以使用 DNS 名稱搭配下列語法來判斷 Network Load Balancer 節點的 IP 地址:az.name-id.elb.region.amazonaws.com。

Linux 或 Mac

$ dig +short us-east-2b.my-load-balancer-1234567890abcdef.elb.us-east-2.amazonaws.com

Windows

C:\> nslookup us-east-2b.my-load-balancer-1234567890abcdef.elb.us-east-2.amazonaws.com

負載平衡器區域運作狀態

Network Load Balancer 在 Route 53 中為每個啟用的可用區域都有區域 DNS 記錄和 IP 地址。當 Network Load Balancer 針對特定可用區域進行區域運作狀態檢查失敗時,其 DNS 記錄會從 Route 53 中移除。使用 Amazon CloudWatch 指標 監控負載平衡器區域運作狀態ZonalHealthStatus,讓您更深入地了解導致故障的事件,以實作預防性措施,以確保應用程式的最佳可用性。如需詳細資訊,請參閱 Network Load Balancer 指標

Network Load Balancer 可能會因多種原因而使區域運作狀態檢查失敗,導致運作狀態不佳。請參閱以下因區域運作狀態檢查失敗而導致 Network Load Balancer 運作狀態不佳的常見原因。

檢查下列可能原因:
  • 負載平衡器沒有運作狀態良好的目標

  • 運作狀態良好的目標數量小於設定的最小值

  • 有區域轉移或區域自動轉移進行中

  • 由於偵測到問題,流量會自動轉移到運作狀態良好的區域