終止您的執行個體 - Amazon Elastic Compute Cloud

終止您的執行個體

當您不再需要執行個體時,可以將它刪除。這就是終止您的執行個體。執行個體的狀態變更為 shutting-downterminated 時刻起,該執行個體便停止收取費用。

執行個體終止後,您將無法連接或啟動該執行個體。然而,您可使用相同 AMI 來啟動其他執行個體。若您希望停止執行個體並啟動,或讓其進入休眠,請參閱停止和啟動執行個體讓您的隨需執行個體或 Spot 執行個體休眠。如需詳細資訊,請參閱 重新啟動、停止、休眠和終止之間的差異

執行個體終止

終止執行個體後,仍會短暫顯示於主控台,之後該項目會自動刪除。您無法自行刪除已終止執行個體的項目。執行個體終止後,諸如標籤和磁碟區等資源會逐漸與該執行個體取消關聯,而且過一段時間後,將不再顯示於該已終止的執行個體。

執行個體終止時,與該執行個體建立關聯的執行個體存放區磁碟區上之資料,將被刪除。

根據預設,執行個體終止時,Amazon EBS 根設備磁碟區將自動被刪除。然而,您於啟動時連接的其他 EBS 磁碟區或您連接至現有執行個體的 EBS 磁碟區,預設都將保留,即使該執行個體已刪除。此行為由磁碟區的 DeleteOnTermination 屬性所控制,您可對其加以修改。如需詳細資訊,請參閱 在執行個體終止時保留 Amazon EBS 磁碟區

您可使用 AWS Management Console、CLI 和 API 來避免執行個體意外被其他人終止。此功能適用 Amazon EC2 執行個體後端與 Amazon EBS 後端執行個體。每一執行個體均具備預設值為 falseDisableApiTermination 屬性 (該執行個體可透過 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 後端執行個體起始關閉動作時 (使用 shutdownpoweroff 命令),該執行個體會停止。您可以變更預設的關機行為,以讓執行個體終止。halt 命令不會啟動關機。如果使用,則執行個體不會終止;而是會將 CPU 放入 HLT,而且執行個體仍會繼續執行。

Console
終止執行個體
  1. 終止執行個體前,請檢查您的 Amazon EBS 磁碟區不會在終止時被刪除,並確認已將執行個體存放區磁碟區上的所需資料複製到持久性儲存 (例如 Amazon EBS 或 Amazon S3),藉此確認您不會遺失任何資料。

  2. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  3. 在導覽窗格中,選擇 Instances (執行個體)。

  4. 選取執行個體,並選取 Instance state (執行個體狀態)、Terminate instance (終止執行個體)。

  5. 出現確認提示時,請選擇 Terminate (終止)

Command line
終止執行個體

您可以使用下列其中一個命令。如需關於這些命令列介面的詳細資訊,請參閱 存取 Amazon EC2

若要執行受控的錯誤注入實驗

您可以使用 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 使用者指南》 中的自訂終止政策

欲在執行個體啟動時啟用終止保護
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在儀表板中,選擇 Launch Instance (啟動執行個體),然後依據精靈的說明執行。

  3. Configure Instance Details (設定執行個體詳細資訊) 頁面選取 Enable termination protection (啟用終止保護) 核取方塊。

欲在執行個體運作中或停止時啟用終止保護
  1. 選取執行個體,然後選取 Actions (動作)Instance Settings (執行個體設定)Change Termination Protection (變更終止保護)

  2. 選擇 Yes, Enable (是,啟用)

欲在執行個體運作中或停止時停用終止保護
  1. 選取執行個體,然後選取 Actions (動作)Instance Settings (執行個體設定)Change Termination Protection (變更終止保護)

  2. 選擇 Yes, Disable (是,停用)

欲使用命令列啟用或停用終止保護

您可以使用下列其中一個命令。如需有關這些命令列介面的詳細資訊,請參閱存取 Amazon EC2

變更執行個體啟動的關機行為

根據預設,從 Amazon EBS 後端執行個體起始關閉動作時 (使用 shutdownpoweroff 等命令),該執行個體會停止。您可變更此行為,來讓執行個體終止,而無需變更執行個體的 InstanceInitiatedShutdownBehavior 屬性。您可在執行個體運作中或停止時,變更此屬性。(請注意,halt 不會發出 poweroff 命令,使用時執行個體並不會關機;反而會將 CPU 放入 HLT 當中,而執行個體仍在執行中。)

InstanceInitiatedShutdownBehavior 屬性僅適用從執行個體的作業系統執行關機,不適用使用 StopInstances API 或 Amazon EC2 主控台來停止執行個體。

您可使用 Amazon EC2 主控台或命令列來變更 InstanceInitiatedShutdownBehavior 屬性。

Console
變更執行個體啟動的關機行為
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Instances (執行個體)。

  3. 選取實例。

  4. 依序選擇 Actions (動作)Instance settings (執行個體設定)Change shutdown behavior (變更關機行為)

    關機行為會顯示目前的行為。

  5. 若要變更此行為,對於關機行為,選擇停止終止,然後選擇儲存

Command line
變更執行個體啟動的關機行為

您可以使用下列其中一個命令。如需有關這些命令列介面的詳細資訊,請參閱存取 Amazon EC2

在執行個體終止時保留 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 屬性。若要變更運作中執行個體的這項屬性,您必須使用命令列。

欲使用主控台在啟動時將執行個體的根磁碟區變更為保留
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 請在主控台儀表板選取 Launch Instance (啟動執行個體)

  3. Choose an Amazon Machine Image (AMI) (選取 Amazon Machine Image (AMI)) 頁面中選取 AMI,然後選取 Select (選取)

  4. 遵循精靈的指示,來完成 Choose an Instance Type (選擇執行個體類型)Configure Instance Details (設定執行個體的詳細資訊) 頁面上的操作。

  5. Add Storage (新增儲存) 頁面上,取消勾選根磁碟區的 Delete On Termination (在終止時刪除) 核取方塊。

  6. 完成剩餘的精靈頁面,然後選擇 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

在您要保留的磁碟區的區塊型裝置映射中,包括 --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

例如,使用下列命令:

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 服務內的自動化程序清理 (終止)。如需詳細資訊,請參閱 延遲的執行個體終止