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

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

Amazon EC2 Auto Scaling 手動擴展

您可以隨時手動調整 Auto Scaling 群組中的 EC2 執行個體數量。此手動變更執行個體計數的程序稱為手動擴展。手動擴展是自動擴展的替代方案,特別是如果您想要進行一次性容量變更時。

手動擴展群組之後,Amazon EC2 Auto Scaling 會根據您定義的擴展政策和排程動作,繼續正常的自動擴展活動。對於已啟用預設執行個體暖機期的群組,任何新執行個體都會經過暖機期,之後才會開始對用於自動擴展的指標做出貢獻。此暖機期有助於在新容量下穩定群組。如需詳細資訊,請參閱設定 Auto Scaling 群組的預設執行個體暖機期

有時,您可能需要暫時停用擴展政策和排程動作,然後再手動擴展群組。這樣做可以防止手動擴展動作和自動擴展活動之間產生衝突。如需詳細資訊,請參閱關閉擴展活動

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

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

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

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

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

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

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

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

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

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

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

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

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

    • 運作狀態欄顯示執行個體上 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 程序