

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

# Auto Scaling 您的 Elastic Beanstalk 環境執行個體
<a name="using-features.managing.as"></a>

本主題說明如何自訂 Auto Scaling 功能來管理 Elastic Beanstalk 環境的工作負載。您可以使用 [Elastic Beanstalk 主控台](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-console)、[命名空間組態選項](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-namespace)[AWS CLI](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-aws-cli)、 或 [EB CLI](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-ebcli)，為您的環境設定 Auto Scaling。

**負載平衡或單一執行個體環境**  
您的 AWS Elastic Beanstalk 環境包含管理您環境中 [Amazon EC2 執行個體](using-features.managing.ec2.md)的 *Auto Scaling 群組*。在單一執行個體環境中，Auto Scaling 群組可確保隨時都有一個執行個體正在執行。在負載平衡的環境中，您可以設定群組欲執行的各種執行個體，而 Auto Scaling 會依據負載視需要新增或移除執行個體。

**EC2 執行個體組態**  
Auto Scaling 群組也會套用您的組態選擇，以佈建和管理您環境中的 EC2 執行個體。您可以[修改 EC2 組態](using-features.managing.ec2.md)，以變更執行個體類型、金鑰對、Amazon Elastic Block Store (Amazon EBS) 儲存體，以及只能在啟動執行個體時設定的其他設定。

