本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 Auto Scaling 群組暫時移除執行個體
您可以讓處於 InService
狀態的執行個體進入 Standby
狀態,更新執行個體或疑難排解執行個體問題,然後讓執行個體恢復到服務狀態。處於待命狀態的執行個體仍然屬於 Auto Scaling 群組,但不會主動處理負載平衡器流量。
此功能可協助您停止和啟動執行個體或重新啟動執行個體,而不必擔心 Amazon EC2 Auto Scaling 會在運作狀態檢查期間或在縮減事件期間終止執行個體。
例如,您可以透過變更啟動範本或啟動組態,隨時變更 Auto Scaling 群組的 Amazon Machine Image (AMI)。Auto Scaling 群組啟動的任何後續執行個體都會使用此 AMI。不過,Auto Scaling 群組不會更新目前正在服務的執行個體。您可以終止這些執行個體,並讓 Amazon EC2 Auto Scaling 取代它們,或使用執行個體重新整理功能來終止和取代執行個體。您也可以讓執行個體進入待命狀態、更新軟體,然後讓執行個體恢復到服務狀態。
從 Auto Scaling 群組中分開執行個體的程序與將執行個體置於待命狀態類似。如果您想要將執行個體連接到不同的群組,或管理獨立執行個體等執行個體,並可能終止它們,分離EC2執行個體可能很有用。如需詳細資訊,請參閱從 Auto Scaling 群組分離或連接執行個體。
待命狀態的運作方式
待命狀態的運作方式如下所示,可協助您暫時從 Auto Scaling 群組移除執行個體:
-
請您將該執行個體設為待命狀態。執行個體會維持此狀態,直到執行個體退出待命狀態。
-
如果有負載平衡器目標群組或 Classic Load Balancer 連接到 Auto Scaling 群組,執行個體會從負載平衡器取消註冊。如果為負載平衡器啟用連接耗盡,Elastic Load Balancing 會依預設等待 300 秒,再完成取消註冊程序,這有助完成執行中的請求。
-
您可以更新執行個體或對其進行故障排除。
-
透過退出待命狀態可使執行個體恢復到服務狀態。
-
如果有負載平衡器目標群組或 Classic Load Balancer 連接到 Auto Scaling 群組,執行個體會向負載平衡器註冊。
如需 Auto Scaling 群組中執行個體生命週期的詳細資訊,請參閱 Amazon EC2 Auto Scaling 執行個體生命週期。
考量事項
下列是將執行個體移入待命狀態時的考量事項:
-
當您將執行個體置於待命狀態時,您可以透過此作業減少所需容量,也可以使其保持相同的值。
-
執行個體恢復到服務狀態後,所需容量會增加,以反映 Auto Scaling 群組中的執行個體數。
-
若要執行增加 (和減少),新的所需容量必須介於最小和最大群組大小之間。否則,操作會失敗。
-
如果在將執行個體置於待命狀態之後的任何時間,或結束待命狀態將執行個體送回服務,則發現 Auto Scaling 群組在可用區域之間未平衡,除非您暫停AZRebalance
程序,否則 Amazon EC2 Auto Scaling 會透過重新平衡可用區域來補償 。如需詳細資訊,請參閱暫停和繼續 Amazon EC2 Auto Scaling 程序。
-
您需支付待命狀態的執行個體費用。
待命狀態中的執行個體運作狀態
Amazon EC2 Auto Scaling 不會對處於待命狀態的執行個體執行運作狀態檢查。當執行個體處於待命狀態時,其顯示的運作狀態為進入待命狀態前的狀態。Amazon EC2 Auto Scaling 不會在執行個體上執行運作狀態檢查,直到您將其恢復服務為止。
例如,如果您將運作狀態良好的執行個體置於待命狀態,然後將其終止,Amazon EC2 Auto Scaling 會繼續將執行個體報告為運作狀態良好。如果您嘗試讓已終止的執行個體恢復服務,Amazon EC2 Auto Scaling 會對執行個體執行運作狀態檢查,判斷其正在終止且運作狀態不佳,並啟動替換執行個體。如需詳細資訊,請參閱Auto Scaling 群組中的執行個體運作狀態檢查。
將執行個體設定為待命,以暫時移除執行個體
使用下列其中一個程序,將執行個體置於待命狀態,以暫時停止服務。
- Console
-
暫時移除執行個體
在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/,然後從導覽窗格中選擇 Auto Scaling 群組。
-
選取 Auto Scaling 群組旁的核取方塊。
頁面底部會開啟一個分割窗格。
-
在 Instance management (執行個體管理) 索引標籤的 Instances (執行個體) 中,選取執行個體。
-
選擇 Actions (動作)、Set to Standby (設定為待命)。
-
在設定為待命對話方塊中,保持選取替代執行個體核取方塊,以啟動替代執行個體。清除此核取方塊以減少所需容量。
-
出現確認提示時,輸入 standby
以確認將指定的執行個體置於 Standby
狀態,然後選擇設定為待命。
-
您可以視需求更新執行個體或排解問題。完成後,接續下一個步驟,讓執行個體恢復到服務狀態。
-
選取執行個體、選擇動作、設定為 InService。在設定為 InService對話方塊中,選擇設定為 InService。
- AWS CLI
-
若要暫時從 Auto Scaling 群組中移除執行個體,請使用下列範例命令。將每個 user input
placeholder
替換成您自己的資訊。
暫時移除執行個體
-
使用以下 describe-auto-scaling-instances 命令,找出需要更新的執行個體。
aws autoscaling describe-auto-scaling-instances \
--query 'AutoScalingInstances[?AutoScalingGroupName==`my-asg
`]'
下列範例顯示執行此命令時產生的輸出。
請記下您要從群組中移除的執行個體 ID。您在下一個步驟中需要此 ID。
{
"AutoScalingInstances": [
{
"ProtectedFromScaleIn": false,
"AvailabilityZone": "us-west-2a",
"LaunchTemplate": {
"LaunchTemplateName": "my-launch-template",
"Version": "1",
"LaunchTemplateId": "lt-050555ad16a3f9c7f"
},
"InstanceId": "i-05b4f7d5be44822a6",
"InstanceId": "t3.micro",
"AutoScalingGroupName": "my-asg",
"HealthStatus": "HEALTHY",
"LifecycleState": "InService"
},
...
]
}
-
使用以下 enter-standby 命令,將執行個體設為 Standby
狀態。--should-decrement-desired-capacity
選項會減少所需容量,讓 Auto Scaling 群組不會啟動替代執行個體。
aws autoscaling enter-standby --instance-ids i-05b4f7d5be44822a6
\
--auto-scaling-group-name my-asg
--should-decrement-desired-capacity
以下是回應範例。
{
"Activities": [
{
"ActivityId": "3b1839fe-24b0-40d9-80ae-bcd883c2be32",
"AutoScalingGroupName": "my-asg",
"Description": "Moving EC2 instance to Standby: i-05b4f7d5be44822a6",
"Cause": "At 2023-12-15T21:31:26Z instance i-05b4f7d5be44822a6 was moved to standby
in response to a user request, shrinking the capacity from 4 to 3.",
"StartTime": "2023-12-15T21:31:26.150Z",
"StatusCode": "InProgress",
"Progress": 50,
"Details": "{\"Subnet ID\":\"subnet-c934b782\",\"Availability Zone\":\"us-west-2a\"}"
}
]
}
-
(選用) 使用以下 Standby
命令驗證 describe-auto-scaling-instances 狀態的執行個體。
aws autoscaling describe-auto-scaling-instances --instance-ids i-05b4f7d5be44822a6
以下是回應範例。請注意,現在執行個體的狀態為 Standby
。
{
"AutoScalingInstances": [
{
"ProtectedFromScaleIn": false,
"AvailabilityZone": "us-west-2a",
"LaunchTemplate": {
"LaunchTemplateName": "my-launch-template",
"Version": "1",
"LaunchTemplateId": "lt-050555ad16a3f9c7f"
},
"InstanceId": "i-05b4f7d5be44822a6",
"InstanceType": "t3.micro",
"AutoScalingGroupName": "my-asg",
"HealthStatus": "HEALTHY",
"LifecycleState": "Standby"
},
...
]
}
-
您可以視需求更新執行個體或排解問題。完成後,接續下一個步驟,讓執行個體恢復到服務狀態。
-
使用以下 exit-standby 命令,讓執行個體回到服務狀態。
aws autoscaling exit-standby --instance-ids i-05b4f7d5be44822a6
--auto-scaling-group-name my-asg
以下是回應範例。
{
"Activities": [
{
"ActivityId": "db12b166-cdcc-4c54-8aac-08c5935f8389",
"AutoScalingGroupName": "my-asg",
"Description": "Moving EC2 instance out of Standby: i-05b4f7d5be44822a6",
"Cause": "At 2023-12-15T21:46:14Z instance i-05b4f7d5be44822a6 was moved out of standby in
response to a user request, increasing the capacity from 3 to 4.",
"StartTime": "2023-12-15T21:46:14.678Z",
"StatusCode": "PreInService",
"Progress": 30,
"Details": "{\"Subnet ID\":\"subnet-c934b782\",\"Availability Zone\":\"us-west-2a\"}"
}
]
}
-
(選用) 使用以下 describe-auto-scaling-instances
命令驗證恢復到服務狀態的執行個體。
aws autoscaling describe-auto-scaling-instances --instance-ids i-05b4f7d5be44822a6
以下是回應範例。請注意,該執行個體的狀態為 InService
。
{
"AutoScalingInstances": [
{
"ProtectedFromScaleIn": false,
"AvailabilityZone": "us-west-2a",
"LaunchTemplate": {
"LaunchTemplateName": "my-launch-template",
"Version": "1",
"LaunchTemplateId": "lt-050555ad16a3f9c7f"
},
"InstanceId": "i-05b4f7d5be44822a6",
"InstanceType": "t3.micro",
"AutoScalingGroupName": "my-asg",
"HealthStatus": "HEALTHY",
"LifecycleState": "InService"
},
...
]
}