本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
解決 Amazon EC2 執行個體啟動問題
以下是可協助您解決啟動 Amazon EC2 執行個體時問題的疑難排解秘訣。
啟動問題
無效裝置名稱
描述
當您嘗試啟動新的執行個體時,發生 Invalid device name
錯誤。device_name
原因
如果您在嘗試啟動執行個體時收到此錯誤,表示在請求中為一個或多個磁碟區指定的裝置名稱具有無效的裝置名稱。可能的原因包括:
-
選取的裝置可能正在使用該裝置名稱AMI。
-
裝置名稱可能會保留給根磁碟區。
-
裝置名稱可能會用於請求中的其他磁碟區。
-
裝置名稱可能對作業系統無效。
解決方案
要解決問題:
超過執行個體限制
描述
當您嘗試啟動新的執行個體或重新啟動已停止的執行個體時,發生 InstanceLimitExceeded
錯誤。
原因
當您嘗試啓動新的執行個體或重新啟動已停止的執行個體時,如果發生 InstanceLimitExceeded
錯誤,就表示已達到您在區域中可啟動的執行個體數目限制。建立 AWS 帳戶時,我們會針對每個區域可執行的執行個體數量設定預設限制。
解決方案
您可以要求提高每一區域的執行個體限制。如需詳細資訊,請參閱 Amazon EC2 服務配額。
執行個體容量不足
描述
當您嘗試啟動新的執行個體或重新啟動已停止的執行個體時,發生 InsufficientInstanceCapacity
錯誤。
原因
當您嘗試啓動執行個體或重新啟動已停止的執行個體時,如果發生此錯誤,就表示 AWS 目前可用的隨需容量不足,無法滿足您的請求。
解決方案
若要解決問題,請嘗試下列方法:
-
等候幾分鐘,然後再次提交您的請求;容量會頻繁轉移。
-
以降低的執行個體數提交新請求。例如,如果您要提出一次啟動 15 個執行個體的請求,請改嘗試提出 3 個啟動 5 個執行個體的請求,或 15 個啟動 1 個執行個體的請求。
-
如果啟動執行個體,請提交新的請求,而不要指定可用區域。
-
如果啟動執行個體,請使用不同的執行個體類型 (您可以在後面的階段調整大小) 來提交新的請求。如需詳細資訊,請參閱 Amazon EC2執行個體類型變更。
-
如果透過叢集置放群組來啟動執行個體,可能會出現容量不足的錯誤。
目前並不支援要求的組態。請查看文件以了解支援的組態。
描述
當您嘗試啟動新的執行個體時,由於不支援執行個體組態,因此發生 Unsupported
錯誤。
原因
錯誤訊息會提供其他詳細資訊。例如,指定的區域或可用區域可能不支援執行個體類型或執行個體購買選項。
解決方案
請嘗試不同的執行個體組態。若要搜尋符合您需求的執行個體類型,請參閱 尋找 Amazon 執行個EC2體類型。
立刻終止執行個體
描述
您的執行個體會從 pending
狀態進入 terminated
狀態。
原因
下列是執行個體為什麼可能會立即終止的幾個原因:
-
你已超出音EBS量限制。如需詳細資訊,請參閱Amazon EC2執行個體的 Amazon EBS磁碟區限制。
-
EBS快照已損毀。
-
根EBS磁碟區已加密,您沒有存取要解密的KMS金鑰的權限。
-
在為的區塊裝置對應中指定的快照AMI已加密,您沒有存取要解密的KMS金鑰的權限,或者您無權存取加密還原磁碟區的KMS金鑰。
-
您用來啟動執行個體AMI的執行個體存放區支援缺少必要的部分 (image.part. xx 檔案)。
如需詳細資訊,請使用下列其中一種方法來查明終止原因。
使用 Amazon EC2 控制台獲取終止原因
在打開 Amazon EC2 控制台https://console.aws.amazon.com/ec2/
。 -
在導覽窗格中,選擇 Instances (執行個體),然後選取該執行個體。
-
在第一個索引標籤上,找出狀態轉換原因旁的原因。
若要取得終止原因,請使用 AWS Command Line Interface
-
使用 describe-instances 命令並指定執行個體 ID。
aws ec2 describe-instances --instance-id
instance_id
-
檢閱指令傳JSON回的回應,並記下回
StateReason
應元素中的值。下列程式碼區塊顯示
StateReason
回應元素的範例。"StateReason": { "Message": "Client.VolumeLimitExceeded: Volume limit exceeded", "Code": "Server.InternalError" },
要獲取終止原因 AWS CloudTrail
如需詳細資訊,請參閱AWS CloudTrail 使用指南中的檢視具有 CloudTrail 事件歷程記錄的事件。
解決方案
根據終止原因,採取下列其中一項動作:
-
Client.VolumeLimitExceeded: Volume limit exceeded
— 刪除未使用的磁碟區。您可以提交申請來增加磁碟區容量上限。 -
Client.InternalError: Client error on launch
— 確定您具有存取 AWS KMS keys 用於解密和加密磁碟區的所需權限。如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的 在 AWS KMS中使用金鑰政策。
許可不足
描述
當您嘗試啟動新的執行個體時發生 "
錯誤,並且啟動失敗。errorMessage
": "You are not authorized to
perform this operation."
原因
如果您在嘗試啟動執行個體時看到這個錯誤,表示您沒有啟動執行個體的必要IAM權限。
可能缺少的許可包括:
-
ec2:RunInstances
-
iam:PassRole
可能還缺少其他許可。如需啟動執行個體所需的權限清單,請參閱範例:使用EC2啟動執行個體精靈和下方的範例IAM政策啟動執行個體 (RunInstances)。
解決方案
要解決問題:
-
如果您以IAM使用者身分提出要求,請確認您具有下列權限:
-
ec2:RunInstances
使用萬用字元資源 (「*」) -
iam:PassRole
使用符合角色的資源 ARN (例如,arn:aws:iam::999999999999:role/ExampleRoleName
)
-
-
如果您沒有先前的權限,請編輯與IAM角色或使用者相關聯的IAM原則,以新增缺少的必要權限。
如果您的問題尚未解決,且繼續收到啟動失敗錯誤,可以解碼錯誤中包含的授權失敗訊息。解碼的訊息包含原則中遺失的IAM權限。如需詳細資訊,請參閱如何在EC2執行個體啟動期間收到「UnauthorizedOperation」錯誤後解碼授權失敗訊息?
Windows 啟動後不久CPU使用率高 (僅適用於 Windows 執行個體)
注意
此疑難排解提示僅適用於 Windows 執行個體。
如果 Windows Update 設置為檢查更新,但讓我選擇是否下載並安裝它們(默認實例設置),則此檢查可以消耗實例CPU上 50-99% 的任何位置。如果此CPU消耗導致應用程式發生問題,您可以在控制台中手動變更 Windows Update 設定,或者您可以在 Amazon 使用EC2者資料欄位中使用下列指令碼:
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v AUOptions /t REG_DWORD /d
3
/f net stop wuauserv net start wuauserv
當您執行此指令碼時,請指定 /d 的值。預設值為 3。可能的值包括以下:
-
絕不檢查更新
-
檢查是否有更新,但讓我選擇是否下載並安裝
-
下載更新,但讓我選擇是否安裝
-
自動安裝更新
您修改執行個體的使用者資料之後,就可以執行它。如需詳細資訊,請參閱啟動時在 Windows 執行個體上執行命令。