我想在 AWS Elastic Beanstalk 環境中診斷並解決 Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling 問題。
解決方法
Elastic Beanstalk 中的自動擴展問題可能是由執行個體啟動失敗、運作狀態檢查問題,或擴展政策設定錯誤而導致的。
我的 Amazon EC2 Auto Scaling 群組不斷地替換執行個體
找出您的 Amazon EC2 Auto Scaling 群組非預期停止 Amazon EC2 執行個體的原因。如果 Amazon EC2 Auto Scaling 群組停止了運作狀態不佳的執行個體,請檢查執行個體的運作狀態檢查狀態。如需解決運作狀態檢查失敗的問題,請參閱疑難排解 Amazon EC2 Auto Scaling 中運作狀態不佳的執行個體。
您也可以下載 Elastic Beanstalk 應用程式日誌,以找出運作狀態檢查問題的原因。檢查以下檔案是否有部署失敗:
- /var/log/eb-engine.log
- /var/log/cfn-init-cmd.log
- /var/log/cfn-init.log
若要找出應用程式流量問題,請檢查以下 Web 伺服器存取日誌和錯誤日誌:
- /var/log/nginx/access.log
- /var/log/nginx/error.log
- (Apache only) /var/log/httpd/access_log
- (Apache only) /var/log/httpd/error_log
如果您使用 Windows 執行個體,請檢查以下檔案是否有部署失敗:
- 對於 CloudFormation 初始化日誌,請檢查 C:\cfn\log\cfn-init.log。
- 對於 Elastic Beanstalk 日誌,請檢查 **C:\Program Files\Amazon\ElasticBeanstalk\logs**。
若要找出 Windows 執行個體上的應用程式流量問題,請檢查以下日誌檔案:
- 對於 Microsoft Internet Information Services (IIS) 存取日誌,請檢查 **C:\inetpub\logs\LogFiles\W3SVC1**。
- 對於 HTTP 錯誤日誌,請檢查 **C:\Windows\System32\LogFiles\HTTPERR**。
- 對於 Windows 事件日誌,例如 Application、System 和 Security,請檢查 Windows Event Viewer 主控台。如需更多資訊,請參閱 Microsoft Learn 網站上的事件檢視器。
我的 Amazon EC2 Auto Scaling 群組在 CPU 使用率達到 100% 前不會擴展
如果您的 Amazon EC2 Auto Scaling 群組使用 Average (平均值) 統計資料,則您的 Amazon EC2 Auto Scaling 群組可能不會回應突然增加的流量。因此,即使平均值仍低於您設定的閾值,CPU 使用率最大值仍可能達到 100%。
若要解決此問題,請將 Statistic (統計資料) 設定從 Average (平均值) 變更為 Maximum (最大值)。
我的 Amazon Auto Scaling 群組發生頻繁且不必要的擴展事件
狹窄的閾值組態會在擴展和縮減觸發程序之間形成一個區間,進而造成反應式擴展循環。
若要解決此問題,請完成以下步驟:
- 增加 Amazon CloudWatch 警示的 Upper threshold (上限閾值) 與 Lower threshold (下限閾值) 設定之間的差距。
- 實作冷卻期。
- 執行負載測試,然後使用應用程式的歷史負載模式和先前的 CloudWatch 指標來微調這些設定。例如,使用 Historical CPU Utilization、Memory Utilization、Disk Utilization 和 Network Bandwidth Utilization。
相關資訊
在 AWS Elastic Beanstalk 上使用 Locust 進行分散式負載產生和測試