**隨需執行個體和 Spot 執行個體**  
作為一個選項，Elastic Beanstalk 可以在您的環境中包含 [Spot 執行個體](environments-cfg-autoscaling-spot.md)，並結合隨需執行個體進行管理。您可以啟用[容量重新平衡](https://docs.aws.amazon.com/autoscaling/ec2/userguide/capacity-rebalance.html)，以設定 Amazon EC2 Auto Scaling 來監控並自動回應影響 Spot 執行個體可用性的變更。您也可以設定 [Spot 配置策略](environments-cfg-autoscaling-spot-allocation-strategy.md) Auto Scaling 服務用來將 Spot 執行個體佈建到您的環境的 。

**啟用 Spot 執行個體時的必要許可**  
啟用 Spot 執行個體請求需要使用 Amazon EC2 啟動範本。當您在環境建立或更新期間設定此類功能，Elastic Beanstalk 便會嘗試設定您的環境來使用 Amazon EC2 啟動範本 (如果環境尚未使用這些範本)。在此情況下，如果您的使用者政策缺乏必要的許可，環境建立或更新可能會失敗。因此我們建議您使用我們的受管使用者政策，或將所需的許可新增至您的自訂政策。如需所需許可的詳細資訊，請參閱[啟動範本所需的權限](environments-cfg-autoscaling-launch-templates.md#environments-cfg-autoscaling-launch-templates-permissions)。

**Auto Scaling 觸發程式**  
Auto Scaling 群組會使用兩個 Amazon CloudWatch 警示觸發擴展操作。當每個執行個體的平均傳出網路流量，在五分鐘期間高於 6 MiB 或低於 2 MiB 時，預設的觸發條件就會擴展。如要有效地使用 Auto Scaling，請根據您的應用程式、執行個體類型和服務需求，[設定適用的觸發](environments-cfg-autoscaling-triggers.md)。您可以根據多項統計資料來進行擴展，包括延遲、磁碟 I/O、CPU 使用率和請求計數。

**排程 Auto Scaling 動作**  
如要在可預測的尖峰流量期間最佳化您環境使用 Amazon EC2 執行個體的情況，請[設定您的 Auto Scaling 群組來透過排程變更其執行個體計數](environments-cfg-autoscaling-scheduledactions.md)。您可以排程您群組組態每日或每週的變更，或排程一次性變更以因應將大幅提升至您網站流量的行銷活動。

**Auto Scaling 運作狀態檢查**  
Auto Scaling 亦會針對其啟動的每個 Amazon EC2 執行個體，監控其運作狀態。如果有任何執行個體未預期終止，Auto Scaling 會偵測到終止狀況，並啟動替代執行個體。如要設定群組使用負載平衡器的運作狀態檢查機制，請參閱[Elastic Beanstalk 環境的 Auto Scaling 運作狀態檢查設定](environmentconfig-autoscaling-healthchecktype.md)。

**Topics**
+ [遷移 Elastic Beanstalk 環境以啟動範本](environments-cfg-autoscaling-launch-templates.md)
+ [支援 Elastic Beanstalk 環境的 Spot 執行個體](environments-cfg-autoscaling-spot.md)
+ [Elastic Beanstalk 環境的 Auto Scaling 觸發條件](environments-cfg-autoscaling-triggers.md)
+ [Elastic Beanstalk 環境的排程 Auto Scaling 動作](environments-cfg-autoscaling-scheduledactions.md)
+ [Elastic Beanstalk 環境的 Auto Scaling 運作狀態檢查設定](environmentconfig-autoscaling-healthchecktype.md)

# 遷移 Elastic Beanstalk 環境以啟動範本
<a name="environments-cfg-autoscaling-launch-templates"></a>

自 2024 年 10 月 1 日起，Amazon EC2 Auto Scaling 不再支援新帳戶的啟動組態。在該日期之前建立的帳戶可能會有啟動組態。

我們建議您遷移以**啟動範本**，以獲得下列優點：
+ 改善應用程式的可用性
+ 更好地最佳化 Auto Scaling 群組中的工作負載
+ 存取最新的 EC2 和 Auto Scaling 功能

如需詳細資訊，請參閱《Amazon EC2 [Auto Scaling 使用者指南》中的 Auto Scaling 啟動組態](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-configurations.html)。 *Amazon EC2 Auto Scaling *

## 啟動範本的選項設定
<a name="environments-cfg-autoscaling-launch-templates-options"></a>

若要將環境從啟動組態遷移至啟動範本，請設定下列其中一個組態選項：
+ `RootVolumeType` 選項設定為 **gp3**。您可以使用 [主控台](using-features.managing.ec2.console.md)或[命名空間](using-features.managing.ec2.namespace.md) 設定此選項。
+ `BlockDeviceMappings` 選項包含 **gp3**。您可以使用 [主控台](using-features.managing.ec2.console.md)或 [命名空間](using-features.managing.ec2.namespace.md)設定此選項。
+ `DisableIMDSv1` 選項設定為 **true**。我們建議您使用 [命名空間](using-features.managing.ec2.namespace.md)設定此選項。
+ `EnableSpot` 選項設定為 **true**。如需詳細資訊，請參閱[啟用 Spot 執行個體](environments-cfg-autoscaling-enable-spot.md)。

**重要**  
環境開始使用啟動範本後，Elastic Beanstalk 不會還原為啟動組態，即使您移除最初觸發使用啟動範本的組態選項。

## 確認您的環境是否有啟動組態或啟動範本
<a name="environments-cfg-autoscaling-launch-templates-determine"></a>

您可以檢查 CloudFormation 堆疊範本，確認您的環境是否已使用啟動範本，或是否使用啟動組態。

**檢查您環境的 CloudFormation 堆疊範本**

1. 在 https：//[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) 開啟 AWS CloudFormation 主控台。

1. 在畫面頂端的導覽列上，選擇您建立環境 AWS 的區域。

1. 在 CloudFormation 主控台的**堆疊**頁面上，檢查**描述**欄。

   尋找並選取 Elastic Beanstalk 環境的堆疊。CloudFormation 會顯示環境的堆疊詳細資訊。

1. 在**堆疊詳細資訊**中，選取**範本**索引標籤。

   使用瀏覽器的頁面搜尋，您可以搜尋範本文字以取得 *launchtemplate* 或 *launchconfiguration*。

如需詳細資訊，請參閱*AWS CloudFormation 《 使用者指南*》中的[檢視堆疊資訊](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html)。

## 啟動範本所需的權限
<a name="environments-cfg-autoscaling-launch-templates-permissions"></a>

預設 Elastic Beanstalk 受管服務角色政策 [AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy.html) 提供建立和管理啟動範本所需的許可。Elastic Beanstalk 必須管理啟動範本，以完成許多環境操作，包括建立環境。

如果您將自訂政策連接至 Elastic Beanstalk 服務角色，請確認服務角色包含建立啟動範本的下列許可。這些許可可讓 Elastic Beanstalk 在您的帳戶中成功建立和更新環境：

**Amazon EC2 啟動範本的必要許可**
+ `ec2:RunInstances`
+ `ec2:CreateLaunchTemplate`
+ `ec2:CreateLaunchTemplateVersions`
+ `ec2:DeleteLaunchTemplate`
+ `ec2:DeleteLaunchTemplateVersions`
+ `ec2:DescribeLaunchTemplate`
+ `ec2:DescribeLaunchTemplateVersions`

下列範例 IAM 政策包含這些許可。

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:RunInstances",
        "ec2:CreateLaunchTemplate",
        "ec2:CreateLaunchTemplateVersions",
        "ec2:DeleteLaunchTemplate",
        "ec2:DeleteLaunchTemplateVersions",
        "ec2:DescribeLaunchTemplate",
        "ec2:DescribeLaunchTemplateVersions"
      ],     
      "Resource": [
                "*"
            ]
     }
  ]
}
```

如需詳細資訊，請參閱[管理 Elastic Beanstalk 服務角色](iam-servicerole.md)及[管理 Elastic Beanstalk 使用者政策](AWSHowTo.iam.managed-policies.md)。

## 啟動範本的詳細資訊
<a name="environments-cfg-autoscaling-launch-templates-moreinfo"></a>

若要進一步了解啟動範本，請參閱《Amazon EC2 [Auto Scaling 使用者指南》中的 Auto Scaling 啟動範本](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-templates.html)。 *Amazon EC2 Auto Scaling *

若要進一步了解 AWS 轉換到啟動範本及其提供的優點，請參閱 *AWS 運算部落格*中的 [ Amazon EC2 Auto Scaling 將不再將對新 EC2 功能的支援新增至啟動組態](https://aws.amazon.com/blogs/compute/amazon-ec2-auto-scaling-will-no-longer-add-support-for-new-ec2-features-to-launch-configurations/)。

**重要**  
您不需要遵循本部落格文章中參考的程序，即可將較舊的環境轉換為啟動範本。若要遷移現有的 Elastic Beanstalk 環境以啟動範本，請設定 中列出的其中一個選項[啟動範本的選項設定](#environments-cfg-autoscaling-launch-templates-options)。

# 支援 Elastic Beanstalk 環境的 Spot 執行個體
<a name="environments-cfg-autoscaling-spot"></a>

本主題說明可用於管理 Elastic Beanstalk 環境中 Spot 執行個體容量和負載平衡的組態選項。它也提供您可以用來設定這些選項的方法的詳細資訊和範例。您可以使用 [Elastic Beanstalk 主控台](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-console)、[命名空間組態選項](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-namespace)[AWS CLI](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-aws-cli)、 或 [EB CLI ](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-ebcli)來管理組態選項。

**使用容量重新平衡將 Spot 執行個體中斷降至最低**  
為了協助將 Spot 執行個體中斷對應用程式的影響降至最低，您可以啟用 Amazon EC2 Auto Scaling 隨附的容量重新平衡選項。

**重要**  
Spot 執行個體的需求可能會隨時產生極大的變化，而取決於有多少可用的未使用 Amazon EC2 執行個體，Spot 執行個體的可用性也可能會有顯著的變化。Spot 執行個體隨時都有可能中斷。

當您啟用容量重新平衡時，EC2 會在中斷之前自動嘗試取代 Auto Scaling 群組中的 Spot 執行個體。使用 Elastic Beanstalk 主控台[設定 Auto Scaling 群組](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-console)來啟用此功能。您也可以在 [aws:autoscaling:asg](command-options-general.md#command-options-general-autoscalingasg) 命名空間中將 Elastic Beanstalk `EnableCapacityRebalancing` [組態選項](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-namespace)設定為 `true`。

如需詳細資訊，請參閱《*Amazon EC2 Auto Scaling 使用者指南*》中的[容量重新平衡](https://docs.aws.amazon.com/autoscaling/ec2/userguide/capacity-rebalance.html)和《*Amazon EC2 使用者指南*》中的 [Spot 執行個體中斷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html)。

**較舊的執行個體類型和 Spot 執行個體支援**  
有些較舊 AWS 的帳戶可能會為 Elastic Beanstalk 提供不支援 Spot 執行個體的預設執行個體類型。如果您啟用 Spot 執行個體請求並看到錯誤 您指定的執行個體類型都不支援 Spot，請使用支援 Spot 執行個體的執行個體類型更新您的組態。如要選擇 Spot 執行個體類型，請使用 [Spot Instance Advisor](https://aws.amazon.com/ec2/spot/instance-advisor/)。

**Topics**
+ [為您的環境啟用 Spot 執行個體](environments-cfg-autoscaling-enable-spot.md)
+ [Spot 執行個體配置策略](environments-cfg-autoscaling-spot-allocation-strategy.md)
+ [管理隨需執行個體和 Spot 執行個體](environments-cfg-autoscaling-spot-and-demand.md)
+ [Elastic Beanstalk 環境的容量組態](environments-cfg-autoscaling-configuration-approaches.md)

# 為您的環境啟用 Spot 執行個體
<a name="environments-cfg-autoscaling-enable-spot"></a>

若要利用 Amazon EC2 Spot 執行個體，請為您的環境設定 `EnableSpot`選項。然後您環境的 Auto Scaling 群組會結合 Amazon EC2 購買選項，並維持隨需和 Spot 執行個體的混合。

您可以使用 [Elastic Beanstalk 主控台](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-console)、[命名空間組態選項](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-namespace)[AWS CLI](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-aws-cli)、 或 [EB CLI](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-ebcli)，為您的環境啟用 Spot 執行個體請求。

為您的環境啟用 Spot 執行個體之前，請先熟悉可用的 Auto Scaling、容量和負載平衡組態選項。與工作負載、執行個體中斷影響和定價相關的應用程式需求，都是您規劃啟用 Spot 執行個體時的重要考量。

以下主題提供有關 Auto Scaling 和容量管理選項及其組合使用如何影響您的環境的詳細資訊。有程序和範例組態可通知您，並引導您了解各種選項以及如何設定這些選項。我們也提供工具和功能，協助您管理組態並回應事件。您可以根據可預測的流量期間來排程組態的自動變更、設定觸發以回應流量等因素，以及設定 Auto Scaling 監控和運作狀態檢查。

如需 Spot 執行個體的詳細資訊，包括重要概念和最佳實務的說明，請參閱《*Amazon EC2 使用者指南*》中的 [Spot 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html)。

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

# Spot 執行個體配置策略
<a name="environments-cfg-autoscaling-spot-allocation-strategy"></a>

您可以為您的 Elastic Beanstalk 環境選取本主題中列出的任一配置策略。使用 [Elastic Beanstalk 主控台](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-console)、[命名空間組態選項](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-namespace)或 [AWS CLI](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-aws-cli)，為您的環境設定和設定 Spot 執行個體配置策略和相關屬性。

Amazon EC2 會套用*配置策略*來管理和佈建您環境的 Spot 執行個體。每個配置策略會根據其處理可用容量、價格和執行個體類型選擇的定義來最佳化配置的執行個體。

Amazon EC2 Auto Scaling 為 Spot 執行個體提供下列配置策略。
+ **容量最佳化** （預設）
  + 從集區請求具有*最佳容量*的 Spot 執行個體，以用於啟動的執行個體數量。
  + 此策略適用於必須將服務中斷可能性降至最低的工作負載。
+ **價格容量最佳化**
  + 從*中斷可能性最低*且*價格最低*的集區請求 Spot 執行個體。
  + 這是大多數 Spot 工作負載的首選。
+ **容量最佳化的優先順序**
  + 首先根據*容量可用性*請求 Spot 執行個體，同時盡力遵守您選擇的*執行個體類型優先順序*。當您為 Elastic Beanstalk 設定 Spot 執行個體選項時，您可以提供依優先順序排序的執行個體類型清單。
  + 此策略適用於需要最少服務中斷的工作負載，且特定執行個體類型的優先順序很重要。
+ **最低價格** 
  + 使用可用的執行個體，從*價格最低的集*區請求 Spot 執行個體。
  + 使用此策略時請務必採取預防措施，因為它只會考慮執行個體價格，而不是容量可用性，這將導致高中斷率。

如需每個配置策略的詳細資訊，請參閱《*Amazon EC2 Auto Scaling 使用者指南*》中的[多個執行個體類型的配置策略](https://docs.aws.amazon.com/autoscaling/ec2/userguide/allocation-strategies.html)。

為了協助您了解哪種配置策略最適合您環境的需求，請參閱《*Amazon EC2 使用者指南*》中的[選擇適當的 Spot 配置策略](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-allocation-strategy.html#ec2-fleet-allocation-use-cases)。

# 管理隨需執行個體和 Spot 執行個體
<a name="environments-cfg-autoscaling-spot-and-demand"></a>

您可以在單一 Auto Scaling 群組內啟動和自動擴展隨需執行個體和 Spot 執行個體組成的機群。下列選項可以串聯使用，以設定 Auto Scaling 服務如何管理您環境中的 Spot 執行個體和隨需執行個體。

您可以使用 [Elastic Beanstalk 主控台](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-console)、[命名空間組態選項、 或 EB CLI，為您的環境設定這些選項](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-namespace)。 [AWS CLI](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-aws-cli) [使用 EB CLI 的組態](environments-cfg-autoscaling-configuration-approaches.md#environments-cfg-autoscaling-ebcli)

這些選項是 [aws：ec2：instances](command-options-general.md#command-options-general-ec2instances) 命名空間的一部分：
+ `EnableSpot` ‐ 設定為`true`此設定時， 會為您的環境啟用 Spot 執行個體請求。
+ `SpotFleetOnDemandBase` ‐ 設定 Auto Scaling 群組在環境擴展時考慮 Spot 執行個體之前佈建的隨需執行個體數量下限。
+ `SpotFleetOnDemandAboveBasePercentage` - 隨需執行個體的百分比，做為 Auto Scaling 群組佈建超出`SpotOnDemandBase`執行個體之額外容量的一部分。

先前列出的選項與 [aws：autoscaling：asg](command-options-general.md#command-options-general-autoscalingasg) 命名空間中的下列選項相關：
+ `MinSize` ‐ Auto Scaling 群組中您想要的執行個體數量下限。
+ `MaxSize` ‐ Auto Scaling 群組中您想要的執行個體數目上限。

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

## 套用兩組命名空間選項
<a name="environments-cfg-autoscaling-spot-and-demand-combined"></a>

以下幾點說明這些選項設定的組合如何影響您環境的擴展。
+ 只有 `MinSize` 會決定您環境的初始容量，亦即您要執行的最少執行個體數量。
+  `SpotFleetOnDemandBase` 不會影響初始容量。啟用 Spot 時，此選項會決定在考慮任何 Spot 執行個體之前佈建多少隨需執行個體。
+ 當 `SpotFleetOnDemandBase` 小於 `MinSize` 時考慮。你仍會獲得 `MinSize` 個執行個體做為初始容量。其中至少 `SpotFleetOnDemandBase` 個必須是隨需執行個體。
+ 當 `SpotFleetOnDemandBase` 大於 `MinSize` 時考慮。隨著環境擴展，這可保證您至少能取得相當於兩個值之差的額外執行個體數量。亦即保證在達到 `SpotFleetOnDemandBase` 個的數量要求前，您至少能取得 `(SpotFleetOnDemandBase - MinSize)` 個額外的隨需執行個體。

**單一執行個體環境**  
在生產環境中，做為可擴展且有負載平衡環境中一部分的 Spot 執行個體格外實用。不建議您將 Spot 用於單一執行個體環境。如果沒有可用的 Spot 執行個體，您可能會失去環境的整個容量 (單一執行個體)。您可能仍會想要將 Spot 執行個體用於單一執行個體環境，以進行開發或測試。當您這麼做時，請務必將 `SpotFleetOnDemandBase` 與 `SpotFleetOnDemandAboveBasePercentage` 同時設為零。任何其他設定都會產生隨選執行個體。

## 擴展選項設定的範例
<a name="environments-cfg-autoscaling-spot-and-demand-examples"></a>

以下範例示範設定各種擴展選項的不同情況。所有範例均假設使用已啟用 Spot 執行個體請求的負載平衡環境。

**Example 1：做為初始容量一部分的隨需和 Spot**  <a name="environments-cfg-autoscaling-spot-example1"></a>


**選項設定**  

|  **選項**  |  **命名空間**  |  **Value**  | 
| --- | --- | --- | 
|  `MinSize`  |  `aws:autoscaling:asg`  |  `10`  | 
|  `MaxSize`  |  `aws:autoscaling:asg`  |  `24`  | 
|  `SpotFleetOnDemandBase`  |  `aws:ec2:instances`  |  `4`  | 
|  `SpotFleetOnDemandAboveBasePercentage`  |  `aws:ec2:instances`  |  `50`  | 

在此範例中，環境是從十個執行個體開始，其中七個是隨需 (四個是基本數量，50% 的六個高於基本數量)，其中三個是 Spot。環境最多可擴展到 24 個執行個體。隨著環境擴展，高於四個基本數量隨需執行個體機群部分中的隨需部分會保持在 50%，整體最多 24 個執行個體，其中 14 個是隨需 (四個基本數量，50% 的 20 個高於基本數量)，其中十個是 Spot。



**Example 2：所有隨需初始容量**  <a name="environments-cfg-autoscaling-spot-example1"></a>


**選項設定**  

|  **選項**  |  **命名空間**  |  **Value**  | 
| --- | --- | --- | 
|  `MinSize`  |  `aws:autoscaling:asg`  |  `4`  | 
|  `MaxSize`  |  `aws:autoscaling:asg`  |  `24`  | 
|  `SpotFleetOnDemandBase`  |  `aws:ec2:instances`  |  `4`  | 
|  `SpotFleetOnDemandAboveBasePercentage`  |  `aws:ec2:instances`  |  `50`  | 

在此範例中，環境是從四個執行個體開始，全部都是隨需。環境最多可擴展到 24 個執行個體。隨著環境擴展，高於四個基本數量隨需執行個體機群部分中的隨需部分會保持在 50%，整體最多 24 個執行個體，其中 14 個是隨需 (四個基本數量，50% 的 20 個高於基本數量)，其中十個是 Spot。

**Example 3：超過初始容量的額外隨需基本數量**  <a name="environments-cfg-autoscaling-spot-example1"></a>


**選項設定**  

|  **選項**  |  **命名空間**  |  **Value**  | 
| --- | --- | --- | 
|  `MinSize`  |  `aws:autoscaling:asg`  |  `3`  | 
|  `MaxSize`  |  `aws:autoscaling:asg`  |  `24`  | 
|  `SpotFleetOnDemandBase`  |  `aws:ec2:instances`  |  `4`  | 
|  `SpotFleetOnDemandAboveBasePercentage`  |  `aws:ec2:instances`  |  `50`  | 

在此範例中，環境是從三個執行個體開始，全部都是隨需。環境最多可擴展到 24 個執行個體。超過初始三個的第一個額外執行個體是隨需，可讓四個基本數量隨需執行個體變得完整。隨著環境進一步擴展，高於四個基本數量隨需執行個體機群部分中的隨需部分會保持在 50%，整體最多 24 個執行個體，其中 14 個是隨需 (四個基本數量，50% 的 20 個高於基本數量)，其中十個是 Spot。

# 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` 選項搭配使用。

