為了有效排查和解決Auto Scaling服務相關問題,本文為您匯總了使用Auto Scaling服務時遇到的一些常見問題。
類別 | 相關問題 |
Auto Scaling計費 | |
伸縮組 | |
伸縮配置 | |
定時任務 | |
警示任務 | |
伸縮活動 | |
伸縮組內執行個體管理 | |
關聯Server Load Balancer執行個體 | |
關聯RDS執行個體 |
Auto Scaling收費嗎?
Auto Scaling本身不收取任何費用,例如開通Auto Scaling服務、建立伸縮組時,均不需要付費。但您在使用ECS執行個體、ECI執行個體、Server Load Balancer執行個體、RDS執行個體等其他產品的資源時,需要為這些資源付費。更多計費資訊,請參見關聯服務或資源計費說明。
為什麼剛欠費的ECS執行個體或ECI執行個體就被全部釋放了?
Auto Scaling提供了健全狀態檢查功能,如果發現ECS執行個體或ECI執行個體未處於運行中狀態,則判定該ECS執行個體或ECI執行個體不健康。Auto Scaling會自動移出甚至釋放伸縮組內不健康的ECS執行個體或ECI執行個體,更多資訊,請參見伸縮組內執行個體的生命週期。
如果您的帳號欠費,伸縮組內所有後付費的ECS執行個體或ECI執行個體(包括隨用隨付執行個體和搶佔式執行個體)都會停機,Auto Scaling判定停機的ECS執行個體或ECI執行個體不健康,然後移出並釋放這些ECS執行個體或ECI執行個體。
請您確保帳號可用額度充足。欠費後伸縮組內ECS執行個體或ECI執行個體狀態變化,請參見到期或欠費說明。
停用伸縮組後,ECS執行個體或ECI執行個體還收費嗎?
伸縮組本身不收費,但是您需要為伸縮組內的ECS執行個體或ECI執行個體付費。停用伸縮組後,如果伸縮組內的ECS執行個體或ECI執行個體還存在,則需要繼續為ECS執行個體或ECI執行個體付費。
Auto Scaling支援自動調整資料盤嗎?
不支援。
Auto Scaling只支援自動增加或減少伸縮組內ECS執行個體或ECI執行個體的數量,不支援自動提升或降低單台ECS執行個體或ECI執行個體的資料盤數量、大小等配置。
Auto Scaling服務一定要搭配負載平衡、CloudMonitor、RDS才能使用嗎?
不是。
Auto Scaling是開放靈活的平台,您可以不搭配負載平衡、RDS、CloudMonitor,但是搭配這些產品可以增強Auto Scaling的服務能力。例如:
搭配負載平衡一起部署,更多資訊,請參見什麼是傳統型負載平衡CLB。
搭配雲資料庫RDS一起部署,更多資訊,請參見雲資料庫RDS簡介。
通過CloudMonitor觸發彈性擴張和收縮活動,更多資訊,請參見警示任務概述。
一個伸縮組最多可以添加多少台執行個體?
Auto Scaling相關的數量限制,更多資訊,請參見使用限制。
我能添加已經建立的執行個體嗎?
可以。
但待添加的ECS執行個體或ECI執行個體需要滿足以下條件:
ECS執行個體或ECI執行個體必須與伸縮組在同一個地區。更多資訊,請參見地區和可用性區域。
ECS執行個體或ECI執行個體必須處於運行中狀態,更多資訊,請參見執行個體的生命週期或ECI執行個體生命週期介紹。
ECS執行個體或ECI執行個體不能已添加到其他伸縮組中。
我能添加已經建立的訂用帳戶ECS執行個體嗎?
可以。
Auto Scaling支援自動建立隨用隨付或者搶佔式執行個體,同時支援添加已經建立的訂用帳戶和隨用隨付執行個體。
ECS執行個體或ECI執行個體是否可以加入到多個伸縮組中?
不可以。
同一個ECS執行個體或ECI執行個體只能屬於一個伸縮組。如果需要將某一個執行個體從一個伸縮組移動到另一個伸縮組,您需要先將該執行個體從原來的伸縮組中移出,然後再將其添加到新的伸縮組中。具體操作,請參見手動移出執行個體和手動添加執行個體至伸縮組。
我能控制如何移出執行個體嗎?
可以。
您可以為伸縮組配置移出策略,移出策略支援兩級篩選,可以自動篩選最早伸縮配置對應的執行個體、最早建立的執行個體或最新建立的執行個體,更多資訊,請參見建立伸縮組。
停用伸縮組後,會釋放已經自動添加到伸縮組的執行個體嗎?
不會。
在控制台或者調用介面停用伸縮組後,不會自動釋放伸縮組內的ECS執行個體或ECI數量。關於如何停用伸縮組,請參見停用伸縮組。
影響ECI類型伸縮組的擴容時延因素包括哪些?
ECI類型伸縮組的擴容時延的主要影響因素包括容器初始化時延、應用啟動時延、配置生命週期掛鈎時延、擴容容器註冊外部資源時延等。
ECI類型的伸縮組擴容時,擴容時間指伸縮組中ECI執行個體擴容時的整個生命週期過程所耗費的時間,關於ECI執行個體生命週期掛鈎的更多資訊,請參見生命週期掛鈎概述。
一個伸縮組可以添加多種規格的ECS執行個體嗎?
可以。
一個伸縮配置支援選擇多規格的ECS執行個體,使得彈性擴張的成功率更高,但存在添加數量上的限制。更多資訊,請參見使用限制。
在伸縮組內可以配置8核或者16核的ECS執行個體嗎?
可以。
如果當前可選執行個體規格不能滿足需求,您可以提交工單申請使用更多ECS執行個體規格。
使用Auto Scaling自動建立ECS執行個體時,如何指定資料盤的容量?
建立伸縮配置時,在儲存中指定資料盤的容量即可。具體操作,請參見建立伸縮配置(ECS執行個體)。
如果Auto Scaling動態調整ECS執行個體的數量,如何保證使用鏡像市場鏡像時能正常彈出ECS執行個體?
如果您需要彈出N台同類型的鏡像,您需要提前購買N個鏡像市場的鏡像。
鏡像市場鏡像是否支援批量購買?
暫不支援批量購買。
如果鏡像市場已不存在之前使用的鏡像,如何保證使用該鏡像正常彈出ECS執行個體?
建議您選擇鏡像市場中的其他可用鏡像。
伸縮組建立ECS執行個體時出現雲市場鏡像不可用報錯怎麼辦?
問題現象:伸縮組建立ECS執行個體時出現雲市場鏡像不可用,報錯資訊如下所示。
Fail to create Instance into scaling group("The specified image is from the image market. You have not bought it or your quota has been exceeded.").
問題原因:上述現象的可能原因是伸縮配置中雖選用了鏡像市場中的第三方鏡像,但您卻沒有購買該鏡像或者您的購買配額已經超過了限制。
解決方案:Auto Scaling服務不能自動建立鏡像市場中第三方鏡像的ECS執行個體,您需要先到雲市場購買第三方鏡像,購買成功後再回到Auto Scaling服務中建立該鏡像的ECS執行個體。
1個product code能否支援不同地區的鏡像?
支援,前提是該地區已經支援該商品鏡像。
購買了100個product code同樣值的鏡像,是否支援在所有的地區可用?
目前鏡像市場的鏡像已經具備地區屬性,請您購買需要使用的地區鏡像。
我能設定周期性定時任務嗎?
可以。更多資訊,請參見建立定時任務。
警示任務和定時任務之間有執行優先順序嗎?
警示任務和定時任務不會同時觸發,而且兩種任務間相互獨立,沒有相對優先順序。
如果警示任務失敗,但仍然滿足警示任務觸發條件,待當前伸縮活動結束後警示任務仍會被執行。
您可以為定時任務設定重試時間,避免被拒絕執行後無法再次觸發,具體操作,請參見建立定時任務。
Auto Scaling中的警示任務觸發條件有哪些?
警示任務可以關聯CPU使用率、記憶體使用量率、系統平均負載、內網出入流量等監控項統計資訊,自動增加或減少ECS執行個體或ECI執行個體。更多資訊,請參見系統監控警示任務。
如何設定警示任務觸發條件?
在使用警示任務之前,您需要確認ECS執行個體中已安裝新版本的CloudMonitorAgent。如未安裝CloudMonitorAgent,具體操作,請參見CloudMonitorJava版本外掛程式安裝。
建立警示任務時,您需要根據實際業務情況選擇使用的觸發條件。具體操作,請參見建立警示任務。
如何使用警示任務刪除通過Auto Scaling建立的執行個體?
Auto Scaling是否可以根據云監控中的自訂警示項進行動態伸縮?
可以。更多資訊,請參見自訂監控警示任務。
提交工單時,我需要提供哪些Auto Scaling資訊?
提交工單時,您可以提供伸縮組的活動ID(ScalingActivityId)或者相關日誌,便於快速排查。
查看伸縮活動的操作,請參見查看伸縮活動詳情。
為什麼伸縮組建立ECS執行個體時出現資源報錯?
如果彈出以下報錯,可能是因為ECS資源不足,建議您更換可用性區域再試。
Fail to create Instance into scaling group("The resource is out of usage.").
Fail to create Instance into scaling group("The specified region is in resource control, please try later.").
如何避免單一實例規格庫存不足導致擴容失敗?
建議您在建立伸縮組時設定多可用性區域(選擇不同可用性區域下的虛擬交換器即可),並在建立伸縮配置時選擇多執行個體規格,當某個ECS執行個體規格在某個可用性區域沒有庫存時,Auto Scaling服務會自動切換到有庫存的執行個體規格及可用性區域進行擴容。具體操作,請參見建立伸縮組和建立伸縮配置(ECS執行個體)。
伸縮組內ECS執行個體開啟了釋放保護,為什麼仍然被自動釋放了?
在Auto Scaling自動建立一台ECS執行個體後,如果您在ECS管理主控台的執行個體列表頁面或者調用API ModifyInstanceAttribute為ECS執行個體開啟了釋放保護,並不能阻止Auto Scaling自動釋放執行個體。
您可以將伸縮組內的ECS執行個體轉為保護狀態,避免被自動釋放,具體操作,請參見手動將執行個體轉為保護狀態。
如何保證手動添加的執行個體不會被移出伸縮組?
您可以將伸縮組內的ECS執行個體或ECI執行個體轉為保護狀態,避免被自動釋放,具體操作,請參見手動將執行個體轉為保護狀態。
伸縮組自動增加或者減少ECS執行個體後,Auto Scaling會自動從RDS執行個體或者Memcache執行個體的IP白名單中添加或者移除ECS執行個體嗎?
會從RDS執行個體的IP白名單中添加或者移除ECS執行個體,不會從Memcache執行個體的IP白名單中添加或者移除ECS執行個體。
怎樣阻止伸縮組內手動添加的執行個體被自動移除?
假設您需要保證100台手動添加的ECS執行個體或ECI執行個體不會被自動移出伸縮組,請做如下配置:
將最小執行個體數設定為大於等於100。
將一級移出原則設定為最早伸縮配置對應的執行個體。
由於您手動添加的ECS執行個體或ECI執行個體不是通過伸縮配置建立的,所以這些ECS執行個體或ECI執行個體不會遵循任何伸縮配置。伸縮組會優先挑選、移出並釋放自動建立的ECS執行個體或ECI執行個體,當伸縮組內自動建立的ECS執行個體或ECI執行個體被全部移除後,才會挑選、移除並保留您手動添加的ECS執行個體或ECI執行個體。
如果您想阻止伸縮組自動移除您手動添加的ECS執行個體或ECI執行個體,請不要停止ECS執行個體或ECI執行個體,否則Auto Scaling會認定該ECS執行個體或ECI執行個體不健康,並將不健康的ECS執行個體或ECI執行個體自動移出伸縮組。
從伸縮組內移出並釋放ECS執行個體後,ECS執行個體的資料會保留嗎?
不會。
Auto Scaling會自動釋放ECS執行個體,您需要確保伸縮組內的ECS執行個體沒有儲存應用的狀態資訊或者重要資料,例如,會話記錄(session)、資料庫和日誌等。如果您的應用需要儲存狀態資訊,建議將狀態資訊儲存到獨立的狀態伺服器(例如ECS)、資料庫(例如RDS)或者Log Service中。
如何刪除通過Auto Scaling建立的執行個體?
您可以在伸縮組的ECS執行個體或ECI執行個體列表中刪除自動建立的ECS執行個體或ECI執行個體,具體操作,請參見手動移出或刪除執行個體。
Auto Scaling自動建立多台ECS執行個體時,部分建立失敗時如何處理?
Auto Scaling會保持ECS執行個體級事務的完整性,而非伸縮活動級事務的完整性。您可以在控制台查看伸縮活動的完成情況,具體操作,請參見查看伸縮活動詳情。
例如,需要自動建立20台ECS執行個體,19台建立成功,1台建立失敗,則建立成功的19台ECS執行個體加入伸縮組,不會重新嘗試建立剩餘的1台ECS執行個體,伸縮活動完成,但是狀態顯示為警告。
Auto Scaling自動建立的執行個體如何查看密碼並進行登入?
由於伸縮配置不支援設定統一的自訂密碼,如果使用Linux作業系統,推薦您為伸縮配置指定SSH金鑰組。
如果您不使用SSH金鑰組登入執行個體,則需要在控制台重設密碼後(重啟後生效)才能登入。
Auto Scaling自動建立的ECS執行個體的密碼為什麼和我自訂鏡像中的密碼不一致?
建立ECS執行個體時,執行個體登入密碼不使用自訂鏡像中的密碼。為了保證安全性,推薦您為伸縮配置指定SSH金鑰組。
如果您不使用SSH金鑰組登入執行個體,則需要在控制台重設密碼後(重啟後生效)才能登入。
怎麼將資料同步到伸縮組內的ECS執行個體?
建立伸縮配置時,您可以通過ECS自訂鏡像模板來建立執行個體。在ECS執行個體運行過程中,如果需要做系統內部資料同步,建議您自訂安裝rsync進行同步。
為什麼彈出的執行個體中/etc/hosts新增的127.0.0.1被重設清除了?
如果您在修改/etc/hosts後建立自訂鏡像,通過該自訂鏡像自動建立ECS執行個體時,會還原到系統預設設定,所以會被清除。如果需要保留/etc/hosts設定,您可以嘗試在rc.local中添加相關指令碼代碼,檢測/etc/hosts中是否存在相關資訊,若不存在則自動添加。
伸縮組關聯Server Load Balancer執行個體有什麼作用?
Server Load Balancer執行個體可以根據轉寄策略將訪問流量分發至ECS執行個體,為伸縮組關聯Server Load Balancer執行個體有利於擴充應用的服務能力和增強應用的可用性。更多負載平衡介紹,請參見什麼是傳統型負載平衡CLB。
伸縮組如何使用Server Load Balancer執行個體?
如果建立伸縮組時關聯了Server Load Balancer執行個體,伸縮組會自動將加入伸縮組的Elastic Compute Service執行個體添加到該Server Load Balancer執行個體中。一台Server Load Balancer執行個體可以關聯至多個伸縮組,加入Server Load Balancer執行個體的ECS執行個體權重預設是50。更多負載平衡後端伺服器介紹,請參見在預設伺服器組添加和管理雲端服務器。
Auto Scaling建立ECS執行個體後,新執行個體會自動加入到Server Load Balancer執行個體嗎?
會,但是您需要預先為伸縮組關聯Server Load Balancer執行個體。
Auto Scaling新建立的執行個體是否可以添加至多台Server Load Balancer執行個體?
可以。
伸縮組支援關聯多台Server Load Balancer執行個體,但存在上限,更多資訊,請參見使用限制。
我可以修改伸縮組內執行個體在Server Load Balancer執行個體中的權重嗎?
可以。具體操作,請參見在預設伺服器組添加和管理雲端服務器。
Server Load Balancer執行個體中後端伺服器的權重分配按比例計算,而非數字。假設您有兩台ECS執行個體,50和50的權重效果100和100是一致的,比例均為1:1。一般情況下,Auto Scaling組後端ECS執行個體所承載的業務和ECS執行個體的規格應該都是一樣的。Auto Scaling服務中配置的負載平衡預設設定ECS執行個體權重均為50。
我的Server Load Balancer執行個體為公網類型,建立伸縮配置時ECS執行個體是否需要配置公網頻寬?
ECS執行個體可以不配置公網頻寬。但為了方便管理ECS執行個體,建議您在建立伸縮配置時選擇至少1 Mbit/s公網頻寬。
為什麼建立伸縮組時出現Server Load Balancer執行個體健全狀態檢查報錯?
如果彈出以下報錯,說明該Server Load Balancer執行個體未開啟健全狀態檢查。
The current health check type of load balancer "xxxx" does not support this action.
關聯至伸縮組的Server Load Balancer執行個體必須已經開啟健全狀態檢查,具體操作,請參見配置和管理CLB健全狀態檢查。
如何判斷新建立的ECS執行個體可用於處理訪問流量?
如果Auto Scaling在伸縮組裡配置了負載平衡,負載平衡檢查您後端的ECS連接埠正常之後,才會將請求轉寄給新的執行個體。
為什麼負載平衡的7層HTTP監聽逾時超過60秒?
問題現象:負載平衡響應HTTP轉寄請求時,單次HTTP監聽的逾時時間大約為60秒。然而,當Server Load Balancer執行個體上配置了多台ECS執行個體時,ECS執行個體配置的逾時時間都大於60秒,或者直接返回504錯誤。
問題原因:負載平衡的HTTP監聽逾時時間是保證請求在允許的時間內能返回的最後一條防線,總逾時時間與配置的ECS執行個體數量有關。
例如,在Server Load Balancer執行個體上配置了多台ECS執行個體時,如果第一台ECS執行個體訪問逾時,會自動輪詢第二台ECS執行個體,如果第二台ECS執行個體仍然逾時,則輪詢第三台ECS執行個體,直至所有ECS執行個體輪詢完畢。假設一台Server Load Balancer執行個體上配置了3台ECS執行個體,則實際發生的HTTP請求逾時時間會變成大約180秒。另外,不排除其他服務會限制負載平衡逾時時間設定。
解決方案:建議您避免依賴負載平衡監聽逾時設定,而是直接在ECS執行個體部署的應用上設定監聽逾時時間。
伸縮組關聯RDS執行個體有什麼作用?
RDS是一種穩定可靠、可Auto Scaling的線上資料庫服務,為伸縮組關聯RDS執行個體可以增強資料的安全性和可靠性,根據自訂的備份策略防止資料丟失和誤刪除。關於RDS的更多資訊,請參見雲資料庫RDS簡介。
伸縮組如何使用RDS執行個體?
如果建立伸縮組時添加了RDS執行個體,ECS執行個體加入伸縮組後,伸縮組會自動將該ECS執行個體的內網IP添加到RDS執行個體的訪問白名單中,允許ECS執行個體內網通訊。伸縮組支援關聯多台RDS執行個體。更多RDS執行個體白名單資訊,請參見通過用戶端、命令列串連RDS MySQL執行個體。