本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Application Load Balancer 做為 Network Load Balancer 的目標
您可以建立單一 Application Load Balancer 作為目標建立目標群組,並設定 Network Load Balancer 以將流量轉送至該群組。在此案例,Application Load Balancer 會在流量到達負載平衡決策時接管負載平衡決策。此組態結合了兩個負載平衡器的功能,並提供下列優點:
您可以將此功能與內部或面對網際網路的 Application Load Balancer 搭配使用,作為內部或面向網際網路的 Network Load Balancer 目標。
考量事項
-
每個目標群組只能註冊一個 Application Load Balancer。
-
若要將 Application Load Balancer 關聯為 Network Load Balancer 的目標,負載平衡器必須位於相同帳戶中的相同 VPC 中。
-
您可以將 Application Load Balancer 關聯為最多兩個 Network Load Balancer 的目標。若要這樣做,請使用每個 Network Application Load Balancer 的個別目標群組註冊 Application Load Balancer。
-
您向 Network Load Balancer 註冊的每個 Application Load Balancer 會將每個 Network Load Balancer 每個可用區域的目標數量上限減少 50 個。 Load Balancer 您可以在兩個負載平衡器停用跨區域負載平衡,以最大程度減少延遲並避免區域資料傳輸費用。如需詳細資訊,請參閱Network Load Balancer 的配額。
-
當目標群組類型為 alb
時,您無法修改目標群組屬性。這些屬性一律使用其預設值。
-
在將 Application Load Balancer 登錄為目標之後,除非從所有目標群組取消登錄 Application Load Balancer,否則無法將其刪除。
-
Network Load Balancer 與 Application Load Balancer 之間的通訊一律使用 IPv4。
先決條件
如果您還沒有要用作目標的 Application Load Balancer,請建立負載平衡器、其接聽程式及其目標群組。如需詳細資訊,請參閱《Application Load Balancer 使用者指南》中的建立 Application Load Balancer。
步驟 1:建立 類型的目標群組 alb
建立類型為 的目標群組alb
。您可以在建立目標群組或更新版本時,將 Application Load Balancer 註冊為目標。
- Console
-
建立 Application Load Balancer 做為目標的目標群組
前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。
-
在導覽窗格的 Load Balancing (負載平衡) 中,選擇 Target Groups (目標群組)。
-
選擇 Create target group (建立目標群組)。
-
在基本組態窗格中,針對選擇目標類型,選擇 Application Load Balancer。
-
針對 Target group name (目標群組名稱),輸入目標群組的名稱。
-
對於 通訊協定,只允許 TCP。選取目標群組的 連接埠 。此目標群組的連接埠必須符合 Application Load Balancer 的接聽程式連接埠。如果為此目標群組選擇不同的連接埠,您可以更新 Application Load Balancer 上的接聽程式連接埠以符合該連接埠。
-
針對 VPC,選取目標群組的虛擬私有雲端 (VPC)。這必須與 Application Load Balancer 使用的 VPC 相同。
-
對於運作狀態檢查,請選擇 HTTP 或 HTTPS 做為運作狀態檢查通訊協定。運作狀態檢查會傳送至 Application Load Balancer,並使用指定的連接埠、通訊協定與 ping 路徑轉送至其目標。確保您的 Application Load Balancer 具有與運作狀態檢查的連接埠與通訊協定相符的接聽程式,以接收這些運作狀態檢查。
-
(選用) 展開標籤。針對每個標籤,選擇新增標籤,然後輸入標籤索引鍵和標籤值。
-
選擇下一步。
-
如果您準備好註冊 Application Load Balancer,請選擇立即註冊,視需要覆寫預設連接埠,然後選取 Application Load Balancer。Application Load Balancer 必須在與目標群組相同的連接埠上具有接聽程式。您可以在此負載平衡器上新增或編輯接聽程式,以符合目標群組連接埠,或返回上一個步驟並變更目標群組的連接埠。
如果您尚未準備好將 Application Load Balancer 註冊為目標,請稍後選擇註冊,稍後再註冊目標。如需詳細資訊,請參閱登記目標。
-
選擇 Create target group (建立目標群組)。
- AWS CLI
-
建立 類型的目標群組 alb
使用 create-target-group 命令。通訊協定必須是 TCP,且連接埠必須符合 Application Load Balancer 的接聽程式連接埠。
aws elbv2 create-target-group \
--name my-target-group
\
--protocol TCP \
--port 80 \
--target-type alb \
--vpc-id vpc-1234567890abcdef0
\
--tags Key=department
,Value=123
- CloudFormation
-
建立 類型的目標群組 alb
定義 AWS::ElasticLoadBalancingV2::TargetGroup 類型的資源。通訊協定必須是 TCP,且連接埠必須符合 Application Load Balancer 的接聽程式連接埠。
Resources:
myTargetGroup:
Type: 'AWS::ElasticLoadBalancingV2::TargetGroup'
Properties:
Name: my-target-group
Protocol: TCP
Port: 80
TargetType: alb
VpcId: !Ref myVPC
Tags:
- Key: 'department
'
Value: '123
'
Targets:
-Id: !Ref myApplicationLoadBalancer
Port: 80
建立 Network Load Balancer 時,您可以設定預設動作,將流量轉送至 Application Load Balancer。
- Console
-
建立 Network Load Balancer
前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。
-
在導覽窗格的 Load Balancing (負載平衡器),選擇 Load Balancer (負載平衡器)。
-
選擇 Create load balancer (建立負載平衡器)。
-
在 Network Load Balancer 下,選擇建立。
-
基本組態
-
在負載平衡器名稱中,輸入 Network Load Balancer 的名稱。
-
針對 Scheme (機制),選擇 Internet-facing (面對網際網路) 或 internal (內部)。面向網際網路的 Network Load Balancer 會透過網際網路將請求從用戶端路由到目標。內部 Network Load Balancer 會使用私有 IP 地址將請求路由至目標。
-
針對負載平衡器 IP 地址類型,如果您的用戶端使用 IPvIPv4 地址與 Network Load Balancer 通訊,請選擇 IPv4;如果您的用戶端同時使用 IPv4 和 IPv6 地址與 Network Load Balancer 通訊,請選擇 Dualstack。 IPv4
-
網路映射
-
針對 VPC,選取您用於 Application Load Balancer 的相同 VPC。透過面向網際網路的負載平衡器,只有具有網際網路閘道VPCs 可供選取。
-
對於可用區域和子網路,請選取至少一個可用區域,然後為每個區域選取一個子網路。建議您選取為 Application Load Balancer 啟用的相同可用區域。這可最佳化可用性、擴展和效能。
(選用) 若要使用靜態 IP 地址,請在每個可用區域的 Ipv4 設定選擇使用 Elastic IP 地址。使用靜態 IP 地址,您可以將特定 IP 地址加入防火牆的允許清單,或者您可以使用用戶端硬式編碼 IP 地址。
-
安全群組
我們會預先選取負載平衡器 VPC 的預設安全群組。您可以視需要選取其他安全群組。如果您沒有符合您需求的安全群組,請選擇建立新的安全群組以立即建立。如需詳細資訊,請參閱《Amazon VPC 使用者指南》的建立安全群組。
如果您現在未將任何安全群組與 Network Load Balancer 建立關聯,則無法在稍後建立關聯。
-
接聽程式和路由
-
預設值是接受連接埠 80 以上 TCP 流量的接聽程式。只有 TCP 接聽程式可以將流量轉送至 Application Load Balancer 目標群組。您必須將 通訊協定 作為 TCP,但您可以視需要修改 連接埠 。
透過此組態,您可以使用 Application Load Balancer 的 HTTPS 接聽程式來終止 TLS 流量。
-
針對預設動作,選取您在上一個步驟中建立的目標群組。
-
(選用) 選擇新增接聽程式標籤,然後輸入標籤索引鍵和標籤值。
-
負載平衡器標籤
(選用) 展開負載平衡器標籤。選擇新增標籤,然後輸入標籤索引鍵和標籤值。如需詳細資訊,請參閱標籤。
-
摘要
檢閱您的組態,然後選擇建立負載平衡器。
- AWS CLI
-
建立 Network Load Balancer
使用 create-load-balancer 命令。我們建議您使用為 Application Load Balancer 啟用的相同可用區域。
aws elbv2 create-load-balancer \
--name my-load-balancer \
--type network \
--scheme internal
\
--subnets subnet-1234567890abcdef0
subnet-0abcdef1234567890
\
--security-groups sg-1111222233334444
新增 TCP 接聽程式
使用 create-listener 命令來新增 TCP 接聽程式。只有 TCP 接聽程式可以將流量轉送至 Application Load Balancer。對於預設動作,請使用您在上一個步驟中建立的目標群組。
aws elbv2 create-listener \
--load-balancer-arn load-balancer-arn
\
--protocol TCP \
--port 80
\
--default-actions Type=forward,TargetGroupArn=target-group-arn
- CloudFormation
-
建立 Network Load Balancer
定義 AWS::ElasticLoadBalancingV2::LoadBalancer 類型的資源,以及 AWS::ElasticLoadBalancingV2::Listener 類型的資源。只有 TCP 接聽程式可以將流量轉送至 Application Load Balancer。對於預設動作,請使用您在上一個步驟中建立的目標群組。
Resources:
myLoadBalancer:
Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer'
Properties:
Name: my-load-balancer
Type: network
Scheme: internal
Subnets:
- !Ref subnet-AZ1
- !Ref subnet-AZ2
SecurityGroups:
- !Ref mySecurityGroup
myTCPListener:
Type: 'AWS::ElasticLoadBalancingV2::Listener'
Properties:
LoadBalancerArn: !Ref myLoadBalancer
Protocol: TCP
Port: 80
DefaultActions:
- Type: forward
TargetGroupArn: !Ref myTargetGroup
步驟 3:(選用) 建立 VPC 端點服務
若要使用您在上一個步驟中設定的 Network Load Balancer 做為私有連線的端點,您可以啟用 AWS PrivateLink。這會建立與負載平衡器做為端點服務的私有連線。
使用 Network Load Balancer 建立 VPC 端點服務
-
在導覽窗格上選擇 Load Balancers (負載平衡器)。
-
選取您 Network Load Balancer 的名稱來開啟其詳細資訊頁面。
-
在 整合 索引標籤,擴展 VPC 端點服務 (AWS PrivateLink)。
-
選擇 Create Endpoint(建立端點) 來開啟 Create Endpoint (建立端點) 頁面。如需其餘步驟,請參閱 AWS PrivateLink 指南的 建立端點服務 。