開始使用應用程式負載平衡器 AWS CLI - Elastic Load Balancing

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

開始使用應用程式負載平衡器 AWS CLI

本教學課程透過. AWS CLI

開始之前

  • 使用以下命令來確認您執行的 AWS CLI 版本是否支援 Application Load Balancer。

    aws elbv2 help

    如果您收到錯誤訊息,指出 elbv2 不是有效的選擇,請更新 AWS CLI。如需詳細資訊,請參閱《AWS Command Line Interface 使用者指南》中的安裝 AWS Command Line Interface

  • 在虛擬私有雲 (VPC) 中啟動EC2執行個體。確保這些執行個體的安全群組允許在接聽程式連接埠和運作狀態檢查連接埠上進行存取。如需詳細資訊,請參閱目標安全群組

  • 決定是否要建立IPv4或雙重堆疊負載平衡器。IPv4如果您希望用戶端只使用IPv4位址與負載平衡器通訊,請使用此選項。如果您希望用戶端使用IPv4和IPv6位址與負載平衡器進行通訊,請使用 dualstack。您也可以使用 dualstack 與後端目標通訊,例如IPv6應用程式或雙堆疊子網路,使用. IPv6

  • 請務必在每個執行個體上安裝 Web 伺服器,EC2例如 Apache 或網際網路資訊服務 (IIS)。請確定這些執行個體的安全性群組允許在連接埠 80 上HTTP存取。

建立負載平衡器

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

建立負載平衡器
  1. 使用指create-load-balancer令建立負載平衡器。您必須指定並非來自相同可用區域的兩個子網路。

    aws elbv2 create-load-balancer --name my-load-balancer \ --subnets subnet-0e3f5cac72EXAMPLE subnet-081ec835f3EXAMPLE --security-groups sg-07e8ffd50fEXAMPLE

    使用指create-load-balancer令建立dualstack負載平衡器。

    aws elbv2 create-load-balancer --name my-load-balancer \ --subnets subnet-0e3f5cac72EXAMPLE subnet-081ec835f3EXAMPLE --security-groups sg-07e8ffd50fEXAMPLE --ip-address-type dualstack

    輸出包括負載平衡器的 Amazon 資源名稱 (ARN),格式如下:

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

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

    aws elbv2 create-target-group --name my-targets --protocol HTTP --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-0abcdef1234567890 Id=i-1234567890abcdef0
  4. 使用 create-listener 命令為您的負載平衡器建立具有預設規則以轉送請求至目標群組的接聽程式:

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

    輸出包含監聽器ARN的,格式如下:

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

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

新增HTTPS監聽器

如果您的負載平衡器具有HTTP監聽器,則可以按如下方式添加HTTPS偵聽器。

若要將HTTPS監聽器新增至負載平衡器
  1. 使用下列其中一種方法建立SSL憑證以與負載平衡器搭配使用:

  2. 使用 create-listener 命令來建立具有預設規則以將請求轉送至目標群組的接聽程式。您必須在建立HTTPS監聽器時指定SSL憑證。請注意,您可以使用--ssl-policy選項指定預設SSL策略以外的策略。

    aws elbv2 create-listener --load-balancer-arn loadbalancer-arn \ --protocol HTTPS --port 443 \ --certificates CertificateArn=certificate-arn \ --default-actions Type=forward,TargetGroupArn=targetgroup-arn

新增以路徑為基礎的路由

如果您的監聽器具有將要求轉送至某個目標群組的預設規則,您可以新增將要求轉送至其他目標群組的規則。URL例如,您可以將一般請求路由到一個目標群組和請求,以向其他目標群組顯示影像。

將規則新增至具有路徑模式的接聽程式
  1. 使用create-target-group指令建立目標群組:

    aws elbv2 create-target-group --name my-targets --protocol HTTP --port 80 \ --vpc-id vpc-0598c7d356EXAMPLE
  2. 使用 register-targets 命令向目標群組註冊您的執行個體:

    aws elbv2 register-targets --target-group-arn targetgroup-arn \ --targets Id=i-0abcdef1234567890 Id=i-1234567890abcdef0
  3. 使用 create-rule 命令將規則新增至您的監聽器,以便將要求轉送至目標群組 (如果URL包含指定的模式):

    aws elbv2 create-rule --listener-arn listener-arn --priority 10 \ --conditions Field=path-pattern,Values='/img/*' \ --actions Type=forward,TargetGroupArn=targetgroup-arn

刪除負載平衡器

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

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