Amazon EC2 自動擴展的手動擴展 - Amazon EC2 Auto Scaling

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

Amazon EC2 自動擴展的手動擴展

您可以隨時手動調整 Auto Scaling 群組中的EC2執行個體數量。手動變更執行個體計數的程序稱為手動調整比例。手動調整規模是 auto 調整規模的替代方案,尤其是當您想要進行一次性容量變更時。

手動擴展群組之後,Amazon EC2 Auto Scaling 會根據您定義的擴展政策和排程動作恢復正常的自動擴展活動。對於啟用預設執行個體暖機的群組,任何新執行個體都會經過預熱期間,然後才開始貢獻 auto 調整規模的指標。這個熱身期有助於以新的能力穩定組。如需詳細資訊,請參閱設定 Auto Scaling 群組的預設執行個體暖機期

有時候,您可能會想要在手動調整群組資源縮放之前暫時停用資源調整政策和排程動作。這樣做可防止手動縮放動作與自動調整資源調整活動之間產生衝突。如需詳細資訊,請參閱關閉縮放活動

更改現有 Auto Scaling 群組的所需容量

當您變更 Auto Scaling 群組的所需容量時,Amazon EC2 Auto Scaling 會管理啟動和終止執行個體的程序,以達到新的所需大小。

Console
變更 Auto Scaling 群組的大小
  1. 在開啟 Amazon EC2 主控台 https://console.aws.amazon.com/ec2/,然後從導覽窗格中選擇 Auto Scaling 群組

  2. 選取 Auto Scaling 群組旁的核取方塊。

    分割窗格會顯示在頁面底部。

  3. Details (詳細資訊) 索引標籤上,選擇 Group details (群組詳細資訊)、Edit (編輯)。

  4. 對於所需容量,增加或減少所需的容量。例如,若要將群組的大小增加 1,如果目前值為1,請輸入2

    如果所需容量的新值大於所需容量下限所需容量上限,則所需容量上限會自動增加到新的所需容量值。

  5. 完成後,選擇 Update (更新)。

確認您指定的群組大小是否會啟動相同數量的執行個體。例如,如果您將群組的大小增加一個,請確認 Auto Scaling 群組已啟動一個額外的執行個體。

驗證 Auto Scaling 群組大小已變更
  1. 在「活動」標籤的「活動記錄」中,您可以檢視與「自動調整比例」群組相關聯的活動進度。Status (狀態) 欄顯示執行個體的目前狀態。在執行個體啟動的同時,狀態欄顯示 Not yet in service。在執行個體啟動後,狀態會變更成 Successful。您也可以使用重新整理圖示來查看執行個體目前的狀態。如需詳細資訊,請參閱驗證 Auto Scaling 群組的擴展活動

  2. 在 [執行個體管理] 索引標籤的 [執行個體] 中,您可以檢視執行個體的狀態。啟動執行個體無須費時。

    • Lifecycle (生命週期) 欄顯示執行個體的狀態。初始時,您的執行個體為 Pending 狀態。在執行個體準備好接受流量之後,它的狀態會變成 InService

    • 運作 Health 態欄會顯示執行個體上 Amazon EC2 Auto Scaling 運作狀態檢查的結果。

AWS CLI

以下範例假設您已建立 Auto Scaling 群組,其大小上限為 5,下限為 1。所以,群組目前有一個執行中的執行個體。

變更 Auto Scaling 群組的大小

使用指set-desired-capacity令變更「Auto Scaling」群組的大小,如下列範例所示。

aws autoscaling set-desired-capacity --auto-scaling-group-name my-asg \ --desired-capacity 2

如果選擇遵守 Auto Scaling 群組的預設冷卻時間,您必須如以下範例所示指定 –-honor-cooldown 選項。如需詳細資訊,請參閱擴展 Amazon EC2 Auto Scaling 的冷卻時間

aws autoscaling set-desired-capacity --auto-scaling-group-name my-asg \ --desired-capacity 2 --honor-cooldown
驗證 Auto Scaling 群組大小

使用指describe-auto-scaling-groups令確認「Auto Scaling」群組的大小已變更,如下列範例所示。

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

以下是範例輸出,提供有關啟動之群組和執行個體的詳細資訊。

{ "AutoScalingGroups": [ { "AutoScalingGroupName": "my-asg", "AutoScalingGroupARN": "arn", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 2, "DefaultCooldown": 300, "AvailabilityZones": [ "us-west-2a" ], "LoadBalancerNames": [], "TargetGroupARNs": [], "HealthCheckType": "EC2", "HealthCheckGracePeriod": 300, "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceType": "t3.micro", "HealthStatus": "Healthy", "LifecycleState": "Pending" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "InstanceType": "t3.micro", "HealthStatus": "Healthy", "LifecycleState": "InService" } ], "CreatedTime": "2019-03-18T23:30:42.611Z", "SuspendedProcesses": [], "VPCZoneIdentifier": "subnet-c87f2be0", "EnabledMetrics": [], "Tags": [], "TerminationPolicies": [ "Default" ], "NewInstancesProtectedFromScaleIn": false, "ServiceLinkedRoleARN": "arn", "TrafficSources": [] } ] }

請注意,DesiredCapacity 顯示新的數值。您的 Auto Scaling 群組已啟動一個額外的執行個體。

終止 Auto Scaling 群組中的執行個體 (AWS CLI)

有時您可能想要在 Auto Scaling 群組中手動縮減,但又想要終止特定的執行個體。您可以使用 terminate-instance-in-auto-scaling-group 命令,並指定要終止的執行個體 ID 和--should-decrement-desired-capacity選項,如下列範例所示,在 Auto Scaling 群組中手動縮放。

aws autoscaling terminate-instance-in-auto-scaling-group \ --instance-id i-026e4c9f62c3e448c --should-decrement-desired-capacity

以下是範例輸出,提供有關縮放活動的詳細資訊。

{ "Activities": [ { "ActivityId": "b8d62b03-10d8-9df4-7377-e464ab6bd0cb", "AutoScalingGroupName": "my-asg", "Description": "Terminating EC2 instance: i-026e4c9f62c3e448c", "Cause": "At 2023-09-23T06:39:59Z instance i-026e4c9f62c3e448c was taken out of service in response to a user request, shrinking the capacity from 1 to 0.", "StartTime": "2023-09-23T06:39:59.015000+00:00", "StatusCode": "InProgress", "Progress": 0, "Details": "{\"Subnet ID\":\"subnet-6194ea3b\",\"Availability Zone\":\"us-west-2c\"}" } ] }

此選項在主控台中無法使用。不過,您可以使用 Amazon EC2 主控台的「執行個體」頁面終止 Auto Scaling 群組中的執行個體。當您這麼做時,Amazon EC2 Auto Scaling 會偵測到執行個體不再執行,並在運作狀態檢查程序中自動取代該執行個體。在您終止執行個體之後,需要一兩分鐘的時間,才能啟動新的執行個體。有關如何終止執行個體的詳細資訊,請參閱 Amazon EC2 使用者指南中的終止執行個體

如果您終止群組中的執行個體並導致跨可用區域分配不均勻,Amazon EC2 Auto Scaling 會重新平衡群組,以重新建立均勻分佈,除非您暫停該AZRebalance程序。如需詳細資訊,請參閱暫停和恢復 Amazon EC2 Auto Scaling 程序