終止您的執行個體
當您不再需要執行個體時,可以將它刪除。這就是終止您的執行個體。執行個體的狀態變更為 shutting-down
或 terminated
時刻起,該執行個體便停止收取費用。
執行個體終止後,您將無法連接或啟動該執行個體。然而,您可使用相同 AMI 來啟動其他執行個體。若您希望停止執行個體並啟動,或讓其進入休眠,請參閱停止和啟動執行個體或讓您的隨需執行個體或 Spot 執行個體休眠。如需詳細資訊,請參閱 重新啟動、停止、休眠和終止之間的差異。
內容
執行個體終止
終止執行個體後,仍會短暫顯示於主控台,之後該項目會自動刪除。您無法自行刪除已終止執行個體的項目。執行個體終止後,諸如標籤和磁碟區等資源會逐漸與該執行個體取消關聯,而且過一段時間後,將不再顯示於該已終止的執行個體。
執行個體終止時,與該執行個體建立關聯的執行個體存放區磁碟區上之資料,將被刪除。
根據預設,執行個體終止時,Amazon EBS 根設備磁碟區將自動被刪除。然而,您於啟動時連接的其他 EBS 磁碟區或您連接至現有執行個體的 EBS 磁碟區,預設都將保留,即使該執行個體已刪除。此行為由磁碟區的 DeleteOnTermination
屬性所控制,您可對其加以修改。如需詳細資訊,請參閱 在執行個體終止時保留 Amazon EBS 磁碟區。
您可使用 AWS Management Console、CLI 和 API 來避免執行個體意外被其他人終止。此功能適用 Amazon EC2 執行個體後端與 Amazon EBS 後端執行個體。每一執行個體均具備預設值為 false
的 DisableApiTermination
屬性 (該執行個體可透過 Amazon EC2 終止)。您可在執行個體運作或停止時修改此執行個體屬性 (適用 Amazon EBS 後端執行個體)。如需詳細資訊,請參閱 啟用終止保護。
使用作業系統命令進行系統關機時,若是由執行個體啟動此關機,您可控制是否停止或終止該執行個體。如需詳細資訊,請參閱 變更執行個體啟動的關機行為。
如果您在執行個體終止時執行指令碼,則執行個體可能會發生異常終止,因為我們無法確保關閉指令碼執行。Amazon EC2 會嘗試完全關閉執行個體,並執行任何系統關閉指令碼;不過,某些事件 (例如硬體故障) 可能會使這些系統關閉指令碼無法執行。
透過跨可用區域的終止保護來終止多個執行個體
如果您在多個可用區域中終止多個執行個體,並啟用一個或多個指定的執行個體以進行終止保護,則要求會失敗,並顯示下列結果:
-
不會終止與受保護執行個體位於相同可用區域中的指定執行個體。
-
位於不同可用區域中的指定執行個體 (其中沒有其他指定執行個體受到保護) 會成功終止。
例如,假設您有下列執行個體:
執行個體 | 可用區域 | 終止保護 |
---|---|---|
執行個體 A | us-east-1a |
Disabled |
執行個體 B | Disabled |
|
執行個體 C | us-east-1b |
Enabled |
執行個體 D | Disabled |
如果您嘗試在同一個請求中終止所有這些執行個體,請求會報告失敗,結果如下:
-
執行個體 A 和執行個體 B 已成功終止,因為沒有啟用
us-east-1a
中的任何指定執行個體進行終止保護。 -
執行個體 C 和執行個體 D 無法終止,因為已啟用
us-east-1b
(執行個體 C) 中的至少一個指定執行個體進行終止保護。
若您終止執行個體會如何
若使用 terminate-instances
命令來終止 EC2 執行個體,會在 OS 層級註冊下列作業:
-
API 請求會傳送按下按鈕事件給訪客。
-
各種系統服務會因為按下按鈕事件而停止。systemd 會處理系統的順利關機。順利關機由從虛擬化管理程序按下 ACPI 關機按鈕事件觸發。
-
系統將會啟動 ACPI 關機。
-
當順利關機程序結束時,執行個體就會關機。OS 關機時間無法設定。
終止執行個體
您可使用 AWS Management Console 或命令列來終止執行個體。
根據預設,從 Amazon EBS 後端執行個體起始關閉動作時 (使用 shutdown 或 poweroff 命令),該執行個體會停止。您可以變更預設的關機行為,以讓執行個體終止。halt 命令不會啟動關機。如果使用,則執行個體不會終止;而是會將 CPU 放入 HLT
,而且執行個體仍會繼續執行。
若要執行受控的錯誤注入實驗
您可以使用 AWS Fault Injection Service,測試您應用程式在執行個體終止時的回應方式。如需詳細資訊,請參閱《AWS Fault Injection Service 使用者指南》。
啟用終止保護
您預設可使用 Amazon EC2 主控台、命令列介面或 API 來終止執行個體。若要避免使用 Amazon EC2 意外終止執行個體,您可啟用執行個體的終止保護。DisableApiTermination
屬性可控制執行個體是否可使用主控台、CLI 或 API 來終止。您執行個體的終止保護預設為停用。您可在執行個體啟動時、運作中或停止時,設定此屬性值 (適用 Amazon EBS 後端執行個體)。
若已設定 DisableApiTermination
屬性,則 InstanceInitiatedShutdownBehavior
屬性不會讓您無法從執行個體啟動關機 (使用作業系統命令進行系統關機) 來終止該執行個體。如需詳細資訊,請參閱 變更執行個體啟動的關機行為。
限制
您無法啟用 Spot 執行個體的終止保護 - 只要 Spot 價格超過您願意為 Spot 執行個體支付的價格,Spot 執行個體將會終止。然而,您可讓應用程式做好準備,以處理 Spot 執行個體中斷。如需詳細資訊,請參閱 Spot 執行個體中斷。
DisableApiTermination
屬性不會讓 Amazon EC2 Auto Scaling 無法終止執行個體。以 Auto Scaling 群組內的執行個體而言,請使用下列 Amazon EC2 Auto Scaling 功能,而不要使用 Amazon EC2 的終止保護:
-
欲避免 Auto Scaling 群組內的執行個體在縮減時遭到終止,請使用執行個體縮減保護。如需詳細資訊,請參閱 Amazon EC2 Auto Scaling 使用者指南中的使用執行個體縮減保護。
-
欲避免 Amazon EC2 Auto Scaling 終止運作狀態不佳的執行個體,請暫停
ReplaceUnhealthy
程序。如需詳細資訊,請參閱Amazon EC2 Auto Scaling 使用者指南中的暫停及繼續擴展程序。 -
欲指定 Amazon EC2 Auto Scaling 應先終止的執行個體,請選擇終止政策。如需詳細資訊,請參閱《Amazon EC2 Auto Scaling 使用者指南》 中的自訂終止政策。
欲在執行個體啟動時啟用終止保護
在 https://console.aws.amazon.com/ec2/
開啟 Amazon EC2 主控台。 -
在儀表板中,選擇 Launch Instance (啟動執行個體),然後依據精靈的說明執行。
-
在 Configure Instance Details (設定執行個體詳細資訊) 頁面選取 Enable termination protection (啟用終止保護) 核取方塊。
欲在執行個體運作中或停止時啟用終止保護
-
選取執行個體,然後選取 Actions (動作)、Instance Settings (執行個體設定)、Change Termination Protection (變更終止保護)。
-
選擇 Yes, Enable (是,啟用)。
欲在執行個體運作中或停止時停用終止保護
-
選取執行個體,然後選取 Actions (動作)、Instance Settings (執行個體設定)、Change Termination Protection (變更終止保護)。
-
選擇 Yes, Disable (是,停用)。
欲使用命令列啟用或停用終止保護
您可以使用下列其中一個命令。如需有關這些命令列介面的詳細資訊,請參閱存取 Amazon EC2。
modify-instance-attribute (AWS CLI)
Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)
變更執行個體啟動的關機行為
根據預設,從 Amazon EBS 後端執行個體起始關閉動作時 (使用 shutdown 或 poweroff 等命令),該執行個體會停止。您可變更此行為,來讓執行個體終止,而無需變更執行個體的 InstanceInitiatedShutdownBehavior
屬性。您可在執行個體運作中或停止時,變更此屬性。(請注意,halt 不會發出 poweroff 命令,使用時執行個體並不會關機;反而會將 CPU 放入 HLT
當中,而執行個體仍在執行中。)
InstanceInitiatedShutdownBehavior
屬性僅適用從執行個體的作業系統執行關機,不適用使用 StopInstances
API 或 Amazon EC2 主控台來停止執行個體。
您可使用 Amazon EC2 主控台或命令列來變更 InstanceInitiatedShutdownBehavior
屬性。
在執行個體終止時保留 Amazon EBS 磁碟區
執行個體終止時,Amazon EC2 會針對每一連接的 Amazon EBS 磁碟區,使用 DeleteOnTermination
屬性的值,以判定是否保留或刪除該磁碟區。
DeleteOnTermination
屬性的預設值會根據磁碟區是執行個體的根磁碟區,還是連接至執行個體的非根磁碟區而有所不同。
- Root volume (根磁碟區)
-
執行個體根磁碟區的
DeleteOnTermination
屬性預設設定為true
。因此,執行個體終止時,預設會刪除執行個體的根磁碟區。AMI 建立者及執行個體的啟動者可以設定DeleteOnTermination
屬性。當 AMI 建立者或執行個體的啟動者建立此屬性時,新設定會覆寫原始 AMI 預設設定。使用 AMI 啟動執行個體後,建議您驗證DeleteOnTermination
屬性的預設設定。 - 非根磁碟區
-
根據預設,當您將非根 EBS 磁碟區連接至執行個體,其
DeleteOnTermination
屬性會設為false
。因此,預設會保留這些磁碟區。執行個體終止後,您可拍攝已保留磁碟區的快照,並將其連接到另一個執行個體。您必須刪除磁碟區以免日後產生費用。如需詳細資訊,請參閱 刪除 Amazon EBS 磁碟區。
欲確認正在使用的 EBS 磁碟區之 DeleteOnTermination
屬性值,請查看該執行個體的區塊型設備映射。如需詳細資訊,請參閱 檢視執行個體區塊型儲存裝置對應的 EBS 磁碟區。
執行個體啟動或運作時,您可變更磁碟區 DeleteOnTermination
屬性的值。
使用主控台在啟動時將根磁碟區變更為保留
啟動執行個體時,您可以使用主控台變更 DeleteOnTermination
屬性。若要變更運作中執行個體的這項屬性,您必須使用命令列。
欲使用主控台在啟動時將執行個體的根磁碟區變更為保留
-
在 https://console.aws.amazon.com/ec2/
開啟 Amazon EC2 主控台。 -
請在主控台儀表板選取 Launch Instance (啟動執行個體)。
-
在 Choose an Amazon Machine Image (AMI) (選取 Amazon Machine Image (AMI)) 頁面中選取 AMI,然後選取 Select (選取)。
-
遵循精靈的指示,來完成 Choose an Instance Type (選擇執行個體類型) 和 Configure Instance Details (設定執行個體的詳細資訊) 頁面上的操作。
-
在 Add Storage (新增儲存) 頁面上,取消勾選根磁碟區的 Delete On Termination (在終止時刪除) 核取方塊。
-
完成剩餘的精靈頁面,然後選擇 Launch (啟動)。
使用新版主控台時,您可在執行個體的詳細資訊窗格中,檢視根設備磁碟區的詳細資訊,藉此確認設定。在 Storage (儲存) 索引標籤上的 Block devices (區塊型儲存設備) 之下,向右捲動以檢視磁碟區的 Delete on termination (在終止時刪除) 設定。Delete on termination (在終止時刪除) 預設為 Yes
。如果變更預設行為,Delete on termination (在終止時刪除) 將為 No
。
使用舊版主控台時,您可在執行個體的詳細資訊窗格中檢視根設備磁碟區的詳細資訊,藉此確認設定。在 Block devices (區塊型設備) 旁,選擇根設備磁碟區的項目。Delete on termination (在終止時刪除) 預設為 True
。如果變更預設行為,Delete on termination (在終止時刪除) 將為 False
。
使用命令列在啟動時將根磁碟區變更為保留
啟動 EBS 後端執行個體時,您可使用下列命令之一將根設備磁碟區變更為保留。如需關於這些命令列介面的詳細資訊,請參閱 存取 Amazon EC2。
run-instances (AWS CLI)
New-EC2Instance (AWS Tools for Windows PowerShell)
在您要保留的磁碟區的區塊型裝置映射中,包括 --DeleteOnTermination
,並指定 false
。
例如,若要保留磁碟區,將下列選項新增至 run-instances
命令:
--block-device-mappings file://mapping.json
在 mapping.json
中,指定裝置名稱,例如 /dev/sda1
或者 /dev/xvda
,針對 --DeleteOnTermination
,指定 false
。
[ { "DeviceName": "
device_name
", "Ebs": { "DeleteOnTermination": false } } ]
使用命令列將執行中執行個體的根磁碟區變更為保留
您可使用下列命令之一,將運作中 EBS 後端執行個體的根設備磁碟區變更為保留。如需關於這些命令列介面的詳細資訊,請參閱 存取 Amazon EC2。
modify-instance-attribute (AWS CLI)
Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)
例如,使用下列命令:
aws ec2 modify-instance-attribute --instance-id
i-1234567890abcdef0
--block-device-mappings file://mapping.json
在 mapping.json
中,指定裝置名稱,例如 /dev/sda1
或者 /dev/xvda
,針對 --DeleteOnTermination
,指定 false
。
[ { "DeviceName": "
device_name
", "Ebs": { "DeleteOnTermination": false } } ]
對執行個體終止進行故障診斷
如果終止您的執行個體,並啟動另一個執行個體,很可能您已經透過像 EC2 Fleet 或 Amazon EC2 Auto Scaling 這樣的功能來設定自動擴展。
若您的執行個體處於 shutting-down
狀態的時間過長,應該會由 Amazon EC2 服務內的自動化程序清理 (終止)。如需詳細資訊,請參閱 延遲的執行個體終止。