建立 Network Load Balancer 接聽程式 - Elastic Load Balancing

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

建立 Network Load Balancer 接聽程式

接聽程式是檢查連線請求的程序。當您在立負載平衡器時便定義接聽程式,然後可隨時新增接聽程式到您的負載平衡器。

先決條件

  • 您必須為預設動作指定目標群組。如需詳細資訊,請參閱為您的 Network Load Balancer 建立目標群組

  • 您必須指定 TLS 接聽程式的 SSL 憑證。負載平衡器會使用憑證來終止連接,然後解密用來自戶端的請求,之後才將它們路由到目標。如需詳細資訊,請參閱Network Load Balancer 的伺服器憑證

  • 您無法將 IPv4 目標群組與dualstack負載平衡器的 UDP 接聽程式搭配使用。

  • QUIC 和 TCP_QUIC 接聽程式不允許在具有相關聯安全群組的dualstack負載平衡器或負載平衡器上使用。

  • 具有相關聯安全群組的負載平衡器不允許使用 QUIC 和 TCP_QUIC 接聽程式。

  • 在任何指定時間,Network Load Balancer 上只允許一個 QUIC 或 TCP_QUIC 接聽程式。

  • 具有 UDP 或 TCP_UDP 接聽程式的 Network Load Balancer 上不允許 QUIC 和 TCP_QUIC 接聽程式。

新增接聽程式

您使用用戶端與負載平衡器間連線的通訊協定與連接埠來設定接聽程式,並為預設接聽程式規則設定目標群組。如需詳細資訊,請參閱接聽程式組態

Console
加入接聽程式
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Load Balancers (負載平衡器)

  3. 選取您負載平衡器的名稱來開啟其詳細資訊頁面。

  4. 接聽程式索引標籤上,選擇新增接聽程式

  5. 針對通訊協定,選擇 TCPUDPTCP_UDPTLSQUICTCP_QUIC。保持預設連接埠或輸入不同的連接埠。

  6. 針對預設動作,選取要轉送流量的目標群組。

    若要新增另一個目標群組,請選擇新增目標群組並視需要更新權重。

    如果您沒有符合您需求的目標群組,請選擇建立目標群組以立即建立目標群組。如需詳細資訊,請參閱建立目標群組

  7. [TLS 接聽程式] 針對 Security policy (安全政策),建議您保留預設的安全政策。

  8. 【TLS 接聽程式】 針對預設 SSL/TLS 伺服器憑證,選擇預設憑證。您可以從下列其中一個來源選取憑證:

    • 如果您使用 建立或匯入憑證 AWS Certificate Manager,請選擇從 ACM,然後從憑證 (從 ACM) 選擇憑證

    • 如果您使用 IAM 匯入憑證,請選擇從 IAM,然後從憑證 (從 IAM) 選擇憑證

    • 如果您有憑證,請選擇匯入憑證。選擇匯入至 ACM匯入至 IAM。對於憑證私有金鑰,請複製並貼上私有金鑰檔案 (PEM 編碼) 的內容。對於憑證內文,複製並貼上公有金鑰憑證檔案 (PEM 編碼) 的內容。對於憑證鏈,請複製並貼上憑證鏈檔案 (PEM 編碼) 的內容,除非您使用的是自我簽署憑證,而且瀏覽器不一定要隱含地接受憑證。

  9. [TLS 接聽程式] 若為 ALPN policy (ALPN 政策),請選擇要啟用 ALPN 的政策,或選擇 None (無) 停用 ALPN。如需詳細資訊,請參閱ALPN 政策

  10. (選用) 若要新增標籤,請展開接聽程式標籤。選擇新增標籤,然後輸入標籤索引鍵和標籤值。

  11. 選擇新增

  12. 【TLS 接聽程式】 若要將憑證新增至選用憑證清單,請參閱 將憑證新增至憑證清單

AWS CLI
若要建立目標群組

如果您沒有可用於預設動作的目標群組,請使用 create-target-group 命令立即建立一個。如需範例,請參閱 建立目標群組

新增 TCP 接聽程式

使用 create-listener 命令,指定 TCP 通訊協定。