# Elastic Beanstalk 環境的 Auto Scaling 觸發條件
<a name="environments-cfg-autoscaling-triggers"></a>

您 Elastic Beanstalk 環境中的 Auto Scaling 群組會使用兩個 Amazon CloudWatch 警示觸發擴展操作。當每個執行個體的平均傳出網路流量，在五分鐘期間高於 6 MB 或低於 2 MB 時，預設的觸發條件就會擴展。如要有效地使用 Amazon EC2 Auto Scaling，請根據您的應用程式、執行個體類型和服務需求，設定適用的觸發。您可以根據多項統計資料來進行擴展，包括延遲、磁碟 I/O、CPU 使用率和請求計數。

如需 CloudWatch 指標和警示的詳細資訊，請參閱《Amazon CloudWatch 使用者指南》**中的 [Amazon CloudWatch 概念](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html)。

## 設定 Auto Scaling 觸發
<a name="environments-cfg-autoscaling-triggers-console"></a>

您可以在 Elastic Beanstalk 主控台中設定觸發，來調整您環境 Auto Scaling 群組中的執行個體數量。

**在 Elastic Beanstalk 主控台中設定觸發**

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

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

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

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

1. 在 **Scaling triggers (擴展觸發)** 區段，設定以下設定：
   + **Metric (指標)** ‒ 用於 Auto Scaling 觸發的指標。
   + **Statistic (統計)** ‒ 觸發條件應使用的統計資料，例如 `Average`。
   + **Unit (單位)** ‒ 觸發指標的單位，例如 **Bytes (位元組)**。
   + **Period (期間)** ‒ 為您的觸發指定 Amazon CloudWatch 衡量指標的頻率。
   + **Breach duration (違規持續時間)** ‒ 在觸發擴展操作之前，指標可超出閥值上限和下限的時間長度 (以分鐘為單位)。
   + **Upper threshold (閥值上限)** ‒ 如果指標超過此數字達違規持續時間，則會觸發擴展操作。
   + **Scale up increment (規模調增)** ‒ 在進行擴展活動時要新增的 Amazon EC2 執行個體數。
   + **Lower threshold (閥值下限)** ‒ 如果指標低於此數字達違規持續時間，則會觸發擴展操作。
   + **Scale down increment (規模調減)** ‒ 在進行擴展活動時要移除的 Amazon EC2 執行個體數。

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

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

