

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

# Amazon EC2 Auto Scaling 手動擴展
<a name="ec2-auto-scaling-scaling-manually"></a>

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

手動擴展群組之後，Amazon EC2 Auto Scaling 會根據您定義的擴展政策和排程動作，繼續正常的自動擴展活動。對於已啟用預設執行個體暖機期的群組，任何新執行個體都會經過暖機期，然後才會開始影響用於自動擴展的指標。此暖機期有助於以新容量穩定群組。如需詳細資訊，請參閱[設定 Auto Scaling 群組的預設執行個體暖機期](ec2-auto-scaling-default-instance-warmup.md)。

有時，您可能需要暫時停用擴展政策和排程動作，然後再手動擴展群組。這樣做可以防止手動擴展動作和自動擴展活動之間產生衝突。如需詳細資訊，請參閱[關閉擴展活動](CHAP_Troubleshooting.md#turn-off-scaling-activities)。

**Topics**
+ [更改現有 Auto Scaling 群組的所需容量](#change-desired-capacity)
+ [終止 Auto Scaling 群組中的執行個體 (AWS CLI)](#terminate-an-instance-aws-cli)

## 更改現有 Auto Scaling 群組的所需容量
<a name="change-desired-capacity"></a>

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

------
#### [ Console ]

**變更 Auto Scaling 群組的大小**

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

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

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

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

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

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

1. 完成後，選擇 **Update** (更新)。

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

**驗證 Auto Scaling 群組大小已變更**

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

1. 在**執行個體管理**索引標籤的**執行個體**中，您可以檢視執行個體的狀態。啟動執行個體無須費時。
   + **Lifecycle (生命週期)** 欄顯示執行個體的狀態。初始時，您的執行個體為 `Pending` 狀態。在執行個體準備好接受流量之後，它的狀態會變成 `InService`。
   + **運作狀態**欄顯示執行個體上 Amazon EC2 Auto Scaling 運作狀態檢查的結果。

------
#### [ AWS CLI ]

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

**變更 Auto Scaling 群組的大小**  
使用 [set-desired-capacity](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/set-desired-capacity.html) 命令變更 Auto Scaling 群組的大小，如以下範例所示。

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

如果選擇遵守 Auto Scaling 群組的預設冷卻時間，您必須如以下範例所示指定 `–-honor-cooldown` 選項。如需詳細資訊，請參閱[擴展 Amazon EC2 Auto Scaling 冷卻時間](ec2-auto-scaling-scaling-cooldowns.md)。

```
aws autoscaling set-desired-capacity --auto-scaling-group-name {{my-asg}} \
  --desired-capacity 2 --honor-cooldown
```

**驗證 Auto Scaling 群組大小**  
使用 [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html) 命令確認 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)
<a name="terminate-an-instance-aws-cli"></a>

有時您可能想要在 Auto Scaling 群組中手動縮減，但又想要終止特定的執行個體。您可以透過使用 [terminate-instance-in-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/terminate-instance-in-auto-scaling-group.html) 命令，並指定要終止的執行個體的 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 使用者指南*》中的[終止執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html)。

如果您終止 群組中的執行個體，導致跨可用區域分佈不均，Amazon EC2 Auto Scaling 會重新平衡群組以重新建立均勻分佈，除非您暫停`AZRebalance`程序。如需詳細資訊，請參閱[暫停和繼續 Amazon EC2 Auto Scaling 程序](as-suspend-resume-processes.md)。