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

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

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

本教學課程提供透過 AWS CLI 演練 Application Load Balancer 的實作簡介。

開始之前

  • 使用以下命令來確認您執行的 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 地址來與負載平衡器通訊,請選擇雙堆疊。也可以選擇雙堆疊使用 IPv6 與後端目標 (例如 IPv6 應用程式或雙堆疊子網路) 進行通訊。

建立負載平衡器

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

建立負載平衡器
  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 Resource Name (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 憑證以與您的負載平衡器搭配使用:

    • 使用 AWS Certificate Manager (ACM) 來建立或匯入憑證。如需詳細資訊,請參閱《AWS Certificate Manager 使用者指南》中的請求憑證匯入憑證

    • 使用 AWS Identity and Access Management (IAM) 上傳憑證。如需詳細資訊,請參閱 IAM 使用者指南中的使用伺服器憑證

  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