Elastic Beanstalk 會在 [`aws:autoscaling:trigger`](command-options-general.md#command-options-general-autoscalingtrigger) 命名空間中提供 Auto Scaling 設定的[組態選項](command-options.md)。此命名空間中的設定，會根據其所套用的資源來編排。

```
option_settings:
  AWSEBAutoScalingScaleDownPolicy.aws:autoscaling:trigger:
    LowerBreachScaleIncrement: '-1'
  AWSEBAutoScalingScaleUpPolicy.aws:autoscaling:trigger:
    UpperBreachScaleIncrement: '1'
  AWSEBCloudwatchAlarmHigh.aws:autoscaling:trigger:
    UpperThreshold: '6000000'
  AWSEBCloudwatchAlarmLow.aws:autoscaling:trigger:
    BreachDuration: '5'
    EvaluationPeriods: '1'
    LowerThreshold: '2000000'
    MeasureName: NetworkOut
    Period: '5'
    Statistic: Average
    Unit: Bytes
```

# Elastic Beanstalk 環境的排程 Auto Scaling 動作
<a name="environments-cfg-autoscaling-scheduledactions"></a>

如要在可預測的尖峰流量期間最佳化您環境使用 Amazon EC2 執行個體的情況，請設定您的 Amazon EC2 Auto Scaling 群組來透過排程變更其執行個體計數。針對具備重複動作的環境，您可將其設定為每天上午進行擴展，並在夜間低流量時進行縮減。舉例來說，若您正進行的行銷活動，將在特定期間為您的網站提升流量，您可將一次性的擴展與縮減事件分別安排在活動開始與結束的時候。

每個環境至多可定義 120 個作用中的排定動作。Elastic Beanstalk 也會保留至多 150 個過期的動作，讓您可以重複使用以更新其設定。

## 設定排定的動作
<a name="environments-cfg-autoscaling-scheduledactions-console"></a>

您可以在 Elastic Beanstalk 主控台中為您環境的 Auto Scaling 群組建立排程動作。

**在 Elastic Beanstalk 主控台中設定排程動作**

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

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

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

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

1. 在以 **Time-based scaling (時間型擴展)** 區段中，請選擇 **Add scheduled action (新增排定的動作)**。

1. 請填寫以下排定動作設定：
   + **Name (名稱)** ‒ 指定唯一的名稱，至多 255 個英數字元且不含空格。
   + **Instances (執行個體)** ‒ 選擇欲套用至 Auto Scaling 群組的執行個體計數上下限。
   + **Desired capacity (所需的容量)** (選用) ‒ 設定 Auto Scaling 群組所需的初始容量。在套用排程動作後，觸發會依它們的設定調整所需的容量。
   + **Occurrence (出現)** ‒ 選擇 **Recurring (經常性)** 來重複排程上的擴展動作。
   + **Start time (開始時間)** ‒ 針對一次性動作，選擇執行動作的日期和時間。

     對於重複動作，開始時間是選擇性的。指定此選項以選擇最早執行動作的時間。在此時間之後，動作會根據 **Recurrence (重複)** 表達式重複執行。
   + **Recurrence (週期)** ‒ 使用 [Cron](http://en.wikipedia.org/wiki/Cron#CRON_expression) 表達式指定您希望排程動作發生的頻率。例如，`30 6 * * 2` 會在 UTC 每週二上午 6:30 執行動作。
   + **End time (結束時間)** (選擇性) ‒ 重複動作的選項。如果指定此選項，動作會根據 **Recurrence (重複)** 表達式重複執行，並在此時間之後不再執行。

     當排程的動作結束時，Auto Scaling 不會自動回到之前的設定。設定第二個排程動作，並視需要使 Auto Scaling 返回原始設定。

1. 選擇 **Add** (新增)。

1. 若要儲存變更，請選擇頁面底部的**儲存變更**。
**注意**  
要在套用後才會儲存排程的動作。

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

若您需要設定大量的排程動作，可使用[組態檔案](ebextensions.md)或 [Elastic Beanstalk API](environment-configuration-methods-after.md#configuration-options-after-awscli-commandline)，套用來自 YAML 或 JSON 檔案的組態選項變更。這些方法亦可讓您存取 [`Suspend` 選項](command-options-general.md#command-options-general-autoscalingscheduledaction)，暫時停用排定的重複動作。

**注意**  
在主控台外使用排定的動作組態選項時，請使用 ISO 8601 時間格式，以 UTC 時間指定開始時間和結束時間。例如：2015-04-28T04:07:02Z。如需 ISO 8601 時間格式的詳細資訊，請參閱 [Date and Time Formats](http://www.w3.org/TR/NOTE-datetime)。日期在所有排定的動作都必須是獨一無二的。

Elastic Beanstalk 在 [`aws:autoscaling:scheduledaction`](command-options-general.md#command-options-general-autoscalingscheduledaction) 命名空間中，提供了排程動作設定適用的組態選項。使用 `resource_name` 欄位來指定排定的動作名稱。

**Example Scheduled-scale-up-specific-time-long.config**  
此組態檔案會指示 Elastic Beanstalk 在 2015-12-12T00:00:00Z，從五個執行個體擴展為 10 個執行個體。  

```
option_settings:
  - namespace: aws:autoscaling:scheduledaction
    resource_name: ScheduledScaleUpSpecificTime
    option_name: MinSize
    value: '5'
  - namespace: aws:autoscaling:scheduledaction
    resource_name: ScheduledScaleUpSpecificTime
    option_name: MaxSize
    value: '10'
  - namespace: aws:autoscaling:scheduledaction
    resource_name: ScheduledScaleUpSpecificTime
    option_name: DesiredCapacity
    value: '5'
  - namespace: aws:autoscaling:scheduledaction
    resource_name: ScheduledScaleUpSpecificTime
    option_name: StartTime
    value: '2015-12-12T00:00:00Z'
```

**Example Scheduled-scale-up-specific-time.config**  
欲搭配 EB CLI 或組態檔案使用速記語法，請在命名空間前方加上資源名稱。  

```
option_settings:
  ScheduledScaleUpSpecificTime.aws:autoscaling:scheduledaction:
    MinSize: '5'
    MaxSize: '10'
    DesiredCapacity: '5'
    StartTime: '2015-12-12T00:00:00Z'
```

**Example Scheduled-scale-down-specific-time.config**  
此組態檔案會指示 Elastic Beanstalk 在 2015-12-12T07:00:00Z 進行擴展。  

```
option_settings:
  ScheduledScaleDownSpecificTime.aws:autoscaling:scheduledaction:
    MinSize: '1'
    MaxSize: '1'
    DesiredCapacity: '1'
    StartTime: '2015-12-12T07:00:00Z'
```

**Example Scheduled-periodic-scale-up.config**  
此組態檔案會指示 Elastic Beanstalk 每天上午 9 點進行擴展。此排定的動作將於 2015 年 5 月 14 日開始，並在 2016 年 1 月 12 日結束。  

```
option_settings:
  ScheduledPeriodicScaleUp.aws:autoscaling:scheduledaction:
    MinSize: '5'
    MaxSize: '10'
    DesiredCapacity: '5'
    StartTime: '2015-05-14T07:00:00Z'
    EndTime: '2016-01-12T07:00:00Z'
    Recurrence: 0 9 * * *
```

**Example Scheduled-periodic-scale-down.config**  
此組態檔案會指示 Elastic Beanstalk 每天下午 6 點進行擴展至沒有任何運作中的執行個體。如果您知道您的應用程式在上班時間外都在閒置，您可以建立一個類似的排程動作。如果您的應用程式在上班時間外必須關閉，請將 `MaxSize` 變更為 `0`。  

```
option_settings:
  ScheduledPeriodicScaleDown.aws:autoscaling:scheduledaction:
    MinSize: '0'
    MaxSize: '1'
    DesiredCapacity: '0'
    StartTime: '2015-05-14T07:00:00Z'
    EndTime: '2016-01-12T07:00:00Z'
    Recurrence: 0 18 * * *
```

**Example Scheduled-weekend-scale-down.config**  
此組態檔案會指示 Elastic Beanstalk 每個星期五下午 6 點進行擴展。若您知道應用程式週末接收的流量較少，您可建立類似的排定動作。  

```
option_settings:
  ScheduledWeekendScaleDown.aws:autoscaling:scheduledaction:
    MinSize: '1'
    MaxSize: '4'
    DesiredCapacity: '1'
    StartTime: '2015-12-12T07:00:00Z'
    EndTime: '2016-01-12T07:00:00Z'
    Recurrence: 0 18 * * 5
```

# Elastic Beanstalk 環境的 Auto Scaling 運作狀態檢查設定
<a name="environmentconfig-autoscaling-healthchecktype"></a>

Amazon EC2 Auto Scaling 會針對其啟動的每個 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體監控其運作狀態。如果有任何執行個體未預期終止，Auto Scaling 會偵測到終止狀況，並啟動替代執行個體。根據預設，針對您的環境所建立的 Auto Scaling 群組，會使用 [Amazon EC2 狀態檢查](https://docs.aws.amazon.com/autoscaling/latest/userguide/healthcheck.html)功能。如果您環境中的執行個體未通過 Amazon EC2 狀態檢查，Auto Scaling 會將其撤下並進行替換。

Amazon EC2 狀態檢查僅涵蓋執行個體的運作狀態，而未針對您的應用程式、伺服器或執行個體上所執行的任何 Docker 容器，來檢查其運作狀態。如果您的應用程式當機，但其上所執行的執行個體仍然運作狀態良好，則此執行個體可能會被移出負載平衡器，但 Auto Scaling 不會自動替換該項目。預設的處理動作有利於故障排除作業的進行。即使應用程式在啟動後很快地就當機，但如果應用程式一當機，Auto Scaling 就替換了執行個體，則您可能不會知道發生了錯誤。

如果您希望 Auto Scaling 在執行個體的應用程式停止回應時，就取代這些執行個體，可以利用[組態檔案](ebextensions.md)來設定 Auto Scaling 群組使用 Elastic Load Balancing 運作狀態檢查功能。下列範例會設定群組，使用負載平衡器的運作狀態檢查，以及 Amazon EC2 狀態檢查功能，來判斷執行個體的運作狀態。

**Example .ebextensions/autoscaling.config**  

```
Resources:
  AWSEBAutoScalingGroup:
    Type: "AWS::AutoScaling::AutoScalingGroup"
    Properties:
      HealthCheckType: ELB
      HealthCheckGracePeriod: 300
```

如需 `HealthCheckType` 和 `HealthCheckGracePeriod` 屬性的詳細資訊，請參閱《*AWS CloudFormation 使用者指南*》中的 [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html)，以及《*Amazon EC2 Auto Scaling 使用者指南*》中的 [Auto Scaling 執行個體運作狀態檢查](https://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html)。

根據預設，Elastic Load Balancing 運作狀態檢查會設為透過連接埠 80，使用 TCP 來嘗試連線到您的執行個體。這樣可確認在執行個體上執行的 web 伺服器正在接受連線。不過，您可能想讓 [ 自訂負載平衡器的運作狀態檢查](using-features.managing.elb.md)，以確保您的應用程式與 web 伺服器都處於良好的狀態。這項寬限期間的設定，指定了執行個體在受到運作狀態檢查時可以失敗的秒數，未超過此秒數就不會遭到終止和替換。執行個體在被移出負載平衡器後可以回復，所以請預留適合您應用程式的轉換時間給執行個體。