執行個體建立失敗事件
本文介紹執行個體的建立失敗事件以及如何提高您ECS建立成功率。
什麼是建立失敗
在調用RunInstances建立執行個體過程中,ECS庫存和交換器(vSwitch)中私網IP的數量是動態變化的,當資源數量不足以完成當前執行個體建立時,系統會盡量重試將執行個體建立成功。但在極端情況下該執行個體無法建立成功,會等待系統自動回收(釋放)。當阿里雲識別到ECS執行個體建立失敗時,立即發送一個執行個體建立失敗事件(SystemFailure.Delete)。執行個體建立失敗事件的處理過程是完全自動的,該系統事件會自動將當前建立失敗的執行個體釋放。已經支付完成的訂單,在執行個體釋放後會收到相應的退款(隨用隨付執行個體在建立期間不會收費)。
在建立執行個體過程中收到SystemFailure.Delete事件,有以下兩種處理方式:
等待系統自動釋放建立失敗的執行個體,通常在建立失敗5分鐘內自動釋放。
手動釋放執行個體,此類執行個體不會建立成功,最終會被釋放。
查看建立失敗事件
通過阿里雲CLI調用查詢指定執行個體系統事件資訊查看是否存在執行個體建立失敗事件。
以下樣本表示查詢歷史所有執行中(Executing)和已執行(Executed)的建立失敗事件,通過設定EventPublishTime.Start和EventPublishTime.End參數可以查看指定時間範圍內的事件。
aliyun ecs DescribeInstanceHistoryEvents --InstanceEventCycleStatus.1 Executing --InstanceEventCycleStatus.2 Executed --EventType SystemFailure.Delete查詢執行個體詳細資料介面(DescribeInstances)和查詢指定執行個體系統事件資訊介面(DescribeInstanceHistoryEvents)中不同狀態的關係如下所示:
狀態 | 執行個體查詢介面執行個體狀態 | 事件介面中執行個體狀態 |
執行個體建立中 | 建立中或啟動中 | 無事件 |
執行個體建立失敗待回收 | 已停止 | SystemFailure.Delete事件的Executing狀態 |
待回收執行個體手動釋放 | 無法查到該執行個體 | SystemFailure.Delete事件的Avoided狀態 |
執行個體建立失敗已回收 | 無法查到該執行個體 | SystemFailure.Delete事件的Executed狀態 |
提高執行個體建立成功率
建立執行個體(RunInstances)後可以監控執行個體的建立過程:
如果執行個體都達到運行中狀態,則本批執行個體建立完成。
如果有部分執行個體處於停止或建立中狀態(建立失敗執行個體會在5分鐘內被釋放),則可以通過調用查詢指定執行個體系統事件資訊來確認執行個體是否建立失敗。
如果發生執行個體建立失敗,可以通過DescribeAvailableResource介面來確認是否由於資源不足或交換器(vSwitch)中沒有足夠的私網IP。
為提高執行個體建立成功率,建議您:
在建立執行個體前查詢目標地區和可用性區域下的ECS執行個體供應情況、虛擬交換器中的私網IP數量,例如調用DescribeAvailableResource查詢。
使用彈性供應,通過擴大資源集區更靈活地交付執行個體。更多資訊,請參見彈性供應概述。
使用彈性保障,提前以私人池的方式預留屬性相匹配的資源。更多資訊,請參見彈性保障概述。