本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 使用 ELB 的範例 AWS CLI
使用 AWS Command Line Interface (AWS CLI) 來連接、分離和描述負載平衡器和目標群組、新增和移除 ELB 運作狀態檢查,以及變更已啟用的可用區域。
本主題顯示執行 Amazon EC2 Auto Scaling 常見任務的 AWS CLI 命令範例。
目錄
連接您的目標群組或 Classic Load Balancer
使用下列 create-auto-scaling-group
取代 --auto-scaling-group-name、--vpc-zone-identifier、--min-size 和 --max-size 的範例值。對於 --launch-template 選項,請使用 Auto Scaling 群組的啟動範本名稱和版本取代 和 my-launch-template。對於 1--traffic-sources 選項,請用 Application Load Balancer、Network Load Balancer 或 Gateway Load Balancer 目標群組的 ARN 取代範例 ARN。
aws autoscaling create-auto-scaling-group --auto-scaling-group-namemy-asg\ --launch-template LaunchTemplateName=my-launch-template,Version='1' \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --min-size1--max-size5\ --traffic-sources "Identifier=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE1"
建立 Auto Scaling 群組後,使用 attach-traffic-sources
下列命令可將另一個目標群組新增至同一群組。
aws autoscaling attach-traffic-sources --auto-scaling-group-namemy-asg\ --traffic-sources "Identifier=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE2"
或者,若要將 Classic Load Balancer 連接至您的群組,請在使用 create-auto-scaling-group 或 attach-traffic-sources 時指定 --traffic-sources 和 --type 選項,如下列範例中所示。將 取代為 Classic Load Balancer 的名稱。對於 my-classic-load-balancer--type 選項,請指定值為 。elb
--traffic-sources "Identifier=my-classic-load-balancer" --type elb
描述您的目標群組或 Classic Load Balancer
若要描述連結至 Auto Scaling 群組的負載平衡器或目標群組,請使用下列 describe-traffic-sources。my-asg
aws autoscaling describe-traffic-sources --auto-scaling-group-namemy-asg
此範例會傳回您連接至 Auto Scaling 群組之 ELB 目標群組的 ARN。
{
"TrafficSources": [
{
"Identifier": "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE1",
"State": "InService",
"Type": "elbv2"
},
{
"Identifier": "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE2",
"State": "InService",
"Type": "elbv2"
}
]
}
如需 State 輸出中欄位的說明,請參閱 確認負載平衡器的連接狀態。
新增 ELB 運作狀態檢查
若要將 ELB 運作狀態檢查新增至 Auto Scaling 群組在執行個體上執行的運作狀態檢查,請使用下列 update-auto-scaling-group為 ELB--health-check-type選項的值。用您的群組名稱取代 。my-asg
aws autoscaling update-auto-scaling-group --auto-scaling-group-namemy-asg\ --health-check-type "ELB"
新執行個體通常需要時間進行短暫暖機,才能通過運作狀態檢查。如果寬限期未提供足夠的暖機時間,則執行個體可能無法準備好提供流量。Amazon EC2 Auto Scaling 可能會認為這些執行個體運作狀態不佳並加以替換。
若要更新運作狀態檢查寬限期,請在使用 update-auto-scaling-group 時選用 --health-check-grace-period 選項,如下列範例中所示。如果發現新執行個體的運作狀態不佳,請將 300 取代為將新執行個體終止之前保持其服務狀態的秒數。
--health-check-grace-period300
如需詳細資訊,請參閱Auto Scaling 群組中的執行個體運作狀態檢查。
變更您的可用區域
變更您的可用區域時,您應留意一些限制。如需詳細資訊,請參閱新增可用區域。
變更 Application Load Balancer 或 Network Load Balancer 的可用區域
-
在您變更負載平衡器的可用區域之前,最好先更新 Auto Scaling 群組的可用區域,以確認指定區域中的執行個體類型是否可用。
若要更新 Auto Scaling 群組的可用區域,請使用下列 update-auto-scaling-group
命令。使用要啟用的可用區域中的子網路 ID 取代範例子網路 ID。指定的子網路會取代先前啟用的子網路。用您的群組名稱取代 。my-asgaws autoscaling update-auto-scaling-group --auto-scaling-group-namemy-asg\ --vpc-zone-identifier "subnet-41767929,subnet-cb663da2,subnet-8360a9e7" -
請使用以下 describe-auto-scaling-groups
命令以驗證新子網路中的執行個體已啟動。如果執行個體已啟動,則您會看到執行個體及其狀態的清單。用您的群組名稱取代 。my-asgaws autoscaling describe-auto-scaling-groups --auto-scaling-group-namemy-asg -
使用下列 set-subnets
命令來指定負載平衡器的子網路。使用要啟用的可用區域中的子網路 ID 取代範例子網路 ID。每個可用區域只能指定一個子網路。指定的子網路會取代先前啟用的子網路。使用負載平衡器的 ARN 取代 。my-lb-arnaws elbv2 set-subnets --load-balancer-arnmy-lb-arn\ --subnetssubnet-41767929subnet-cb663da2subnet-8360a9e7
變更 Classic Load Balancer 的可用區域
-
在您變更負載平衡器的可用區域之前,最好先更新 Auto Scaling 群組的可用區域,以確認指定區域中的執行個體類型是否可用。
若要更新 Auto Scaling 群組的可用區域,請使用下列 update-auto-scaling-group
命令。使用要啟用的可用區域中的子網路 ID 取代範例子網路 ID。指定的子網路會取代先前啟用的子網路。用您的群組名稱取代 。my-asgaws autoscaling update-auto-scaling-group --auto-scaling-group-namemy-asg\ --vpc-zone-identifier "subnet-41767929,subnet-cb663da2" -
請使用以下 describe-auto-scaling-groups
命令以驗證新子網路中的執行個體已啟動。如果執行個體已啟動,則您會看到執行個體及其狀態的清單。用您的群組名稱取代 。my-asgaws autoscaling describe-auto-scaling-groups --auto-scaling-group-namemy-asg -
使用以下 attach-load-balancer-to-subnets
命令來啟用 Classic Load Balancer 的新可用區域。使用要啟用的可用區域中的子網路 ID 取代範例子網路 ID。使用負載平衡器的名稱取代 。my-lbaws elb attach-load-balancer-to-subnets --load-balancer-namemy-lb\ --subnetssubnet-cb663da2若要停用可用區域,請執行下列 detach-load-balancer-from-subnets
命令。使用要停用的可用區域中的子網路 ID 取代範例子網路 ID。使用負載平衡器的名稱取代 。my-lbaws elb detach-load-balancer-from-subnets --load-balancer-namemy-lb\ --subnetssubnet-8360a9e7
分離您的目標群組或 Classic Load Balancer
如果不再需要目標群組,請使用以下 detach-load-balancer-target-groups
對於 --auto-scaling-group-name 選項,請用您的群組名稱取代 。對於 my-asg--traffic-sources 選項,請用 Application Load Balancer、Network Load Balancer 或 Gateway Load Balancer 目標群組的 ARN 取代範例 ARN。
aws autoscaling detach-traffic-sources --auto-scaling-group-namemy-asg\ --traffic-sources "Identifier=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456"
若要從群組中分離 Classic Load Balancer,請指定 --traffic-sources 和 --type 選項,如下列範例所示。將 取代為 Classic Load Balancer 的名稱。對於 my-classic-load-balancer--type 選項,請指定值為 。elb
--traffic-sources "Identifier=my-classic-load-balancer" --type elb
移除 ELB 運作狀態檢查
若要從 Auto Scaling 群組中移除 ELB 運作狀態檢查,請使用下列 update-auto-scaling-group為 EC2--health-check-type選項的值。用您的群組名稱取代 。my-asg
aws autoscaling update-auto-scaling-group --auto-scaling-group-namemy-asg\ --health-check-type "EC2"
如需詳細資訊,請參閱Auto Scaling 群組中的執行個體運作狀態檢查。
舊版命令
下列範例顯示如何使用舊版 CLI 命令連接、分離以及描述負載平衡器和目標群組。它們仍保留在本文件中,供任何想要使用的客戶做參考。我們會繼續支援舊版 CLI 命令,但建議您使用新的「流量來源」CLI 命令,該命令可以連接和分離多种流量來源類型。您可以在同一個 Auto Scaling 群組上同時使用舊版 CLI 命令和「流量來源」CLI 命令。
連接目標群組
使用以下 create-auto-scaling-group
aws autoscaling create-auto-scaling-group --auto-scaling-group-namemy-asg\ --launch-template LaunchTemplateName=my-launch-template,Version='1' \ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --target-group-arns "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456" \ --min-size1--max-size5
下列 attach-load-balancer-target-groups
aws autoscaling attach-load-balancer-target-groups --auto-scaling-group-namemy-asg\ --target-group-arns "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456"
連接 Classic Load Balancer
使用以下 create-auto-scaling-group
aws autoscaling create-auto-scaling-group --auto-scaling-group-namemy-asg\ --launch-configuration-namemy-launch-config\ --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \ --load-balancer-names "my-load-balancer" \ --min-size1--max-size5
以下 attach-load-balancers
aws autoscaling attach-load-balancers --auto-scaling-group-namemy-asg\ --load-balancer-namesmy-lb
描述目標群組
若要描述與 Auto Scaling 群組相關聯的目標群組,請使用 describe-load-balancer-target-groupsmy-asg 的目標群組。
aws autoscaling describe-load-balancer-target-groups --auto-scaling-group-namemy-asg
描述 Classic Load Balancer
若要描述與 Auto Scaling 群組相關聯的 Classic Load Balancer,請使用 describe-load-balancersmy-asg 的 Classic Load Balancer。
aws autoscaling describe-load-balancers --auto-scaling-group-namemy-asg
分離目標群組
如果不再需要目標群組,請使用以下 detach-load-balancer-target-groups
aws autoscaling detach-load-balancer-target-groups --auto-scaling-group-namemy-asg\ --target-group-arns "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456"
分離 Classic Load Balancer
如果不再需要 Classic Load Balancer,則可使用以下 detach-load-balancers
aws autoscaling detach-load-balancers --auto-scaling-group-namemy-asg\ --load-balancer-namesmy-lb