本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Elastic Load Balancing 的範例 AWS CLI
使用 AWS Command Line Interface (AWS CLI) 來連接、卸離和描述負載平衡器和目標群組、新增和移除 Elastic Load Balancing 健全狀況檢查,以及變更啟用的可用區域。
本主題顯示執行 Amazon EC2 Auto Scaling 常見任務的 AWS CLI 命令範例。
目錄
連接您的目標群組或 Classic Load Balancer
使用下列create-auto-scaling-group命令建立 Auto Scaling 群組,並透過指定目標群組的 Amazon 資源名稱 (ARN) 來同時連接目標群組。目標群組可與 Application Load Balancer、Network Load Balancer 或 Gateway Load Balancer 關聯。
取代 --auto-scaling-group-name
、--vpc-zone-identifier
、--min-size
和 --max-size
的範例值。對於 --launch-template
選項,請使用 Auto Scaling 群組的啟動範本名稱和版本取代
和 my-launch-template
。對於此選1
--traffic-sources
項,請將範例ARN取代為應用程式 Load Balancer、Network Load Balancer 或閘道負載平衡器的目標群組。ARN
aws autoscaling create-auto-scaling-group --auto-scaling-group-name
my-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-name
my-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-name
my-asg
此範例會傳回您附加至「Auto Scaling 例」群組的「Elastic Load Balancing」目標群組。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
輸出中欄位的說明,請參閱 確認負載平衡器的連接狀態。
新增 Elastic Load Balancing 運作狀態檢查
若要將 Elastic Load Balancing 健康狀態檢查新增至 Auto Scaling 群組在執行個體上執行的健全狀況檢查,請使用下列update-auto-scaling-group命令並指定
為ELB
--health-check-type
選項的值。用您的群組名稱取代
。my-asg
aws autoscaling update-auto-scaling-group --auto-scaling-group-name
my-asg
\ --health-check-type "ELB"
新執行個體通常需要時間進行簡短的預熱,才能通過健康狀態檢查。如果寬限期未提供足夠的暖機時間,則執行個體可能看起來不準備好為流量提供服務。Amazon EC2 Auto Scaling 可能會將這些執行個體視為運作狀態不佳,並將
若要更新運作狀態檢查寬限期,請在使用 update-auto-scaling-group 時選用 --health-check-grace-period
選項,如下列範例中所示。Replace (取代) 300
如果發現新執行個體運作狀態不佳,則在終止新執行個體之前保留服務的秒數。
--health-check-grace-period
300
如需詳細資訊,請參閱Auto Scaling 群組中的執行個體運作狀態檢查。
變更您的可用區域
變更您的可用區域時,您應留意一些限制。如需詳細資訊,請參閱新增可用區域。
變更 Application Load Balancer 或 Network Load Balancer 的可用區域
-
在您變更負載平衡器的可用區域之前,最好先更新 Auto Scaling 群組的可用區域,以確認指定區域中的執行個體類型是否可用。
若要更新 Auto Scaling 群組的可用區域,請使用下列update-auto-scaling-group命令。將範例子網路IDs取代為要啟用IDs的可用區域中的子網路。指定的子網路會取代先前啟用的子網路。用您的群組名稱取代
。my-asg
aws autoscaling update-auto-scaling-group --auto-scaling-group-name
my-asg
\ --vpc-zone-identifier "subnet-41767929,subnet-cb663da2,subnet-8360a9e7
" -
使用下列describe-auto-scaling-groups命令來確認新子網路中的執行個體是否已啟動。如果執行個體已啟動,則您會看到執行個體及其狀態的清單。用您的群組名稱取代
。my-asg
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name
my-asg
-
使用下列 set-subnets 命令來指定負載平衡器的子網路。將範例子網路IDs取代為要啟用IDs的可用區域中的子網路。每個可用區域只能指定一個子網路。指定的子網路會取代先前啟用的子網路。
以您ARN的負載平衡器取代。my-lb-arn
aws elbv2 set-subnets --load-balancer-arn
my-lb-arn
\ --subnetssubnet-41767929
subnet-cb663da2
subnet-8360a9e7
變更 Classic Load Balancer 的可用區域
-
在您變更負載平衡器的可用區域之前,最好先更新 Auto Scaling 群組的可用區域,以確認指定區域中的執行個體類型是否可用。
若要更新 Auto Scaling 群組的可用區域,請使用下列update-auto-scaling-group命令。將範例子網路IDs取代為要啟用IDs的可用區域中的子網路。指定的子網路會取代先前啟用的子網路。用您的群組名稱取代
。my-asg
aws autoscaling update-auto-scaling-group --auto-scaling-group-name
my-asg
\ --vpc-zone-identifier "subnet-41767929,subnet-cb663da2
" -
使用下列describe-auto-scaling-groups命令來確認新子網路中的執行個體是否已啟動。如果執行個體已啟動,則您會看到執行個體及其狀態的清單。用您的群組名稱取代
。my-asg
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name
my-asg
-
使用下列 attach-load-balancer-to-subnets 命令,為 Classic Load Balancer 啟用新的可用區域。使用要啟用的可用區域中的子網路 ID 取代範例子網路 ID。使用負載平衡器的名稱取代
。my-lb
aws elb attach-load-balancer-to-subnets --load-balancer-name
my-lb
\ --subnetssubnet-cb663da2
若要停用可用區域,請使用下列 detach-load-balancer-from-subnets 命令。使用要停用的可用區域中的子網路 ID 取代範例子網路 ID。使用負載平衡器的名稱取代
。my-lb
aws elb detach-load-balancer-from-subnets --load-balancer-name
my-lb
\ --subnetssubnet-8360a9e7
分離您的目標群組或 Classic Load Balancer
當您不再需要時,下列detach-traffic-sources指令會將目標群組從「Auto Scaling」群組中分離出來。
對於 --auto-scaling-group-name
選項,請用您的群組名稱取代
。對於此選my-asg
--traffic-sources
項,請將範例ARN取代為應用程式 Load Balancer、Network Load Balancer 或閘道負載平衡器的目標群組。ARN
aws autoscaling detach-traffic-sources --auto-scaling-group-name
my-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
移除 Elastic Load Balancing 運作狀態檢查
若要從 Auto Scaling 群組移除 Elastic Load Balancing 健全狀況檢查,請使用下列update-auto-scaling-group命令並指定
為EC2
--health-check-type
選項的值。用您的群組名稱取代
。my-asg
aws autoscaling update-auto-scaling-group --auto-scaling-group-name
my-asg
\ --health-check-type "EC2"
如需詳細資訊,請參閱Auto Scaling 群組中的執行個體運作狀態檢查。
舊版命令
下列範例顯示如何使用舊版CLI命令來連接、卸離和描述負載平衡器和目標群組。它們仍保留在本文件中,供任何想要使用的客戶做參考。我們會繼續支援舊版CLI指令,但建議您使用新的「流量來源」CLI 指令,這些命令可以附加和中斷多個流量來源類型。您可以在同一個 Auto Scaling 群組上同時使用舊版CLICLI指令和「流量來源」指令。
連接目標群組
下列create-auto-scaling-group指令會建立具有連結目標群組的「Auto Scaling」群組。為應用程式 Load Balancer、Network Load Balancer 或閘道負載平衡器指定目標群組的 Amazon 資源名稱 (ARN)。
aws autoscaling create-auto-scaling-group --auto-scaling-group-name
my-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 指令會將目標群組附加至現有的「Auto Scaling」群組。
aws autoscaling attach-load-balancer-target-groups --auto-scaling-group-name
my-asg
\ --target-group-arns "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456
"
連接 Classic Load Balancer
下列create-auto-scaling-group命令會建立具有連接 Classic Load Balancer 的「Auto Scaling」群組。
aws autoscaling create-auto-scaling-group --auto-scaling-group-name
my-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命令會將指定的 Classic Load Balancer 附加至現有的「Auto Scaling」群組。
aws autoscaling attach-load-balancers --auto-scaling-group-name
my-asg
\ --load-balancer-namesmy-lb
描述目標群組
若要描述與「Auto Scaling」群組相關聯的目標群組,請使用 describe-load-balancer-target-groups 指令。下列範例列出的目標群組 my-asg
.
aws autoscaling describe-load-balancer-target-groups --auto-scaling-group-name
my-asg
描述 Classic Load Balancer
若要描述與 Auto Scaling 群組相關聯的傳統負載平衡器,請使用命describe-load-balancers令。下列範例列出的傳統負載平衡器 my-asg
.
aws autoscaling describe-load-balancers --auto-scaling-group-name
my-asg
分離目標群組
當您不再需要時,以下 detach-load-balancer-target-groups 指令會將目標群組從「Auto Scaling」群組中分離出來。
aws autoscaling detach-load-balancer-target-groups --auto-scaling-group-name
my-asg
\ --target-group-arns "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456
"
分離 Classic Load Balancer
下列detach-load-balancers命令會在您不再需要 Classic Load Balancer 時,將傳統負載平衡器從 Auto Scaling 群組中分離出來。
aws autoscaling detach-load-balancers --auto-scaling-group-name
my-asg
\ --load-balancer-namesmy-lb