使用 Application Load Balancer 做為 Network Load Balancer 的目標 - Elastic Load Balancing

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

使用 Application Load Balancer 做為 Network Load Balancer 的目標

您可以建立單一 Application Load Balancer 作為目標建立目標群組,並設定 Network Load Balancer 以將流量轉送至該群組。在此案例,Application Load Balancer 會在流量到達負載平衡決策時接管負載平衡決策。此組態結合了兩個負載平衡器的功能,並提供下列優點:

  • 您可以將 Application Load Balancer的第 7 層要求型路由功能與 Network Load Balancer 支援的功能結合使用,例如端點服務 (AWS PrivateLink) 與靜態 IP 地址。

  • 您可以針對需要單一端點進行多通訊協定的應用程式使用此組態,例如使用 HTTP 進行訊號傳輸的媒體服務,以及使用 RTP 來串流內容的應用程式。

您可以將此功能與內部或面對網際網路的 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 做為目標的目標群組
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

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

  3. 選擇 Create target group (建立目標群組)

  4. 基本組態窗格中,針對選擇目標類型,選擇 Application Load Balancer

  5. 針對 Target group name (目標群組名稱),輸入目標群組的名稱。

  6. 對於 通訊協定,只允許 TCP。選取目標群組的 連接埠 。此目標群組的連接埠必須符合 Application Load Balancer 的接聽程式連接埠。如果為此目標群組選擇不同的連接埠,您可以更新 Application Load Balancer 上的接聽程式連接埠以符合該連接埠。

  7. 針對 VPC,選取目標群組的虛擬私有雲端 (VPC)。這必須與 Application Load Balancer 使用的 VPC 相同。

  8. 對於運作狀態檢查,請選擇 HTTP 或 HTTPS 做為運作狀態檢查通訊協定。運作狀態檢查會傳送至 Application Load Balancer,並使用指定的連接埠、通訊協定與 ping 路徑轉送至其目標。確保您的 Application Load Balancer 具有與運作狀態檢查的連接埠與通訊協定相符的接聽程式,以接收這些運作狀態檢查。

  9. (選用) 展開標籤。針對每個標籤,選擇新增標籤,然後輸入標籤索引鍵和標籤值。

  10. 選擇下一步

  11. 如果您準備好註冊 Application Load Balancer,請選擇立即註冊,視需要覆寫預設連接埠,然後選取 Application Load Balancer。Application Load Balancer 必須在與目標群組相同的連接埠上具有接聽程式。您可以在此負載平衡器上新增或編輯接聽程式,以符合目標群組連接埠,或返回上一個步驟並變更目標群組的連接埠。

    如果您尚未準備好將 Application Load Balancer 註冊為目標,請稍後選擇註冊,稍後再註冊目標。如需詳細資訊,請參閱登記目標

  12. 選擇 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

步驟 2:建立 Network Load Balancer 並設定路由

建立 Network Load Balancer 時,您可以設定預設動作,將流量轉送至 Application Load Balancer。

Console
建立 Network Load Balancer
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格的 Load Balancing (負載平衡器),選擇 Load Balancer (負載平衡器)

  3. 選擇 Create load balancer (建立負載平衡器)。

  4. Network Load Balancer 下,選擇建立

  5. 基本組態

    1. 負載平衡器名稱中,輸入 Network Load Balancer 的名稱。

    2. 針對 Scheme (機制),選擇 Internet-facing (面對網際網路) 或 internal (內部)。面向網際網路的 Network Load Balancer 會透過網際網路將請求從用戶端路由到目標。內部 Network Load Balancer 會使用私有 IP 地址將請求路由至目標。

    3. 針對負載平衡器 IP 地址類型,如果您的用戶端使用 IPvIPv4 地址與 Network Load Balancer 通訊,請選擇 IPv4;如果您的用戶端同時使用 IPv4 和 IPv6 地址與 Network Load Balancer 通訊,請選擇 Dualstack。 IPv4

  6. 網路映射

    1. 針對 VPC,選取您用於 Application Load Balancer 的相同 VPC。透過面向網際網路的負載平衡器,只有具有網際網路閘道VPCs 可供選取。

    2. 對於可用區域和子網路,請選取至少一個可用區域,然後為每個區域選取一個子網路。建議您選取為 Application Load Balancer 啟用的相同可用區域。這可最佳化可用性、擴展和效能。

      (選用) 若要使用靜態 IP 地址,請在每個可用區域的 Ipv4 設定選擇使用 Elastic IP 地址。使用靜態 IP 地址,您可以將特定 IP 地址加入防火牆的允許清單,或者您可以使用用戶端硬式編碼 IP 地址。

  7. 安全群組

    我們會預先選取負載平衡器 VPC 的預設安全群組。您可以視需要選取其他安全群組。如果您沒有符合您需求的安全群組,請選擇建立新的安全群組以立即建立。如需詳細資訊,請參閱《Amazon VPC 使用者指南》的建立安全群組

    警告

    如果您現在未將任何安全群組與 Network Load Balancer 建立關聯,則無法在稍後建立關聯。

  8. 接聽程式和路由

    1. 預設值是接受連接埠 80 以上 TCP 流量的接聽程式。只有 TCP 接聽程式可以將流量轉送至 Application Load Balancer 目標群組。您必須將 通訊協定 作為 TCP,但您可以視需要修改 連接埠

      透過此組態,您可以使用 Application Load Balancer 的 HTTPS 接聽程式來終止 TLS 流量。

    2. 針對預設動作,選取您在上一個步驟中建立的目標群組。

    3. (選用) 選擇新增接聽程式標籤,然後輸入標籤索引鍵和標籤值。

  9. 負載平衡器標籤

    (選用) 展開負載平衡器標籤。選擇新增標籤,然後輸入標籤索引鍵和標籤值。如需詳細資訊,請參閱標籤

  10. 摘要

    檢閱您的組態,然後選擇建立負載平衡器

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

若要使用您在上一個步驟中設定的 Network Load Balancer 做為私有連線的端點,您可以啟用 AWS PrivateLink。這會建立與負載平衡器做為端點服務的私有連線。

使用 Network Load Balancer 建立 VPC 端點服務
  1. 在導覽窗格上選擇 Load Balancers (負載平衡器)

  2. 選取您 Network Load Balancer 的名稱來開啟其詳細資訊頁面。

  3. 整合 索引標籤,擴展 VPC 端點服務 (AWS PrivateLink)

  4. 選擇 Create Endpoint(建立端點) 來開啟 Create Endpoint (建立端點) 頁面。如需其餘步驟,請參閱 AWS PrivateLink 指南建立端點服務