aws elbv2 create-listener \ --load-balancer-arn load-balancer-arn \ --protocol TCP \ --port 80 \ --default-actions Type=forward,TargetGroupArn=target-group-arn
新增具有多個目標群組的 TCP 接聽程式

使用 create-listener 命令,指定 TCP 通訊協定、目標群組和權重。

aws elbv2 create-listener \ --load-balancer-arn load-balancer-arn \ --protocol TCP \ --port 80 \ --default-actions '[{ "Type":"forward", "ForwardConfig":{ "TargetGroups":[ {"TargetGroupArn":"target-group-1-arn","Weight":10}, {"TargetGroupArn":"target-group-2-arn","Weight":30} ] } }]'
新增 TLS 接聽程式

使用 create-listener 命令指定 TLS 通訊協定。

aws elbv2 create-listener \ --load-balancer-arn load-balancer-arn \ --protocol TLS \ --port 443 \ --certificates CertificateArn=certificate-arn \ --ssl-policy ELBSecurityPolicy-TLS13-1-2-Res-2021-06 \ --default-actions Type=forward,TargetGroupArn=target-group-arn
新增 UDP 接聽程式

使用 create-listener 命令指定 UDP 通訊協定。

aws elbv2 create-listener \ --load-balancer-arn load-balancer-arn \ --protocol UDP \ --port 53 \ --default-actions Type=forward,TargetGroupArn=target-group-arn
新增 QUIC 接聽程式

使用 create-listener 命令指定 QUIC 通訊協定。

aws elbv2 create-listener \ --load-balancer-arn load-balancer-arn \ --protocol QUIC \ --port 443 \ --default-actions Type=forward,TargetGroupArn=target-group-arn
CloudFormation
新增 TCP 接聽程式

使用 TCP 通訊協定定義 AWS::ElasticLoadBalancingV2::Listener 類型的資源。

Resources: myTCPListener: Type: 'AWS::ElasticLoadBalancingV2::Listener' Properties: LoadBalancerArn: !Ref myLoadBalancer Protocol: TCP Port: 80 DefaultActions: - Type: forward TargetGroupArn: !Ref myTargetGroup
新增具有多個目標群組的 TCP 接聽程式

使用 TCP 通訊協定定義 AWS::ElasticLoadBalancingV2::Listener 類型的資源。

Resources: myTCPListener: Type: 'AWS::ElasticLoadBalancingV2::Listener' Properties: LoadBalancerArn: !Ref myLoadBalancer Protocol: TCP Port: 80 DefaultActions: - Type: forward ForwardConfig: TargetGroups: - TargetGroupArn: !Ref myTargetGroup1, Weight: 10 - TargetGroupArn: !Ref myTargetGroup2, Weight: 30 TargetGroupStickinessConfig: Enabled: true
新增 TLS 接聽程式

使用 TLS 通訊協定定義 AWS::ElasticLoadBalancingV2::Listener 類型的資源。

Resources: myTLSListener: Type: 'AWS::ElasticLoadBalancingV2::Listener' Properties: LoadBalancerArn: !Ref myLoadBalancer Protocol: TLS Port: 443 SslPolicy: "ELBSecurityPolicy-TLS13-1-2-Res-2021-06" Certificates: - CertificateArn: "certificate-arn" DefaultActions: - Type: forward TargetGroupArn: !Ref myTargetGroup
新增 UDP 接聽程式

使用 UDP 通訊協定定義 AWS::ElasticLoadBalancingV2::Listener 類型的資源。

Resources: myUDPListener: Type: 'AWS::ElasticLoadBalancingV2::Listener' Properties: LoadBalancerArn: !Ref myLoadBalancer Protocol: UDP Port: 53 DefaultActions: - Type: forward TargetGroupArn: !Ref myTargetGroup
新增 QUIC 接聽程式

使用 QUIC 通訊協定定義 AWS::ElasticLoadBalancingV2::Listener 類型的資源。

Resources: myQUICListener: Type: 'AWS::ElasticLoadBalancingV2::Listener' Properties: LoadBalancerArn: !Ref myLoadBalancer Protocol: QUIC Port: 443 DefaultActions: - Type: forward TargetGroupArn: !Ref myTargetGroup