我的 AWS Elastic Beanstalk 環境並未按預期方式擴展。
解決方法
先決條件:
- 您的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體有足夠的容量在您的 AWS 區域中進行擴展。此容量是根據您在 AWS Auto Scaling 群組組態中定義的執行個體最大數量。
- 您可以根據應用程式的安裝和組態需求設定冷卻時間。
- 您使用預設的 Amazon CloudWatch 指標或 Loust 進行負載測試,並找出啟動擴展的最佳指標。
若要設定擴展觸發條件,請使用 Elastic Beanstalk 主控台或選項設定。
在 Elastic Beanstalk 主控台中設定擴展觸發條件
- 開啟 Elastic Beanstalk 主控台,然後選取您的環境。
- 在環境的導覽窗格中,選擇 Configuration (組態)。
- 在 Instance traffic and scaling (執行個體流量和擴展) 下,選擇 Edit (編輯)。
- 在 Capacity (容量) 下的 Scaling Triggers (擴展觸發條件),選取觸發條件選項,然後選擇 Apply (套用)。
**注意:**Elastic Beanstalk 為 aws:autoscaling:trigger 命名空間中的 Auto Scaling 設定提供組態選項。設定套用的資源會在此命名空間中組織該資源的設定。
使用選項設定來設定擴展觸發條件
使用選項設定中的 .ebextensions 修改您的擴展組態。若要存取設定擴展觸發條件的組態檔案,請參閱 GitHub 網站上的autoscaling-triggers-customize.config。
下列範例組態檔會修改以 CPU 使用率為基礎的擴展觸發條件。如果執行個體的 CPU 使用率在連續三個兩分鐘內超過 80%,則 Auto Scaling 會為 Auto Scaling 群組新增一個執行個體。如果在同一時段內執行個體的 CPU 使用率低於 20%,則 Auto Scaling 將從 Auto Scaling 群組中移除一個執行個體。
option_settings:
aws:autoscaling:trigger:
MeasureName: CPUUtilization
Statistic: Average
Unit: Percent
Period: '2'
EvaluationPeriods: '3'
UpperThreshold: '80'
UpperBreachScaleIncrement: '1'
LowerThreshold: '20'
LowerBreachScaleIncrement: '-1'
下列範例顯示應用程式 zip 檔案中 .ebextensions 目錄和 autoscaling-triggers-customize.config 檔案的結構:
~/my-app/
|-- .ebextensions/
| |-- autoscaling-triggers-customize.config
| `-- other.config
|-- other application files
相關資訊
Elastic Beanstalk 環境的自動擴展觸發條件