我的 AWS實例啟用失敗,應該怎麼做?
EC2 是 AWS 上最常被使用的服務之一,有時在創建實例會出現報錯,導致實例無法正常被啟動或創建,以下是幾個常見的情況:
- 區域資源調配中暫時無法創建實例
- 創建的實例超過帳號預設資源上限
- 實例創建後,控制台上顯示待處理(pending)
- 創建實例許可權不足
區域資源調配中暫時無法創建實例
創建實例完成時,有時會出現 Launch Failed 報錯,仔細一看會發現上面的說明寫著 ”We currently do not have sufficient capacity in the Availability Zone you requested. Our system will be working on provisioning additional capacity..."
意即,目前在這個區域(Region)內的某個可用區(AZ)內資源不足,因此無法創建您指定的實例資源,這時建議耐心地等幾分鐘,讓該區域的資源進行重整配置,再重新點擊 Retry Failed Tasks 讓系統進行實例創建。
創建的實例超過帳號預設資源上限
當您嘗試啟動新的實例時出現了 ”InstanceLimitExceeded: Your quota allows for 0 more running instance(s).” 的報錯。這代表這組 AWS 帳號內這個區域的資源已經到達了預設上限。為了避免資源被濫用,AWS 每個帳號皆會預設每個區域的每個資源都會有對應的配額限制。當然,如果在使用上需要提高配額,可以在控制台內申請提高配額,具體做法可參考我們先前的文章:主動追蹤AWS 「資源用量」,避免配額用盡造成任務失敗。
實例創建後,控制台上顯示待處理(pending)
在成功創建實例後,控制台上的實例的狀態卻一直顯示待處理,這個時候無須緊張,只要多等待一下, AWS 會寄發以下的信件給主帳號的信箱,信件內文會顯示
”You recently request an AWS service that required additional validation. Your request has now been validated for AWS … region(s)….”
收到這封信件的時候,原則上不需要做任何動作,只要刷新控制台的頁面,頁面上的實例狀態應該就會顯示運行中(running),代表實例已經正常運行。
創建實例許可權不足
假設您使用 IAM User 登入後嘗試啟動新的執行個體時,發生 "errorMessage: You are not authorized to perform this operation." 錯誤,並且啟動失敗。
那麼很有可能是這組 IAM User 沒有創建實例的權限,建議先回到 IAM 的頁面進行確認,是否有以下權限:
- ec2:RunInstances(注意是否有” * “以確保有權限可以開立機器)
- iam:PassRole 與資源符合角色 ARN
如果沒有上述權限,必須新增 IAM的權限或調整該 IAM User關聯的政策,才能夠正常創建實例。
假設給予對應權限後,仍然無法成功創建實例,就需要再試圖解碼錯誤訊息中提及政策中缺少的許可,詳細的內容可以參考這篇文章: 在 EC2 執行個體啟動期間收到 "UnauthorizedOperation" 錯誤後如何解碼授權失敗訊息?
總結
以上幾個情況是過往經驗上較常遇到 AWS 實例創建失敗原因,但並不代表創建失敗只會有上述的可能,建議如果真的在創建實例時報錯,仍要依照實際顯示報錯的代碼,判斷可能是哪類的問題,才會比較好抽絲剝繭進一步排查問題。
參考:
https://repost.aws/knowledge-center/ec2-insufficient-capacity-errors
https://repost.aws/zh-Hans/knowledge-center/ec2-launch-issue
https://repost.aws/knowledge-center/ec2-not-auth-launch
https://www.digicentre.com.tw/industry_detail?id=109