

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

# Elastic Beanstalk 環境的容量組態
<a name="environments-cfg-autoscaling-configuration-approaches"></a>

本主題說明為 Elastic Beanstalk 環境設定 Auto Scaling 容量的不同方法。您可以使用 Elastic Beanstalk 主控台、EB CLI AWS CLI、 或 命名空間選項。

**重要**  
`EnableSpot` 選項設定可能會導致 Elastic Beanstalk 遷移具有啟動組態的現有環境以啟動範本。這樣做需要必要的許可才能管理啟動範本。這些許可包含在我們的 受管政策中。如果您使用自訂政策，而不是我們的受管政策，當您更新環境組態時，環境建立或更新可能會失敗。如需詳細資訊和其他考量事項，請參閱 [遷移 Elastic Beanstalk 環境以啟動範本](environments-cfg-autoscaling-launch-templates.md)。

## 使用主控台執行組態
<a name="environments-cfg-autoscaling-console"></a>

您可以在 [Elastic Beanstalk 主控台](environments-console.md)的環境**組態**頁面上編輯容量，以設定 Auto Scaling 群組的**容量**管理。

**在 Elastic Beanstalk 主控台中設定 Auto Scaling 群組容量**

1. 開啟 [Elastic Beanstalk 主控台](https://console.aws.amazon.com/elasticbeanstalk)，然後在**區域**清單中選取您的 AWS 區域。

1. 在導覽窗格中，選擇**環境**，然後在清單中選擇您環境的名稱。

1. 在導覽窗格中，選擇 **Configuration** (組態)。

1. 在 **Capacity (容量)** 組態類別中，選擇 **Edit (編輯)**。

1. 在 **Auto Scaling group (Auto Scaling 群組)** 區段，設定下列設定。
   + **Environment type (環境類型)** ‒ 選取 **Load balanced (負載平衡)**。
   + **Min instances (最少執行個體)** ‒ 該群組應隨時包含的 EC2 執行個體數量下限。群組以計數下限開始，當滿足擴展觸發條件時，將新增執行個體。
   + **Max instances (最大執行個體)** ‒ 該群組應隨時包含的 EC2 執行個體數量上限。
**注意**  
若您採用滾動更新，請確保執行個體計數上限高於滾動更新的 [**Minimum instances in service** (服務中執行個體數量下限) 設定](using-features.rollingupdates.md#rollingupdates-configure)。
   + **機群組成** – 預設為**隨需執行個體**。選取 **Combined purchase options and instances** (組合的購買選項和執行個體) 以啟用 *Spot Instance* (Spot 執行個體) 請求。
**重要**  
`EnableSpot` 選項設定可能會導致 Elastic Beanstalk 遷移具有啟動組態的現有環境以啟動範本。這樣做需要必要的許可才能管理啟動範本。這些許可包含在我們的 受管政策中。如果您使用自訂政策，而不是我們的受管政策，當您更新環境組態時，環境建立或更新可能會失敗。如需詳細資訊和其他考量事項，請參閱 [遷移 Elastic Beanstalk 環境以啟動範本](environments-cfg-autoscaling-launch-templates.md)。

     如果您選取啟用 *Spot 執行個體* (Spot 執行個體) 請求，便會啟用下列選項：
     + **Spot 配置策略** – 根據可用容量、價格和執行個體類型的選擇，決定用於管理和佈建環境中 Spot 執行個體的方法。從*容量最佳化* （預設）、*價格容量最佳化*、*容量最佳化優先順序*或*最低價格*中選取。如需每個配置策略的描述和詳細資訊，請參閱 [Spot 執行個體配置策略](environments-cfg-autoscaling-spot-allocation-strategy.md)。
     + **最高 Spot 價格** – 如需有關 Spot 執行個體最高價格選項的建議，請參閱《*Amazon EC2 使用者指南*》中的 [Spot 執行個體定價歷史記錄](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances-history.html)。
     + **On-Demand base** (隨需執行個體基本數量) – 隨著環境擴展，在考慮使用 Spot 執行個體前，Auto Scaling 群組要佈建的最小隨需執行個體數量。
     + **On-Demand above base** (超過基本數量的隨需執行個體) – 隨需執行個體百分比 (Auto Scaling 群組超出隨需執行個體基本數量所怖建的一部分額外容量)。
**注意**  
**On-Demand base** (隨需執行個體基本數量) 和 **On-Demand above base** (超過基本數量的隨需執行個體) 選項與前面列出的*執行個體* **Min** (下限) 和 **Max** (上限) 選項關聯。如需有關這些選項和範例的詳細資訊，請參閱 [支援 Elastic Beanstalk 環境的 Spot 執行個體](environments-cfg-autoscaling-spot.md)。
     + **容量重新平衡** – 此選項只有在 Auto Scaling 群組中至少有一個 Spot 執行個體時才相關。啟用此功能時，EC2 會在中斷之前自動嘗試取代 Auto Scaling 群組中的 Spot 執行個體，將對應用程式的 Spot 執行個體中斷降至最低。如需詳細資訊，請參閱《*Amazon EC2 Auto Scaling 使用者指南*》中的[容量重新平衡](https://docs.aws.amazon.com/autoscaling/ec2/userguide/capacity-rebalance.html) 
   + **架構** – EC2 執行個體的處理器架構。處理器架構會決定下一個欄位中可用的 EC2 執行個體類型。
   + **執行個體類型** – 啟動以執行應用程式的 Amazon EC2 執行個體類型。如需詳細資訊，請參閱[執行個體類型](using-features.managing.ec2.console.md#using-features.managing.ec2.instancetypes)。
   + **AMI ID** ‒ Elastic Beanstalk 用來在您環境中啟動 Amazon EC2 執行個體的機器映像。如需詳細資訊，請參閱[AMI ID](using-features.managing.ec2.console.md#using-features.managing.ec2.customami)。
   + **Availability Zones (可用區域)** ‒ 選擇您環境執行個體可散佈到的可用區域數。根據預設，Auto Scaling 群組會在所有可用區域中平均啟動執行個體。欲將您的執行個體集中於較少區域，請選擇欲使用的區域數量。以生產環境而言，請使用至少兩個區域，以確保您的應用程式在其中一個可用區域服務中斷時仍能使用。
   + **Placement (置放)** (選用) ‒ 選擇欲使用的可用區域。如果若您的執行個體需要連線至特定區域的資源，或者您已購買區域特定的[預留執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts-on-demand-reserved-instances.html)，請使用此設定。若您於自訂 VPC 啟動環境，您無法設定此選項。於自訂 VPC 中，您可以針對指派給您環境的子網路，選擇其可用區域。
   + **Scaling cooldown (擴展冷卻)** ‒ 擴展之後，在繼續評估觸發前等待執行個體啟動或終止的時間 (以秒計)。如需詳細資訊，請參閱[擴展冷卻](https://docs.aws.amazon.com/autoscaling/ec2/userguide/Cooldown.html)。

1. 若要儲存變更，請選擇頁面底部的**儲存變更**。

## 使用命名空間選項的組態
<a name="environments-cfg-autoscaling-namespace"></a>

Elastic Beanstalk 在以下兩個命名空間中提供 Auto Scaling 設定的[組態選項](command-options.md)：[`aws:autoscaling:asg`](command-options-general.md#command-options-general-autoscalingasg) 和 [`aws:ec2:instances`](command-options-general.md#command-options-general-ec2instances)。

### aws:autoscaling:asg 命名空間
<a name="environments-cfg-autoscaling-namespace.asg"></a>

[`aws:autoscaling:asg`](command-options-general.md#command-options-general-autoscalingasg) 命名空間提供了可用於整體擴展和可用性的選項。

下列[組態檔案](ebextensions.md)範例會設定 Auto Scaling 群組，以使用二到四個執行個體、特定可用區域，以及 12 分鐘 (720 秒) 的冷卻時間。它可啟用 Spot 執行個體的[容量重新平衡](https://docs.aws.amazon.com/autoscaling/ec2/userguide/capacity-rebalance.html)。`EnableCapacityRebalancing` 此選項只有在[`aws:ec2:instances`](command-options-general.md#command-options-general-ec2instances)命名空間`true`中設定為 `EnableSpot` 時才會生效，如以下組態檔案範例所示。

```
option_settings:
  aws:autoscaling:asg:
    Availability Zones: Any
    Cooldown: '720'
    Custom Availability Zones: 'us-west-2a,us-west-2b'
    MaxSize: '4'
    MinSize: '2'
    EnableCapacityRebalancing: true
```

### aws:ec2:instances 命名空間
<a name="environments-cfg-autoscaling-namespace.instances"></a>

**注意**  
當您更新環境資訊並從 `InstanceTypes` 選項中移除一或多個執行個體類型時，Elastic Beanstalk 會終止在已移除的執行個體類型上執行的任何 Amazon EC2 執行個體。然後，您環境的 Auto Scaling 群組會視需要啟動新執行個體，以使用目前指定的執行個體類型來完成所需的容量。

[`aws:ec2:instances`](command-options-general.md#command-options-general-ec2instances) 命名空間提供了與環境的執行個體相關的選項，包括 Spot 執行個體管理。這與 [`aws:autoscaling:launchconfiguration`](command-options-general.md#command-options-general-autoscalinglaunchconfiguration) 及 [`aws:autoscaling:asg`](command-options-general.md#command-options-general-autoscalingasg) 相輔相成。

以下[組態檔案](ebextensions.md)範例會設定 Auto Scaling 群組，為您的環境啟用 Spot 執行個體請求。它會指定三種可用的執行個體類型。至少將一個隨需執行個體用於基準容量，以及將認可的 33% 隨需執行個體用於額外容量。

組態會將 [Spot 配置策略](environments-cfg-autoscaling-spot-allocation-strategy.md)設定為 `capacity-optimized-prioritized`。此特定配置策略會根據 `InstanceTypes`選項中指定的執行個體類型順序，排定執行個體從集區啟動的優先順序。如果`SpotAllocationStrategy`未指定 ，則預設為 `capacity-optimized`。

```
option_settings:
  aws:ec2:instances:
    EnableSpot: true
    InstanceTypes: 't2.micro,t3.micro,t3.small'    
    SpotAllocationStrategy: capacity-optimized-prioritized
    SpotFleetOnDemandBase: '1'
    SpotFleetOnDemandAboveBasePercentage: '33'
```

如要選擇 Spot 執行個體類型，請使用 [Spot Instance Advisor](https://aws.amazon.com/ec2/spot/instance-advisor/)。

**重要**  
`EnableSpot` 選項設定可能會導致 Elastic Beanstalk 遷移具有啟動組態的現有環境以啟動範本。這樣做需要必要的許可才能管理啟動範本。這些許可包含在我們的 受管政策中。如果您使用自訂政策，而不是我們的受管政策，當您更新環境組態時，環境建立或更新可能會失敗。如需詳細資訊和其他考量事項，請參閱 [遷移 Elastic Beanstalk 環境以啟動範本](environments-cfg-autoscaling-launch-templates.md)。

## 使用 的組態 AWS CLI
<a name="environments-cfg-autoscaling-aws-cli"></a>

本節提供如何使用 AWS CLI [createe-environment](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/create-environment.html) 命令，以這些章節中所述的 Auto Scaling 和容量選項來設定環境的範例。您會注意到 [`aws:autoscaling:asg`](command-options-general.md#command-options-general-autoscalingasg)和 的命名空間設定[`aws:ec2:instances`](command-options-general.md#command-options-general-ec2instances)，如先前[命名空間組態選項](#environments-cfg-autoscaling-namespace)一節所述，也會使用此範例進行設定。

Command AWS Line Interface 提供建立和設定 Elastic Beanstalk 環境的命令。使用 `--option-settings`選項，您可以傳入 Elastic Beanstalk 支援的命名空間選項。這表示先前描述的[命名空間組態選項](#environments-cfg-autoscaling-namespace)可以傳遞至適用的 AWS CLI 命令，以設定您的 Elastic Beanstalk 環境。

**注意**  
您也可以搭配 使用 [update-environment](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-environment.html) 命令`--option-settings`來新增或更新命名空間選項。如果您需要從環境中移除任何命名空間選項，請使用 **update-environment**命令搭配 `--options-to-remove`。

下列範例會建立新的環境。如需傳入選項的更多內容，請參閱上一個主題[命名空間組態](#environments-cfg-autoscaling-namespace)選項。

在[aws:autoscaling:launchconfiguration](command-options-general.md#command-options-general-autoscalinglaunchconfiguration)命名空間`IamInstanceProfile`中列出的 fist 選項是 Elastic Beanstalk [執行個體描述檔](concepts-roles-instance.md)。當您建立新的環境時，這是必要的。

**Example — 具有 Auto Scaling 選項的 create-environment （命名空間選項內嵌）**  

```
aws elasticbeanstalk create-environment \
--region us-east-1 \
--application-name my-app \
--environment-name my-env \
--solution-stack-name "64bit Amazon Linux 2023 v4.3.0 running Python 3.12" \
--option-settings \
Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role
Namespace=aws:autoscaling:asg,OptionName=Availability Zones,Value=Any \
Namespace=aws:autoscaling:asg,OptionName=Cooldown,Value=720 \
Namespace=aws:autoscaling:asg,OptionName=Custom Availability Zones,Value=us-west-2a,us-west-2b \
Namespace=aws:autoscaling:asg,OptionName=MaxSize,Value=4 \
Namespace=aws:autoscaling:asg,OptionName=MinSize,Value=2 \
Namespace=aws:autoscaling:asg,OptionName=EnableCapacityRebalancing,Value=true \
Namespace=aws:ec2:instances,OptionName=EnableSpot,Value=true \
Namespace=aws:ec2:instances,OptionName=InstanceTypes,Value=t2.micro,t3.micro,t3.small \
Namespace=aws:ec2:instances,OptionName=SpotAllocationStrategy,Value=capacity-optimized-prioritized \
Namespace=aws:ec2:instances,OptionName=SpotFleetOnDemandBase,Value=1 \
Namespace=aws:ec2:instances,OptionName=SpotFleetOnDemandAboveBasePercentage,Value=33
```





**重要**  
`EnableSpot` 選項設定可能會導致 Elastic Beanstalk 遷移具有啟動組態的現有環境以啟動範本。這樣做需要必要的許可才能管理啟動範本。這些許可包含在我們的 受管政策中。如果您使用自訂政策，而不是我們的受管政策，當您更新環境組態時，環境建立或更新可能會失敗。如需詳細資訊和其他考量事項，請參閱 [遷移 Elastic Beanstalk 環境以啟動範本](environments-cfg-autoscaling-launch-templates.md)。





或者，您也可以使用 `options.json` 檔案來指定命名空間選項，而非透過內嵌方式一併包含於其中。

**Example —使用 Auto Scaling 選項建立環境 (`options.json`檔案中的命名空間選項）**  

```
aws elasticbeanstalk create-environment \
--region us-east-1 \
--application-name my-app \
--environment-name my-env \
--solution-stack-name "64bit Amazon Linux 2023 v4.3.0 running Python 3.12"
--option-settings file://options.json
```

**Example**  

```
### example options.json ###
[
    {
        "Namespace": "aws:autoscaling:launchconfiguration",
        "OptionName": "IamInstanceProfile",
        "Value": "aws-elasticbeanstalk-ec2-role"
    },
    {
        "Namespace": "aws:autoscaling:asg",
        "OptionName": "Availability Zones",
        "Value": "Any"
    },
    {
        "Namespace": "aws:autoscaling:asg",
        "OptionName": "Cooldown",
        "Value": "720"
    },
    {
        "Namespace": "aws:autoscaling:asg",
        "OptionName": "Custom Availability Zones",
        "Value": "us-west-2a,us-west-2b"
    },
    {
        "Namespace": "aws:autoscaling:asg",
        "OptionName": "MaxSize",
        "Value": "4"
    },
    {
        "Namespace": "aws:autoscaling:asg",
        "OptionName": "MinSize",
        "Value": "2"
    },
    {
        "Namespace": "aws:autoscaling:asg",
        "OptionName": "EnableCapacityRebalancing",
        "Value": "true"
    },
    {
        "Namespace": "aws:ec2:instances",
        "OptionName": "EnableSpot",
        "Value": "true"
    },
    {
        "Namespace": "aws:ec2:instances",
        "OptionName": "InstanceTypes",
        "Value": "t2.micro,t3.micro,t3.small"
    },
    {
        "Namespace": "aws:ec2:instances",
        "OptionName": "SpotAllocationStrategy",
        "Value": "capacity-optimized-prioritized"
    },
    {
        "Namespace": "aws:ec2:instances",
        "OptionName": "SpotFleetOnDemandBase",
        "Value": "1"
    },
    {
        "Namespace": "aws:ec2:instances",
        "OptionName": "SpotFleetOnDemandAboveBasePercentage",
        "Value": "33"
    }
]
```

## 使用 EB CLI 的組態
<a name="environments-cfg-autoscaling-ebcli"></a>

使用 [**eb create**](eb3-create.md) 命令建立環境時，您可以指定與您環境 Auto Scaling 群組相關的幾個選項。這些是可協助您控制環境的容量的其中一些選項。

`--single`  
建立有一個 Amazon EC2 執行個體且沒有負載平衡器的環境。如果您未使用此選項，系統會將負載平衡器新增至建立的環境環境。

`--enable-spot`  
為您的環境啟用 Spot 執行個體請求。  
`enable-spot` 選項設定可能會導致 Elastic Beanstalk 遷移具有啟動組態的現有環境以啟動範本。這樣做需要必要的許可才能管理啟動範本。這些許可包含在我們的 受管政策中。如果您使用自訂政策，而不是我們的受管政策，當您更新環境組態時，環境建立或更新可能會失敗。如需詳細資訊和其他考量，請參閱 [遷移 Elastic Beanstalk 環境以啟動範本](environments-cfg-autoscaling-launch-templates.md)。
[**eb create**](eb3-create.md) 命令的下列選項僅可搭配 `--enable-spot` 使用。    
`--instance-types`  
列出您要讓環境使用的 Amazon EC2 執行個體類型。  
`--spot-max-price`  
您願意為 Spot 執行個體支付的每單位小時最高價格 (以美元為單位)。如需 Spot 執行個體最高價格選項的建議，請參閱《*Amazon EC2 使用者指南》中的* [Spot 執行個體定價歷史記錄](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances-history.html)。  
`--on-demand-base-capacity`  
隨著環境擴展，Auto Scaling 群組在考量 Spot 執行個體前佈建的最小隨需執行個體數量。  
`--on-demand-above-base-capacity`  
隨需執行個體百分比 (Auto Scaling 群組超出 `--on-demand-base-capacity` 選項所指定之執行個體數量所怖建的一部分額外容量)。

以下範例會建立環境並將 Auto Scaling 群組設為針對新環境啟用 Spot 執行個體請求。以這個例子來說，有三個執行個體類型可使用。

```
$ eb create --enable-spot --instance-types "t2.micro,t3.micro,t3.small"
```

**重要**  
還有另一個名稱類似的選項 `--instance-type` (沒有“s”)，EB CLI 僅在處理隨需執行個體時才會區分這類選項名稱。請勿將 `--instance-type` (沒有 "s") 與 `--enable-spot` 選項搭配使用。如果搭配使用，EB CLI 會加以忽略。反之，請將 `--instance-types` (有 "s") 與 `--enable-spot` 選項搭配使用。