教學課程:使用 AWS CLI 來建立 Network Load Balancer - Elastic Load Balancing

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

教學課程:使用 AWS CLI 來建立 Network Load Balancer

本教學課程透過 AWS CLI 提供 Network Load Balancer 實作簡介。

開始之前

  • 安裝 AWS CLI,或者若您使用的版本不支援 Network Load Balancer,則將其更新到 AWS CLI 的目前版本。如需詳細資訊,請參閱《AWS Command Line Interface 使用者指南》中的安裝 AWS Command Line Interface

  • 決定您要用於 EC2 執行個體的可用區域。在各個可用區域內設定至少包含一個公有子網路的 Virtual Private Cloud (VPC)。

  • 決定是否要建立 IPv4 或雙堆疊負載平衡器。如果您想要用戶端僅使用 IPv4 地址來與負載平衡器通訊,請使用 IPv4。如果您想要用戶端同時使用 IPv4 和 IPv6 地址來與負載平衡器通訊,請選擇雙堆疊。您也可以選擇雙堆疊使用 IPv6 與後端目標 (例如 IPv6 應用程式或雙堆疊子網路) 進行通訊。

  • 在各個可用區域內啟動至少一個 EC2 執行個體。確保各執行個體的安全群組允許來自用戶端透過接聽程式連接埠的 TCP 存取以及來自您的 VPC 的運作狀態檢查請求。如需詳細資訊,請參閱 目標安全群組

建立 IPv4 負載平衡器

完成以下步驟,建立您的第一個負載平衡器。

若要建立 Ipv4 負載平衡器
  1. 使用此命create-load-balancer令建立 IPv4 負載平衡器,為您在其中啟動執行個體的每個可用區域指定公用子網路。每個可用區域只能指定一個子網路。

    根據預設,當 Network Load Balancer 是使用 AWS CLI 建立時,不會自動為 VPC 使用預設安全群組。如您在建立期間未關聯任何安全群組與負載平衡器,則無法於稍後新增。建議您在建立期間利用 --security-groups 選項來指定負載平衡器的安全群組。

    aws elbv2 create-load-balancer --name my-load-balancer --type network --subnets subnet-0e3f5cac72EXAMPLE --security-groups sg-0123456789EXAMPLE

    其輸出將包含負載平衡器的 Amazon Resource Name (ARN),格式如下:

    arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/net/my-load-balancer/1234567890123456
  2. 使用命create-target-group令建立 IPv4 目標群組,並指定您用於 EC2 執行個體的相同 VPC。IPv4 目標群組支援 IP 和執行個體類型目標。

    aws elbv2 create-target-group --name my-targets --protocol TCP --port 80 --vpc-id vpc-0598c7d356EXAMPLE

    其輸出將包含目標群組的 ARN,格式如下:

    arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/1234567890123456
  3. 使用 register-targets 命令向目標群組註冊您的執行個體:

    aws elbv2 register-targets --target-group-arn targetgroup-arn --targets Id=i-1234567890abcdef0 Id=i-0abcdef1234567890
  4. 使用 create-listener 命令為您的負載平衡器建立具有預設規則以轉送請求至目標群組的接聽程式:

    aws elbv2 create-listener --load-balancer-arn loadbalancer-arn --protocol TCP --port 80 \ --default-actions Type=forward,TargetGroupArn=targetgroup-arn

    其輸出將包含接聽程式的 ARN,格式如下:

    arn:aws:elasticloadbalancing:us-east-2:123456789012:listener/net/my-load-balancer/1234567890123456/1234567890123456
  5. (選擇性) 您可以使用下describe-target-health列命令驗證目標群組的已註冊目標的健全狀況:

    aws elbv2 describe-target-health --target-group-arn targetgroup-arn

建立雙堆疊負載平衡器

完成以下步驟,建立您的第一個負載平衡器。

若建立雙堆疊負載平衡器
  1. 使用此命create-load-balancer令建立 dualstack 負載平衡器,為您在其中啟動執行個體的每個可用區域指定公用子網路。每個可用區域只能指定一個子網路。

    aws elbv2 create-load-balancer --name my-load-balancer --type network --subnets subnet-0e3f5cac72EXAMPLE --ip-address-type dualstack

    其輸出將包含負載平衡器的 Amazon Resource Name (ARN),格式如下:

    arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/net/my-load-balancer/1234567890123456
  2. 使用命create-target-group令建立目標群組,並指定用於 EC2 執行個體的相同 VPC。

    您必須採用 TCP 或 TLS 目標群組來搭配使用雙堆疊負載平衡器。

    您可以建立 IPv4 和 IPv6 目標群組,以便與雙堆疊負載平衡器建立關聯。目標群組的 IP 地址類型決定負載平衡器將用於與後端目標通訊並檢查其運作狀態的 IP 版本。

    IPv4 目標群組支援 IP 和執行個體類型目標。IPv6 目標僅支援 IP 目標。

    aws elbv2 create-target-group --name my-targets --protocol TCP --port 80 --vpc-id vpc-0598c7d356EXAMPLE --ip-address-type [ipv4 or ipv6]

    其輸出將包含目標群組的 ARN,格式如下:

    arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/my-targets/1234567890123456
  3. 使用 register-targets 命令向目標群組註冊您的執行個體:

    aws elbv2 register-targets --target-group-arn targetgroup-arn --targets Id=i-1234567890abcdef0 Id=i-0abcdef1234567890
  4. 使用 create-listener 命令為您的負載平衡器建立具有預設規則以轉送請求至目標群組的接聽程式。雙堆疊負載平衡器必須具有 TCP 或 TLS 接聽程式。

    aws elbv2 create-listener --load-balancer-arn loadbalancer-arn --protocol TCP --port 80 \ --default-actions Type=forward,TargetGroupArn=targetgroup-arn

    其輸出將包含接聽程式的 ARN,格式如下:

    arn:aws:elasticloadbalancing:us-east-2:123456789012:listener/net/my-load-balancer/1234567890123456/1234567890123456
  5. (選擇性) 您可以使用下describe-target-health列命令驗證目標群組的已註冊目標的健全狀況:

    aws elbv2 describe-target-health --target-group-arn targetgroup-arn

為負載平衡器指定彈性 IP 地址

當建立 Network Load Balancer 時,您可利用子網路映射,為每個子網路指定單一彈性 IP 地址。

aws elbv2 create-load-balancer --name my-load-balancer --type network \ --subnet-mappings SubnetId=subnet-0e3f5cac72EXAMPLE,AllocationId=eipalloc-12345678

刪除負載平衡器

當您已不再需要負載平衡器和目標群組時,便可將其刪除,如下所示:

aws elbv2 delete-load-balancer --load-balancer-arn loadbalancer-arn aws elbv2 delete-target-group --target-group-arn targetgroup-arn