

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon EC2 執行個體狀態變更
<a name="ec2-instance-lifecycle"></a>

從啟動到終止的那一刻起，Amazon EC2 執行個體會轉換到不同的狀態。

下圖顯示執行個體狀態之間的轉換。

![\[執行個體生命週期。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/instance_lifecycle.png)


您可以在執行個體變更狀態時收到通知。如需詳細資訊，請參閱[Amazon EC2 執行個體的狀態變更事件](monitoring-instance-state-changes.md)。

## 依執行個體狀態計費
<a name="instance-billing-by-state"></a>

下表提供每個執行個體狀態的簡要說明，並指出執行個體用量的付款狀態。無論執行個體的狀態為何，Amazon EBS 磁碟區和彈性 IP 地址等部分 AWS 資源都會產生費用。如需詳細資訊，請參閱 *AWS Billing 使用者指南*中的[避免非預期的費用](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/checklistforunwantedcharges.html)。


| 執行個體狀態 | 描述 | 執行個體用量計費 | 
| --- | --- | --- | 
|  `pending`  |  執行個體準備進入 `running` 狀態。當執行個體啟動時，或者在處於 `stopped` 狀態之後啟動時，將進入 `pending` 狀態。  |  不計費  | 
|  `running`  |  執行個體正在執行中且可供使用。  |  計費  | 
|  `stopping`  |  執行個體已準備停止。  |  不計費  如果讓執行個體休眠，則會在執行個體處於 `stopping` 狀態時向您計費。   | 
|  `stopped`  |  執行個體已關閉且無法使用。執行個體可以隨時啟動。  |  不計費  | 
|  `shutting-down`  |  執行個體準備終止。  |  不計費  | 
|  `terminated`  |  執行個體已永久刪除且無法啟動。  |  不計費  適用於已終止執行個體的預留執行個體，根據其付款選項計費至期滿。如需詳細資訊，請參閱[Amazon EC2 的預留執行個體概觀](ec2-reserved-instances.md)   | 

## 待定執行個體
<a name="instance-launch"></a>

當您啟動執行個體時，其將進入 `pending` 狀態。您在啟動時指定的執行個體類型決定託管執行個體的電腦硬體。您在啟動時指定的 Amazon Machine Image (AMI) 將用來啟動執行個體。執行個體便已準備就緒，可供使用時，其將變為 `running` 狀態。接著您可連接到執行中的執行個體，並以一般使用電腦的方式使用。

您的執行個體轉換為 `running` 狀態後，會針對該執行個體執行的每秒計費 (最少為一分鐘)，即使執行個體保持閒置而且您未連接它仍會計費。

## 停止的執行個體
<a name="instance-stop-start"></a>

如果您的執行個體未能通過狀態檢查或未如預期執行您的應用程式，而且執行個體的根磁碟區為 Amazon EBS 磁碟區，您可以停止和啟動執行個體，以嘗試修正此問題。

停止執行個體時，其會變成 `stopping` 狀態，然後再變成 `stopped` 狀態。執行個體若為 `stopped`，您不需支付使用量或資料傳輸費用。任何 Amazon EBS 磁碟區的儲存都會產生費用。當您的執行個體變為 `stopped` 狀態時，您可修改執行個體的部分屬性，包括執行個體類型。

當您啟動執行個體時，它會進入 `pending` 狀態，執行個體會移至新的主機電腦 (但有時會保留在目前的主機上)。停止並啟動執行個體時，連接原本主機電腦的執行個體儲存體磁碟區內的所有資料可能都會遺失。

您的執行個體會保留其私有 IPv4 地址，這表示與該私有 IPv4 地址或網路介面相關聯的彈性 IP 地址會與您的執行個體保留關聯。如果您的執行個體有 IPv6 地址，則會保留 IPv6 地址。

每次將執行個體從 `stopped` 轉換為 `running` 時，只要執行個體在執行就會按秒收費，每次啟動執行個體至少會收費一分鐘。

如需停止和啟動執行個體的詳細資訊，請參閱：[停止和啟動 Amazon EC2 執行個體](Stop_Start.md)。

## 休眠的執行個體
<a name="instance-hibernate"></a>

當您讓執行個體休眠時，我們會向作業系統發出執行休眠 (suspend-to-disk的訊號，這會將執行個體記憶體 (RAM) 中的內容儲存至您的 Amazon EBS 根磁碟區。我們會保留執行個體的 Amazon EBS 根磁碟區，以及任何已連接的 Amazon EBS 資料磁碟區。當您啟動執行個體時，Amazon EBS 根磁碟區會還原至其先前的狀態，並重新載入 RAM 的內容。先前連接的資料磁碟區會重新連接，且執行個體會保留其執行個體 ID。

執行個體休眠時會變成 `stopping` 狀態，然後再變成 `stopped` 狀態。當執行個體處於 `stopped` 狀態時，不收取休眠執行個體的使用費，但當執行個體處於 `stopping` 狀態時，我們會收費，這與[停止執行個體](#instance-stop-start)但不休眠的情況不同。我們不會收取資料傳輸費用，但是會收取任何 Amazon EBS 磁碟區的儲存 (包含 RAM 資料的儲存) 費用。

當您啟動休眠的執行個體時，它會進入 `pending` 狀態，而且我們會將執行個體移至新的主機電腦 (但有時候會保留在目前的主機上)。

您的執行個體會保留其私有 IPv4 地址，這表示與該私有 IPv4 地址或網路介面相關聯的彈性 IP 地址仍會與您的執行個體相關聯。如果您的執行個體擁有 IPv6 地址，其將保留 IPv6 地址。

如需詳細資訊，請參閱[讓 Amazon EC2 執行個體進入休眠](Hibernate.md)。

## 重新啟動執行個體
<a name="instance-reboot"></a>

您可以使用 Amazon EC2 主控台、命令列工具和 Amazon EC2 API 來重新啟動執行個體。建議您使用 Amazon EC2 重新啟動執行個體，而不是從執行個體執行作業系統重新啟動命令。

重新啟動執行個體等同於重新啟動作業系統。執行個體會留在相同的主機電腦上，並保有其公有 DNS 名稱、私有 IP 地址和執行個體存放區磁碟區上的所有資料。重新啟動通常需要幾分鐘時間才能完成，但重新啟動實際需要時間仍取決於執行個體組態。

重新啟動執行個體不會啟動新的執行個體計費期間；會繼續以秒計費，但不會收取其他的最少一分鐘收費。

如需詳細資訊，請參閱[重新啟動您的 Amazon EC2 執行個體](ec2-instance-reboot.md)。

## 終止的執行個體
<a name="instance-termination"></a>

當您決定不再需要執行個體時，您可終止執行個體。執行個體的狀態變更為 `shutting-down` 或 `terminated` 時刻起，該執行個體便停止收取費用。

如果啟用終止保護，您將無法以主控台、CLI 或 API 終止執行個體。

終止執行個體後，仍會短暫顯示於主控台，之後該項目會自動刪除。您也可以用 CLI 和 API 來描述終止的執行個體。資源 (例如標籤) 會逐漸與該終止的執行個體取消關聯，過一段時間後，將不再顯示於該已終止的執行個體。您無法連接或復原已終止的執行個體。

每個 Amazon EBS 後端執行個體均支援 `InstanceInitiatedShutdownBehavior` 屬性，其控制當您在執行個體內部啟動關機時執行個體將停止或終止 (例如，在 Linux 上使用 **shutdown** 命令時)。預設行為是停止執行個體。您可在執行個體運作中或停止時，修改此屬性設定。

每個 Amazon EBS 磁碟區均支援 `DeleteOnTermination` 屬性，其控制當您終止磁碟區所連接的執行個體時要刪除或保留磁碟區。預設值為刪除根磁碟區，並保留任何其他的 EBS 磁碟區。

如需詳細資訊，請參閱[終止 Amazon EC2 執行個體](terminating-instances.md)。

## 執行個體狀態之間的差異
<a name="lifecycle-differences"></a>

下表摘要列出正在重新啟動、正在停止、正在休眠和正在終止執行個體之間的主要差異。


| 特性 | 重新開機 | 停止/啟動 (僅適用於 Amazon EBS 後端執行個體) | 休眠 (僅限 Amazon EBS 後端的執行個體) | 終止 | 
| --- | --- | --- | --- | --- | 
|  主機電腦  |  執行個體保持在同一個主機電腦上。  |  我們將執行個體移至新的主機電腦 (但有時候會保留在目前主機上)。  |  我們將執行個體移至新的主機電腦 (但有時候會保留在目前主機上)。  |  無  | 
|  私有 IPv4 地址  |  執行個體將保留其私有 IPv4 地址。  |  執行個體將保留其私有 IPv4 地址。  |  執行個體將保留其私有 IPv4 地址。  |  無  | 
|  公有 IPv4 地址  |  執行個體將保留其公有 IPv4 位址。  |  執行個體會取得新的公有 IPv4 位址，除非其具有次要網路介面或與彈性 IP 位址相關聯的次要私有 IPv4 位址。  |  執行個體會取得新的公有 IPv4 位址，除非其具有次要網路介面或與彈性 IP 位址相關聯的次要私有 IPv4 位址。  |  無  | 
|  彈性 IP 地址 (IPv4)  |  彈性 IP 地址仍與執行個體關聯  |  彈性 IP 地址仍與執行個體關聯  |  彈性 IP 地址仍與執行個體關聯  |  彈性 IP 地址將從執行個體解除關聯  | 
|  IPv6 地址  |  執行個體將保留其私有 IPv6 地址  |  執行個體將保留其私有 IPv6 地址  |  執行個體將保留其私有 IPv6 地址  |  無  | 
|  執行個體存放區磁碟區  |  資料將保留  |  資料將清除  |  資料將清除  |  資料將清除  | 
|  根磁碟區  |  磁碟區將保留  |  磁碟區將保留  |  磁碟區將保留  |  磁碟區預設為刪除  | 
|  RAM (記憶體內容)  |  將清除 RAM  |  將清除 RAM  |  RAM 會儲存到根磁碟區的檔案  |  將清除 RAM  | 
|  帳單  |  執行個體計費小時不變  |  執行個體的狀態變更為 `stopping` 時刻起，該執行個體便停止收取費用。每次執行個體從 `stopped` 轉移為 `running` 時，我們都會啟動新的執行個體計費期間，每次啟動執行個體時最少收費一分鐘。  |  執行個體的狀態為 `stopping` 時會產生費用，但執行個體的狀態為 `stopped` 時即停止產生費用。每次執行個體從 `stopped` 轉移為 `running` 時，我們都會啟動新的執行個體計費期間，每次啟動執行個體時最少收費一分鐘。  |  執行個體的狀態變更為 `shutting-down` 的時刻起，該執行個體便停止收取費用  | 

作業系統關機命令每次都會終止具有執行個體儲存體根磁碟區的執行個體。您可控制作業系統關機命令要停止或終止具有 EBS 根磁碟區的執行個體。如需詳細資訊，請參閱[變更執行個體啟動的關機行為](Using_ChangingInstanceInitiatedShutdownBehavior.md)。

# 停止和啟動 Amazon EC2 執行個體
<a name="Stop_Start"></a>

如果執行個體使用 Amazon EBS 磁碟區做為其根磁碟區，則您可以停止和啟動此執行個體。當您停止執行個體時，執行個體將會關閉。當您啟動執行個體時，其通常會移轉至新的基礎主機電腦，並指派新的公有 IPv4 地址。

執行個體停止可由使用者啟動 （您手動停止執行個體） 或由 啟動 AWS （當 AWS 偵測到執行個體的基礎主機發生無法修復的故障時，回應排程的停止事件）。

對於使用者發起的停止，建議您使用 Amazon EC2 主控台、CLI 或 API，而非從執行個體中執行作業系統停止命令。使用 Amazon EC2 時，若執行個體未在幾分鐘內正常關機，Amazon EC2 會執行強制關機。此外， 會 AWS CloudTrail 建立執行個體停止時的 API 記錄。

本主題說明如何執行使用者發起的停止。如需 執行的停止資訊 AWS，請參閱 [管理已排程為停止或淘汰的 Amazon EC2 執行個體](schedevents_actions_retire.md)。

當您停止執行個體時，該執行個體不會刪除。如果您決定不再需要使用執行個體時，可將其終止。如需詳細資訊，請參閱[終止 Amazon EC2 執行個體](terminating-instances.md)。如果要讓執行個體休眠以儲存執行個體記憶體 (RAM) 中的內容，請參閱：[讓 Amazon EC2 執行個體進入休眠](Hibernate.md)。有關執行個體生命週期操作之間的區別，請參閱 :[執行個體狀態之間的差異](ec2-instance-lifecycle.md#lifecycle-differences)。

**Topics**
+ [運作方式](how-ec2-instance-stop-start-works.md)
+ [停止執行個體的方法](instance-stop-methods.md)
+ [手動停止和啟動](#starting-stopping-instances)
+ [自動停止及啟動](#stop-start-ec2-instances-on-a-schedule)
+ [尋找執行中和停止的執行個體](#find-running-and-stopped-instances-in-globalview)
+ [尋找初始和最新的啟動時間](#find-initial-launch-time)
+ [啟用停止保護](ec2-stop-protection.md)

# EC2 執行個體的停止和啟動方式
<a name="how-ec2-instance-stop-start-works"></a>

當您停止 Amazon EC2 執行個體時，變更會在執行個體的作業系統 (OS) 層級註冊，而有些資源會遺失，有些則會保留。啟動執行個體時，會在執行個體層級註冊變更。

**Topics**
+ [若您停止執行個體會如何](#what-happens-stop)
+ [啟動執行個體時會出現的情況](#what-happens-start)
+ [測試應用程式對停止和啟動的回應](#test-stop-start-instance)
+ [停止和啟動執行個體的相關成本](#ec2-stop-start-costs)

## 若您停止執行個體會如何
<a name="what-happens-stop"></a>

下列說明使用預設停止方法停止執行個體時通常會發生的情況。請注意，部分細節可能會根據您使用的[停止方法](instance-stop-methods.md)而有所不同。

**在作業系統層級註冊的變更**
+ API 請求會將按鈕事件傳送給訪客。
+ 由於按鈕事件而停止各種系統服務。作業系統正常關機由從 Hypervisor 按下 ACPI 關機按鈕事件觸發。
+ 啟動 ACPI 關機。
+ 當正常關機程序結束時，執行個體就會作業系統關機。OS 關機時間無法設定。
+ 如果執行個體作業系統在幾分鐘內沒有完全關閉，便會執行硬關機。
+ 執行個體會停止執行。
+ 執行個體的狀態會變成 `stopping`​ 然後再變成 `stopped`。
+ [自動擴展] 如果您的執行是 Auto Scaling 群組，當執行個體的狀態處於 `running` 以外的任何 Amazon EC2 狀態，或是狀態檢查的狀態變為 `impaired`，則 Amazon EC2 Auto Scaling 會認定此執行個體運作狀態不佳，並將其取代。如需詳細資訊，請參閱「Amazon EC2 Auto Scaling 使用者指南」**中的[針對 Auto Scaling 群組中的執行個體進行運作狀態檢查](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html)。
+ [Windows 執行個體] 當您停止和啟動 Windows 執行個體時，啟動代理程式會對執行個體執行任務，例如針對任何已連結的 Amazon EBS 磁碟區變更其磁碟代號。如需這些預設值以及如何變更這些預設值的詳細資訊，請參閱 [在 EC2 Windows 執行個體啟動期間，使用 EC2Launch v2 代理程式執行任務](ec2launch-v2.md)。

**資源遺失**
+ 存放在 RAM 的資料。
+ 存放在執行個體儲存體磁碟區的資料。
+ Amazon EC2 在啟動或開始時自動指派給執行個體的公有 IPv4 地址。若要保留永遠不變的公有 IPv4 地址，可將[彈性 IP 地址](elastic-ip-addresses-eip.md)與您的執行個體建立關聯。

**持續存在的資源**
+ 所有連接的 Amazon EBS 根和資料磁碟區。
+ Amazon EBS 磁碟區中存放的資料。
+ 任何已連接的[網路介面](using-eni.md)。

  網路介面包含下列資源，這些資源也會持續存在：
  + 私有 IPv4 地址。
  + IPv6 地址。
  + 與執行個體有關聯的彈性 IP 地址。請注意，當執行個體停用時，系統會[針對相關聯的彈性 IP 地址向您收費](elastic-ip-addresses-eip.md#eip-pricing)。

下圖顯示 EC2 執行個體停止時持續存在及遺失的內容。此圖表分為三部分：第一個部分標示為**執行中的 EC2 執行個體**，顯示處於 `running` 狀態的執行個體及其資源。第二個部分標示為**已停止的 EC2 執行個體**，顯示處於 `stopped` 狀態的執行個體及其持續存在的資源。第三部分標示為**已遺失**，顯示執行個體停止時遺失的資源。

![\[執行個體停止時，會遺失公有 IPv4 地址、RAM 和執行個體儲存體資料。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/stop-instance.png)


如需停止 Mac 執行個體時所發生狀況的詳細資訊，請參閱 [停止或終止 Amazon EC2 Mac 執行個體](mac-instance-stop.md)。

## 啟動執行個體時會出現的情況
<a name="what-happens-start"></a>
+ 大多數情況下，執行個體會遷移至新的基礎主機電腦 (不過有時候會保留在目前的主機上，例如當執行個體是配置到[專用執行個體](dedicated-hosts-understanding.md)組態中的主機時)。
+ 關聯的 EBS 磁碟區和網路介面會重新連接至執行個體。
+ 若執行個體已設定為接收公有 IPv4 位址，Amazon EC2 會為其指派新的公有 IPv4 位址，除非其具有次要網路介面或與彈性 IP 位址相關聯的次要私有 IPv4 位址。
+ 如果先停止置放群組中的執行個體，然後再啟動，此執行個體仍會在置放群組中執行。不過，如果執行個體可用的容量不足，起始作業將會失敗。如果您在已執行執行個體的置放群組中啟動執行個體時收到容量錯誤，請停止置放群組中的所有執行個體，然後再次啟動所有執行個體。啟動執行個體的動作，可能會讓這些執行個體轉移到容量足夠的硬體，能夠提供容量給所有請求的執行個體使用。

## 測試應用程式對停止和啟動的回應
<a name="test-stop-start-instance"></a>

您可以使用 AWS Fault Injection Service 來測試您的應用程式在執行個體停止和啟動時如何回應。如需詳細資訊，請參閱「[AWS Fault Injection Service 使用者指南」](https://docs.aws.amazon.com/fis/latest/userguide/what-is.html)。

## 停止和啟動執行個體的相關成本
<a name="ec2-stop-start-costs"></a>

停止和啟動執行個體的相關成本如下。

**停止** - 一旦執行個體狀態變更為 `shutting-down` 或 `terminated`，執行個體就不會再產生費用。您不需為已停止的執行個體支付使用量或資料傳輸費用。存放 Amazon EBS 儲存磁碟區會產生費用。

**啟動** - 每次啟動已停止的執行個體時，我們會收取至少一分鐘的使用費。如果超過一分鐘，只會依使用的秒數收費。例如，如果您執行執行個體 20 秒便停止，我們會收取完整一分鐘的費用。如果您執行執行個體 3 分 40 秒，則只會收取 3 分 40 秒的使用費。

# 停止執行個體的方法
<a name="instance-stop-methods"></a>

使用者發起的停止操作有四種方式：預設停止、跳過作業系統關機的停止、強制停止，以及跳過作業系統關機的強制停止。下表會比較停止方式之間的關鍵差異。


| 停止方式 | 主要用途 | 使用案例 | CLI 命令 | 
| --- | --- | --- | --- | 
| 預設停止 | 嘗試作業系統正常關機的一般執行個體關機。 | 一般的執行個體停止。 |  <pre>aws ec2 stop-instances \<br />--instance-id i-1234567890abcdef0</pre>  | 
| 跳過作業系統關機的停止 | 停止執行個體時繞過作業系統正常關機。 | 需要繞過作業系統正常關機時。 | <pre>aws ec2 stop-instances \<br />--instance-id i-1234567890abcdef0 \<br />--skip-os-shutdown</pre> | 
| 強制停止 | 處理停滯的執行個體。先嘗試預設停止；若執行個體無法停止，則強制停止執行個體。 | 執行個體卡在 stopping 狀態時。 | <pre>aws ec2 stop-instances \<br />--instance-id i-1234567890abcdef0 \<br />--force</pre> | 
| 強制跳過作業系統關機的停止 | 停止執行個體時強制停止並繞過作業系統正常關機。 | 需要強制停止並繞過作業系統正常關機時。 | <pre>aws ec2 stop-instances \<br />--instance-id i-1234567890abcdef0 \<br />--force \<br />--skip-os-shutdown</pre> | 

各方法的使用指示，請參閱下列內容：
+ [在作業系統正常關機的情況下停止執行個體](Stop_Start.md#stop-instance-with-graceful-os-shutdown)
+ [停止執行個體並繞過作業系統正常關機](Stop_Start.md#stop-instance-bypass-graceful-os-shutdown)
+ [強制停止執行個體](TroubleshootingInstancesStopping.md#force-stop-instance)

**Topics**
+ [預設停止](#ec2-instance-default-stop)
+ [跳過作業系統關機的停止](#ec2-instance-stop-with-skip-os-shutdown)
+ [強制停止](#ec2-instance-force-stop)
+ [強制跳過作業系統關機的停止](#ec2-instance-force-stop-with-skip-os-shutdown)

下列章節提供有關四種不同使用者發起停止方法的詳細資訊。

## 預設停止
<a name="ec2-instance-default-stop"></a>

預設停止方法是停止執行個體的標準方式。在您發送 StopInstances 命令時，執行個體會從 `running` 狀態轉換為 `stopping`，最後轉換為 `stopped`，如下圖所示：

![\[預設停止流程\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/stop-instance-flow-1.png)


**用途：**嘗試作業系統正常關機的一般執行個體關機。

**資料影響：**保留 EBS 根磁碟區與資料磁碟區上的資料。執行個體儲存體磁碟區上的資料遺失。

**使用時機：**一般停止操作的首次嘗試。

**注意**  
若您已嘗試跳過作業系統關機的停止操作，則在同一狀態轉換工作階段期間的後續預設停止嘗試，將不會執行作業系統正常關機。繞過作業系統正常關機在執行個體的目前工作階段無法復原。

## 跳過作業系統關機的停止
<a name="ec2-instance-stop-with-skip-os-shutdown"></a>

若需要繞過作業系統正常關機，可使用跳過作業系統關機的停止方法來停止執行個體並繞過作業系統正常關機，如下圖所示：

![\[透過跳過作業系統關機流程來停止\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/stop-instance-flow-3.png)


**警告**  
繞過作業系統正常關機可能導致資料遺失或損毀 (例如，記憶體內容未寫入磁碟、正在處理的 IO 遺失) 或跳過關機指令碼。

**用途：**停止執行個體時繞過作業系統正常關機。

**資料影響：**可能會導致資料遺失或損毀。記憶體內容可能未寫入磁碟，且正在處理的 IO 可能遺失。可能會跳過關機指令碼。

**使用時機：**需要跳過作業系統正常關機時。若在執行含作業系統正常關機的預設停止操作期間使用，將跳過作業系統正常關機。

**注意**  
對於執行個體目前的狀態轉換工作階段，繞過作業系統正常關機是不可復原的。在此工作階段期間，後續的預設停止嘗試不會嘗試作業系統正常關機。

## 強制停止
<a name="ec2-instance-force-stop"></a>

強制停止方法用於處理卡在 `stopping` 狀態的執行個體。執行個體通常會因為基礎硬體問題而卡住 (由失敗的[系統狀態檢查](monitoring-system-instance-status-check.md#system-status-checks)表示)。

強制停止方法會先嘗試預設停止。若執行個體仍然卡在 `stopping` 狀態，`force` 參數會強制關閉執行個體，並將執行個體轉換為 `stopped` 狀態，如下圖所示：

![\[強制停止流程\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/stop-instance-flow-2.png)


**用途：**處理卡在 `stopping` 狀態的執行個體。先嘗試預設停止。若執行個體無法停止，則強制關閉執行個體。

**資料影響：**先嘗試預設停止，但若強制停止繼續，則可能會導致資料遺失或損毀。在極少數情況下，可能導致停止後向 EBS 磁碟區或其他共用資源寫入資料。

**使用時機：**預設停止後執行個體仍卡住時的第二次停止嘗試。如需詳細資訊，請參閱[對 Amazon EC2 執行個體停止問題進行疑難排解](TroubleshootingInstancesStopping.md)。

## 強制跳過作業系統關機的停止
<a name="ec2-instance-force-stop-with-skip-os-shutdown"></a>

若需要強制停止和繞過作業系統正常關機，可使用跳過作業系統關機方法的強制停止將執行個體轉換至 `stopped` 狀態，如下圖所示：

![\[透過跳過作業系統關機流程的強制停止\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/stop-instance-flow-4.png)


**用途：**結合強制停止與在停止執行個體時繞過作業系統正常關機。

**資料影響：**跳過作業系統關機可能會導致資料遺失或損毀。記憶體內容可能未寫入磁碟，且正在處理的 IO 可能遺失。可能會跳過關機指令碼。若強制停止繼續，則可能會導致額外的資料遺失或損毀。在極少數情況下，可能導致停止後向 EBS 磁碟區或其他共用資源寫入資料。

**使用時機：**當您想要確定執行個體會停止，並且想要繞過作業系統正常關機時。若在執行含作業系統正常關機的預設停止操作期間使用，將跳過作業系統正常關機。

## 手動停止和啟動您的執行個體
<a name="starting-stopping-instances"></a>

您可以停止和啟動 Amazon EBS 支援的執行個體 (使用 EBS 根磁碟區的執行個體)。您無法使用執行個體儲存體根磁碟區停止和啟動執行個體。

使用預設方法停止執行個體時，會嘗試執行作業系統 (OS) 正常關機。您可以繞過作業系統正常關機；但這可能會危及資料完整性。

**警告**  
停止執行個體時，在任何執行個體儲存體磁碟區的資料都會清除。停止執行個體之前，請確認您已將所需的任何資料從執行個體儲存體磁碟區複製到永久性儲存，例如 Amazon EBS 或 Amazon S3。

[Linux 執行個體] 從執行個體使用 **halt** 命令不會啟動關機作業。如果您使用 **halt** 命令，執行個體不會終止，而是會將 CPU 放入 `HLT`，從而暫停 CPU 作業。執行個體會維持執行中狀態。

您可以使用作業系統 **shutdown** 或 **poweroff** 命令啟動關機作業。使用 OS 命令時，執行個體預設會停止。您可變更此行為。如需詳細資訊，請參閱[變更執行個體啟動的關機行為](Using_ChangingInstanceInitiatedShutdownBehavior.md)。

**注意**  
如果停止了 Amazon EBS 支援的執行個體，而該執行個體似乎「凍結」於 `stopping` 狀態，則您可以強制將其停止。如需詳細資訊，請參閱[對 Amazon EC2 執行個體停止問題進行疑難排解](TroubleshootingInstancesStopping.md)。

**Topics**
+ [在作業系統正常關機的情況下停止執行個體](#stop-instance-with-graceful-os-shutdown)
+ [停止執行個體並繞過作業系統正常關機](#stop-instance-bypass-graceful-os-shutdown)
+ [啟動執行個體](#start-ec2-instance)

### 在作業系統正常關機的情況下停止執行個體
<a name="stop-instance-with-graceful-os-shutdown"></a>

您可以使用預設停止方法停止執行個體，其中包括嘗試作業系統正常關機。如需詳細資訊，請參閱[預設停止](instance-stop-methods.md#ec2-instance-default-stop)。

------
#### [ Console ]

**使用預設停止方法來停止執行個體**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在左側導覽窗格中，選取**執行個體**，然後選取一個執行個體。

1. 選擇 **Instance state (執行個體狀態)**、**Stop instance (停止執行個體)**。如果此選項已停用，則執行個體已停止或其根磁碟區是執行個體儲存體磁碟區。

1. 出現確認提示時，請選擇 **Stop (停止)**。停止執行個體可能需要幾分鐘。

------
#### [ AWS CLI ]

**使用預設停止方法來停止執行個體**  
使用 [stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) 命令。

```
aws ec2 stop-instances --instance-ids i-1234567890abcdef0
```

------
#### [ PowerShell ]

**使用預設停止方法來停止執行個體**  
使用 [Stop-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html) cmdlet。

```
Stop-EC2Instance -InstanceId i-1234567890abcdef0
```

------

### 停止執行個體並繞過作業系統正常關機
<a name="stop-instance-bypass-graceful-os-shutdown"></a>

您可以在停止執行個體時繞過作業系統正常關機。如需詳細資訊，請參閱[跳過作業系統關機的停止](instance-stop-methods.md#ec2-instance-stop-with-skip-os-shutdown)。

**警告**  
繞過作業系統正常關機可能導致資料遺失或損毀 (例如，記憶體內容未寫入磁碟、正在處理的 IO 遺失) 或跳過關機指令碼。

------
#### [ Console ]

**停止執行個體並繞過作業系統正常關機**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選取 **Instances (執行個體)**，然後選取該執行個體。

1. 選擇 **Instance state (執行個體狀態)**、**Stop instance (停止執行個體)**。

1. 在**跳過作業系統關機**下，選取**跳過作業系統關機**核取方塊。若您在主控台中未看見此選項，表示目前區域的主控台尚未提供此功能。不過，您可以透過 AWS CLI 或 SDK 存取此功能，或在主控台中嘗試其他區域。

1. 選擇**停止**。

------
#### [ AWS CLI ]

**停止執行個體並繞過作業系統正常關機**  
搭配使用 [stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) 命令與 `--skip-os-shutdown`。

```
aws ec2 stop-instances \
    --instance-ids i-1234567890abcdef0 \
    --skip-os-shutdown
```

------
#### [ PowerShell ]

**停止執行個體並繞過作業系統正常關機**  
搭配使用 [Stop-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html) cmdlet 與 `-SkipOsShutdown $true`。

```
Stop-EC2Instance `
    -InstanceId i-1234567890abcdef0 `
    -SkipOsShutdown $true
```

------

### 啟動執行個體
<a name="start-ec2-instance"></a>

您可啟動已停止的執行個體。

------
#### [ Console ]

**啟動執行個體**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在左側導覽窗格中選擇 **(執行個體)**。

1. 選取執行個體，並選取**執行個體狀態**、**啟動執行個體**。

   執行個體進入 `running` 狀態可能需要數分鐘。

------
#### [ AWS CLI ]

**啟動執行個體**  
使用 [start-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html) 命令。

```
aws ec2 start-instances --instance-ids i-1234567890abcdef0
```

------
#### [ PowerShell ]

**啟動執行個體**  
使用 [Start-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2Instance.html) cmdlet。

```
Start-EC2Instance -InstanceId i-1234567890abcdef0
```

------

## 自動停止及啟動執行個體
<a name="stop-start-ec2-instances-on-a-schedule"></a>

您可以使用下列服務自動停止及啟動執行個體：

**上的執行個體排程器 AWS**  
您可以在 上使用執行個體排程器 AWS 來自動啟動和停止 EC2 執行個體。如需詳細資訊，請參閱 [How do I use Instance Scheduler with CloudFormation to schedule EC2 instances?](https://repost.aws/knowledge-center/stop-start-instance-scheduler) (如何將執行個體排程器與 CloudFormation 結合使用來設定 EC2 執行個體的排程？) 請注意，[這會額外收費](https://docs.aws.amazon.com/solutions/latest/instance-scheduler-on-aws/cost.html)。

**AWS Lambda 和 Amazon EventBridge 規則**  
您可以使用 Lambda 和 EventBridge 規則，依排程停用和啟動執行個體。如需詳細資訊，請參閱[如何使用 Lambda 定期停用和啟動 Amazon EC2 執行個體？](https://repost.aws/knowledge-center/start-stop-lambda-eventbridge)

**Amazon EC2 Auto Scaling**  
為確保您有正確數量的 Amazon EC2 執行個體可用來處理應用程式的負載，請建立 Auto Scaling 群組。 Amazon EC2 Auto Scaling  可確保您的應用程式始終具有處理流量需求的適當容量，且只在需要執行個體時啟動執行個體來節省成本。請注意， Amazon EC2 Auto Scaling  會終止不需要的執行個體，而不是停止。若要設定 Auto Scaling 群組，請參閱[開始使用 Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/get-started-with-ec2-auto-scaling.html)。

## 尋找所有執行中和停止的執行個體
<a name="find-running-and-stopped-instances-in-globalview"></a>

您可以使用 [Amazon EC2 Global View](https://console.aws.amazon.com/ec2globalview/home) 在單一頁面上找到所有執行 AWS 區域 中和已停止的執行個體。此功能對清查和查找遺忘的執行個體尤其有用。如需有關如何建立全域檢視的資訊，請參閱 [使用 AWS 全域檢視跨區域檢視資源](global-view.md)。

或者，您可在擁有執行個體的每個區域中執行命令或 cmdlet。

------
#### [ AWS CLI ]

**取得區域中 EC2 執行個體數量**  
使用下列 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令來計算目前區域的執行個體數量。您必須在擁有執行個體的每個區域中執行此命令。

```
aws ec2 describe-instances \
    --region us-east-2 \
    --query "length(Reservations[].Instances[])"
```

以下為範例輸出。

```
27
```

**取得區域中 EC2 執行個體的摘要資訊**  
使用下面的 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令。您必須在擁有執行個體的每個區域中執行此命令。

```
aws ec2 describe-instances \
    --region us-east-2 \
    --query "Reservations[].Instances[].[InstanceId,InstanceType,PrivateIpAddress]" \
    --output table
```

以下為範例輸出。

```
---------------------------------------------------------
|                   DescribeInstances                   |
+---------------------+---------------+-----------------+
|  i-0e3e777f4362f1bf7|  t2.micro     |  10.0.12.9      |
|  i-09453945dcf1529e9|  t2.micro     |  10.0.143.213   |
|  i-08fd74f3f1595fdbd|  m7i.4xlarge  |  10.0.1.103     |
+---------------------+---------------+-----------------+
```

------
#### [ PowerShell ]

**取得區域中 EC2 執行個體數量**  
使用 [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) cmdlet。

```
(Get-EC2Instance -Region us-east-2).Instances.Length
```

以下為範例輸出。

```
27
```

**取得區域中 EC2 執行個體的摘要資訊**  
使用 [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) cmdlet。您必須在擁有執行個體的每個區域中執行此命令。

```
(Get-EC2Instance).Instances | Select InstanceId, InstanceType, PrivateIpAddress
```

以下為範例輸出。

```
InstanceId          InstanceType PrivateIpAddress
----------          ------------ ----------------
i-0e3e777f4362f1bf7 t2.micro     10.0.12.9
i-09453945dcf1529e9 t2.micro     10.0.143.213
i-08fd74f3f1595fdbd m7i.4xlarge  10.0.1.103
```

------

## 尋找初始和最新的啟動時間
<a name="find-initial-launch-time"></a>

當您描述執行個體時，執行個體的啟動時間是最新的啟動時間。在您停止和啟動執行個體之後，啟動時間會反映新執行個體的啟動時間。若要尋找執行個體的初始啟動時間，即使是在停止和啟動執行個體之後，請檢視主要網路介面連接至執行個體的時間。

------
#### [ Console ]

**尋找最新啟動時間**  
在**詳細資訊**索引標籤的**執行個體詳細資訊**下方選取執行個體，並尋找**啟動時間**。

**尋找初始啟動時間**  
選取執行個體，然後在**聯網**索引標籤的**網路介面**下尋找主要網路介面 (裝置索引為 0)。

------
#### [ AWS CLI ]

**尋找初始和最新的啟動時間**  
使用下列 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令，以顯示指定執行個體的初始啟動時間和最新啟動時間。

```
aws ec2 describe-instances \
    --instance-id i-1234567890abcdef0 \
    --query 'Reservations[].Instances[].{InstanceID:InstanceId,InitialLaunch:NetworkInterfaces[0].Attachment.AttachTime,LastLaunch:LaunchTime}'
```

以下為範例輸出。

```
[
    {
        "InstanceID": "i-1234567890abcdef0",
        "InitialLaunch": "2024-04-19T00:47:08+00:00",
        "LastLaunch": "2024-05-27T06:24:06+00:00"
    }
]
```

------
#### [ PowerShell ]

**尋找最新啟動時間**  
使用 [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) cmdlet。

```
(Get-EC2Instance -InstanceId i-1234567890abcdef0).Instances.LaunchTime
```

以下為範例輸出。

```
Monday, May 27, 2024 6:24:06 AM
```

**尋找初始啟動時間**  
使用 [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) cmdlet。

```
(Get-EC2Instance -InstanceId i-1234567890abcdef0).Instances.NetworkInterfaces.Attachment.AttachTime
```

以下為範例輸出。

```
Friday, April 19, 2024 12:47:08 AM
```

------

# 為您的 EC2 執行個體啟用停止保護
<a name="ec2-stop-protection"></a>

若要避免執行個體意外停止，您可啟用執行個體的停止保護功能。停止保護還可以保護您的執行個體免遭意外終止。

Amazon EC2 [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html) API 的 `DisableApiStop` 屬性會控制是否可以使用 Amazon EC2 主控台 AWS CLI、 或 Amazon EC2 API 來停止執行個體。您可在執行個體啟動時、運作中或停止時，設定此屬性值。

**考量事項**
+ 啟用停止保護功能無法防止您在使用作業系統命令 (例如 **shutdown** 或 **poweroff**) 從執行個體啟動關機作業，而意外停止執行個體。
+ 當有[排程事件](monitoring-instances-status-check_sched.md)停止執行個體時，啟用停止保護不會 AWS 阻止 停止執行個體。
+ 啟用停止保護不會阻止 Amazon EC2 Auto Scaling 在執行個體狀態不良時或在縮減事件期間終止執行個體。您可以使用[執行個體停止保護功能](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html)，控制 Auto Scaling 群組是否能在縮減時終止特定的執行個體。
+ 停止保護不僅可以防止執行個體意外停止，還可以防止在使用主控台 AWS CLI或 API 時意外終止。但是此功能不會自動設定 `DisableApiTermination` 屬性。請注意，當`DisableApiStop`屬性設定為 時`false`，`DisableApiTermination`屬性設定會決定是否可以使用主控台 AWS CLI或 API 終止執行個體。如需更多資訊，請參閱[終止 Amazon EC2 執行個體](terminating-instances.md)。
+ 您無法為具有執行個體儲存體根磁碟區的執行個體啟用停止保護。
+ 您無法為 Spot 執行個體啟用停止保護。
+ 當您啟用或停用停止保護時，Amazon EC2 API 會遵循最終一致性模式。這表示執行命令來設定停止保護屬性的結果，可能不會立即顯示在您執行的所有後續命令中。如需詳細資訊，請參閱「Amazon EC2 API 參考」**中的[最終一致性](https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html)。

**Topics**
+ [在執行個體啟動時啟用停止保護](#enable-stop-protection-at-launch)
+ [針對執作中或已停止的執行個體啟用停止保護](#enable-stop-protection-on-running-or-stopped-instance)
+ [針對執作中或已停止的執行個體停用停止保護](#disable-stop-protection-on-running-or-stopped-instance)

## 在執行個體啟動時啟用停止保護
<a name="enable-stop-protection-at-launch"></a>

您可以在執行個體啟動時，啟用停止保護。

------
#### [ Console ]

**在執行個體啟動時啟用停止保護**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在儀表板上，選擇**啟動執行個體**。

1. 在[新版啟動執行個體精靈](ec2-launch-instance-wizard.md)中設定執行個體。

1. 在精靈中，在**進階詳細資訊**下的**停止保護**選擇**啟用**，即可啟用停止保護功能。

------
#### [ AWS CLI ]

**在執行個體啟動時啟用停止保護**  
使用 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令來啟動執行個體。新增下列參數。

```
--disable-api-stop
```

------
#### [ PowerShell ]

**在執行個體啟動時啟用停止保護**  
使用 [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) cmdlet 來啟動執行個體。新增下列參數。

```
-DisableApiStop $true
```

------

## 針對執作中或已停止的執行個體啟用停止保護
<a name="enable-stop-protection-on-running-or-stopped-instance"></a>

您可以在執行個體為執行中或已停止狀態時，啟用停止保護。

------
#### [ Console ]

**為執行個體啟用停止保護**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在左側導覽窗格中選擇 **(執行個體)**。

1. 選取執行個體，然後選擇**動作**、**執行個體設定**、**變更停止保護**。

1. 選取**啟用**核取方塊，然後選擇**儲存**。

------
#### [ AWS CLI ]

**為執行個體啟用停止保護**  
使用 [modify-instance-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html) 命令。

```
aws ec2 modify-instance-attribute \
    --instance-id i-1234567890abcdef0 \
    --disable-api-stop
```

------
#### [ PowerShell ]

**為執行個體啟用停止保護**  
使用 [Edit-EC2InstanceAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html) cmdlet。

```
Edit-EC2InstanceAttribute `
    -InstanceId i-1234567890abcdef0 `
    -DisableApiStop $true
```

------

## 針對執作中或已停止的執行個體停用停止保護
<a name="disable-stop-protection-on-running-or-stopped-instance"></a>

您可以使用下列其中一種方法，來對執行中或已停止的執行個體停用停止保護。

------
#### [ Console ]

**針對執作中或已停止的執行個體停用停止保護**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在左側導覽窗格中選擇 **(執行個體)**。

1. 選取執行個體，然後選取 **Actions** (動作)、**Instance Settings** (執行個體設定)、**Change Stop Protection** (變更停止保護)。

1. 清除**啟用**核取方塊，然後選擇**儲存**。

------
#### [ AWS CLI ]

**針對執作中或已停止的執行個體停用停止保護**  
使用 [modify-instance-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html) 命令。

```
aws ec2 modify-instance-attribute \
    --instance-id i-1234567890abcdef0 \
    --no-disable-api-stop
```

------
#### [ PowerShell ]

**停用執行個體的停止保護**  
使用 [Edit-EC2InstanceAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html) cmdlet。

```
Edit-EC2InstanceAttribute `
    -InstanceId i-1234567890abcdef0 `
    -DisableApiStop $false
```

------

# 讓 Amazon EC2 執行個體進入休眠
<a name="Hibernate"></a>

當您讓執行個體休眠時，Amazon EC2 訊號會對作業系統執行休眠 (暫停磁碟機)。休眠會將執行個體記憶體 (RAM) 的內容儲存於您的 Amazon Elastic Block Store (Amazon EBS) 根磁碟區。Amazon EC2 會保留執行個體的 EBS 根磁碟區，以及任何已連接的 EBS 資料磁碟區。啟動執行個體時：
+ EBS 根磁碟區會還原至其先前的狀態
+ 重新載入 RAM 的內容
+ 恢復先前在執行個體上執行的程序
+ 先前連接的資料磁碟區會重新連接，且執行個體會保留其執行個體 ID

只有當您的執行個體已[啟用休眠](enabling-hibernation.md)並符合[休眠必要條件](hibernating-prerequisites.md)，才能讓執行個體進入休眠。

如果執行個體或應用程式需要花費長時間來引導並建置記憶體使用量，以完全發揮功效，則您可以使用休眠來「預先培養」執行個體。若要「預先培養」執行個體，您需要執行下列作業：

1. 在已啟用休眠的情況下將其啟動。

1. 使其進入所需的狀態。

1. 讓其休眠，以便準備好可在需要時恢復為所需狀態。

若執行個體處於 `stopped` 狀態而休眠，或 RAM 的內容要傳輸到 EBS 根磁碟區，這兩種情況的資料傳輸費用都不需要您支付。不過您需支付任何 EBS 磁碟區的儲存費用，包括 RAM 內容的儲存。

如果您認為不再需要某個執行個體，您可以隨時予以終止，即使該執行個體處於 `stopped` (休眠) 狀態也可以終止。如需詳細資訊，請參閱[終止 Amazon EC2 執行個體](terminating-instances.md)。

**Topics**
+ [運作方式](instance-hibernate-overview.md)
+ [先決條件](hibernating-prerequisites.md)
+ [將 Linux AMI 設定為支援休眠](hibernation-enabled-AMI.md)
+ [啟用執行個體休眠](enabling-hibernation.md)
+ [在執行個體上停用 KASLR (僅限 Ubuntu)](hibernation-disable-kaslr.md)
+ [讓執行個體休眠](hibernating-instances.md)
+ [啟動休眠的執行個體](hibernating-resuming.md)
+ [疑難排解](troubleshoot-instance-hibernate.md)

# Amazon EC2 執行個體休眠的運作方式
<a name="instance-hibernate-overview"></a>

下列圖表顯示 EC2 執行個體休眠程序的基本概觀。

![\[休眠流程概觀。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/hibernation-flow.png)


## 若您讓執行個體進入休眠會發生什麼情況
<a name="how-instance-hibernation-works"></a>

當您讓執行個體進入休眠時，會發生下列情況：
+ 執行個體會移至 `stopping` 狀態。Amazon EC2 會對作業系統發出執行休眠 (暫停磁碟機) 的訊號。休眠會凍結所有程序、將執行個體記憶體 (RAM) 的內容儲存於 EBS 根磁碟區，然後執行一般關機。
+ 完成關機之後，執行個體會進入 `stopped` 狀態。
+ 所有的 EBS 磁碟區仍會繼續連接至執行個體，其中的資料也會持續存在，包括儲存在 RAM 上的內容。
+ 任何 Amazon EC2 執行個體存放區磁碟區都會維持連接到執行個體的狀態，但執行個體存放區磁碟區上的資料會遺失。
+ 在大部分的情況中，執行個體會在啟動時轉移到新的基礎主機電腦。這也是您在停止並啟動執行個體時會發生的情況。
+ 當您啟動執行個體時，執行個體會開機，作業系統會從 EBS 根磁碟區讀取 RAM 的內容，然後將程序恢復為先前的狀態。
+ 執行個體會保留其私有 IPv4 位址及任何彈性 IPv6 位址。當您啟動執行個體時，執行個體會繼續保留其私有 IPv4 位址和任何 IPv6 位址。
+ Amazon EC2 會釋出公用 IPv4 位址。當您啟動執行個體時，Amazon EC2 會將新公用 IPv4 位址指派給執行個體。
+ 執行個體仍會保持與彈性 IP 地址的關聯。我們會針對和已休眠執行個體建立關聯的任何彈性 IP 地址向您收費。

如需休眠與重新開機、停止和終止之間差異的資訊，請參閱[執行個體狀態之間的差異](ec2-instance-lifecycle.md#lifecycle-differences)。

## 限制
<a name="instance-hibernate-limitations"></a>
+ 讓執行個體休眠時，任何執行個體存放區磁碟區上的資料都會遺失。
+ (Linux 執行個體) 不能讓 RAM 大於 150 GiB 的執行個體休眠。
+ (Windows 執行個體) 不能讓 RAM 大於 16 GiB 的執行個體休眠。
+ 當您的執行個體休眠時，您無法進行修改。這與未休眠的已停止執行個體不同，您可在其中修改特定屬性，例如執行個體類型或大小。
+ 如果您從休眠或已啟用休眠的執行個體中建立快照或 AMI，您可能無法連線至從 AMI 或從快照建立的 AMI 啟動的新執行個體。
+ (僅限 Spot 執行個體) 如果 Amazon EC2 讓您的 Spot 執行個體休眠，則只有 Amazon EC2 可以恢復您的執行個體。如果是您讓 Spot 執行個體休眠 ([使用者啟動的休眠](hibernating-instances.md))，您可以恢復執行個體。只有在有可用的容量，且 Spot 價格低於或等於您指定的最高價格時，才能恢復休眠的 Spot 執行個體。
+ 您無法讓位於 Auto Scaling 群組或由 Amazon ECS 使用的執行個體進入休眠。若您的執行個體位於 Auto Scaling 群組中，且您嘗試讓其進入休眠，Amazon EC2 Auto Scaling 服務會將停止的執行個體標記為運作狀態不良，且可能會將其終止並啟動取代用執行個體。如需詳細資訊，請參閱「Amazon EC2 Auto Scaling 使用者指南」**中的[針對 Auto Scaling 群組中的執行個體進行運作狀態檢查](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html)。
+ 您無法讓設定為在 UEFI 模式下且啟用 [UEFI 安全開機](uefi-secure-boot.md)進行開機的執行個體進入休眠。
+ 如果您休眠啟動到 容量預留 的執行個體，容量預留 不確保休眠執行個體可以在您嘗試啟動之後恢復。
+ 如果啟用了聯邦資訊處理標準 (FIPS) 模式，則無法將使用 5.10 以下核心的執行個體休眠。
+ 我們不支援讓執行個體休眠超過 60 天。若要保留執行個體 60 天以上，您必須啟動休眠的執行個體、停止執行個體並將其啟動。
+ 我們持續透過升級與安全修補程式來更新我們的平台，可能會與現有的已休眠執行個體衝突。在進行需要啟動已休眠執行個體的重大更新時，我們會通知您，以便我們執行關機或重新啟動來套用必要的升級和安全修補程式。

## 讓 Spot 執行個體休眠的考量
<a name="spot-hibernation-considerations"></a>
+ 如果「您」**讓 Spot 執行個體休眠，只要容量可用且 Spot 價格低於或等於您指定的最高價格，就可以重新啟動該執行個體。
+ 如果「Amazon EC2」**讓您的 Spot 執行個體休眠：
  + 只有 Amazon EC2 才能恢復您的執行個體。
  + 當 Spot 價格低於或等於您所指定的最高價格，而且有可用的容量時，Amazon EC2 會恢復已休眠的 Spot 執行個體。
  + 在 Amazon EC2 讓 Spot 執行個體休眠之前，您會在休眠開始前兩分鐘收到中斷通知。

  如需詳細資訊，請參閱[Spot 執行個體中斷](spot-interruptions.md)。

# EC2 執行個體休眠的先決條件
<a name="hibernating-prerequisites"></a>

您在啟動隨需執行個體或 Spot 執行個體時，可以啟用休眠支援。您無法在現有執行個體 (無論為執行中或已停止) 啟用休眠。如需詳細資訊，請參閱[啟用執行個體休眠](enabling-hibernation.md)。

**Topics**
+ [AWS 區域](#hibernation-prereqs-regions)
+ [AMI](#hibernation-prereqs-supported-amis)
+ [執行個體系列](#hibernation-prereqs-supported-instance-families)
+ [執行個體 RAM 大小](#instance-ram-size)
+ [根磁碟區類型](#hibernation-prereqs-root-volume-type)
+ [根磁碟區大小](#hibernation-prereqs-ebs-root-volume-size)
+ [根磁碟區加密](#hibernation-prereqs-ebs-root-volume-encryption)
+ [EBS volume type (EBS 磁碟區類型)](#hibernation-prereqs-ebs-volume-types)
+ [Spot 執行個體請求](#hibernation-prereqs-spot-request)

## AWS 區域
<a name="hibernation-prereqs-regions"></a>

所有 執行個體都可以使用休眠 AWS 區域。

## AMI
<a name="hibernation-prereqs-supported-amis"></a>

您必須使用支援休眠的 HVM AMI。下列 AMI 支援休眠：

### Linux AMI
<a name="hibernation-prereqs-supported-amis-linux"></a>

**Intel 和 AMD 執行個體類型的 AMI**
+ 2023.09.20 或之後發行的 AL2023 AMI ¹
+ 2019.08.29 或更新版本發行的 Amazon Linux 2 AMI。
+ 2018.11.16 或更新版本發行的 Amazon Linux AMI 2018.03。
+ CentOS 版本 8 AMI ² (需要設定[其他組態](hibernation-enabled-AMI.md#configure-centos-for-hibernation))
+ Fedora 版本 34 或更新版本 AMI ² (需要設定[其他組態](hibernation-enabled-AMI.md#configure-fedora-for-hibernation))
+ Red Hat Enterprise Linux (RHEL) 9 AMI ² (需要設定[其他組態](hibernation-enabled-AMI.md#configure-RHEL-for-hibernation))
+ Red Hat Enterprise Linux (RHEL) 8 AMI ² (需要設定[其他組態](hibernation-enabled-AMI.md#configure-RHEL-for-hibernation))
+ Ubuntu 22.04.2 LTS (Jammy Jellyfish) AMI，發行序號為 20230303 或更新版本 ³
+ Ubuntu 20.04 LTS (Focal Fossa) AMI，發行序號為 20210820 或更新版本 ³
+ Ubuntu 18.04 LTS (Bionic Beaver) AMI，發行序號為 20190722.1 或更新版本 ³ ⁵
+ Ubuntu 16.04 LTS (Xenial Xerus) AMI ³ ⁴ ⁵ (需要設定[其他組態](hibernation-enabled-AMI.md#configure-ubuntu1604-for-hibernation))

**Graviton 執行個體類型的 AMI**
+ 2024.07.01 或之後發行的 AL2023 AMI (64 位元 Arm) ¹
+ 2024.06.20 或之後發行的 Amazon Linux 2 AMI (64 位元 Arm)
+ Ubuntu 22.04.2 LTS (64 位元 Arm) (Jammy Jellyfish) AMI，發行序號為 20240701 或更新版本 ³
+ Ubuntu 20.04 LTS (64 位元 Arm) (Focal Fossa) AMI，發行序號為 20240701 或更新版本 ³

 

¹ 對於 AL2023 最小 AMI，[需要額外組態](hibernation-enabled-AMI.md#configure-AL2023-minimal-for-hibernation)。

² 對於 CentOS、Fedora 和 Red Hat Enterprise Linux，只有以 Nitro 為基礎的執行個體才支援休眠。

³ 建議您在採用 Ubuntu 22.04.2 LTS (Jammy Jellyfish)、Ubuntu 20.04 LTS (Focal Fossa)、Ubuntu 18.04 LTS (Bionic Beaver) 和 Ubuntu 16.04 LTS (Xenial Xerus) 的執行個體上停用 KASLR。如需詳細資訊，請參閱[在執行個體上停用 KASLR (僅限 Ubuntu)](hibernation-disable-kaslr.md)。

⁴ 對於 Ubuntu 16.04 LTS (Xenial Xerus) AMI，`t3.nano` 執行個體類型上不支援休眠。由於 Ubuntu (Xenial Xerus) 已於 2021 年 4 月終止支援，因此不會提供任何修補程式。如果想要使用 `t3.nano` 執行個體類型，則建議升級至 Ubuntu 22.04.2 LTS (Jammy Jellyfish)、Ubuntu 20.04 LTS (Focal Fossa) AMI 或 Ubuntu 18.04 LTS (Bionic Beaver) AMI。

⁵ 對 Ubuntu 18.04 LTS (Bionic Beaver) 和 Ubuntu 16.04 LTS (Xenial Xerus) 的支援已接近尾聲。

若要設定您自己的 AMI 以支援休眠，請參閱[將 Linux AMI 設定為支援休眠](hibernation-enabled-AMI.md)。

即將推出其他版本的 Ubuntu 及其他作業系統的支援。

### Windows AMI
<a name="hibernation-prereqs-supported-amis-windows"></a>
+ 2023.09.13 或更新版本的 Windows Server 2022 AMI
+ 2019.09.11 或更新版本的 Windows Server 2019 AMI
+ 2019.09.11 或更新版本的 Windows Server 2016 AMI
+ 2019.09.11 或更新版本的 Windows Server 2012 R2 AMI
+ 2019.09.11 或更新版本的 Windows Server 2012 AMI

## 執行個體系列
<a name="hibernation-prereqs-supported-instance-families"></a>

您必須使用支援休眠的執行個體系列。不過，不支援裸機執行個體。
+ 一般用途：M3, M4, M5, M5a, M5ad, M5d, M6a, M6g, M6gd, M6i, M6id, M6idn, M6in, M7a, M7g, M7gd, M7i, M7i-flex, M8a, M8azn, M8g, M8gb, M8gd, M8gn, M8i, M8i-flex, T2, T3, T3a, T4g
+ 運算最佳化：C3, C4, C5, C5d, C6a, C6g, C6gd, C6gn, C6i, C6id, C6in, C7a, C7g, C7gd, C7gn, C7i, C7i-flex, C8a, C8g, C8gb, C8gd, C8gn, C8i, C8i-flex
+ 記憶體最佳化：R3, R4, R5, R5a, R5ad, R5d, R6a, R6g, R6gd, R6idn, R6in, R7a, R7g, R7gd, R7i, R7iz, R8a, R8g, R8gb, R8gd, R8gn, R8i, R8i-flex, X2gd, X8aedz, X8i
+ 儲存最佳化：I3、I3en、I4g、I7i、I7ie、I8g、I8ge、Im4gn、Is4gen

------
#### [ Console ]

**取得支援休眠的執行個體類型**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Instance Types (執行個體類型)**。

1. 新增篩選條件**隨需休眠支援 =true=**。

1. (選用) 新增篩選條件以進一步限定到感興趣的特定執行個體類型。

------
#### [ AWS CLI ]

**取得支援休眠的執行個體類型**  
使用 [describe-instance-types](https://docs.aws.amazon.com/cli/latest/reference/describe-instance-types/.html) 命令。請注意，可用的執行個體類型因區域而異。

```
aws ec2 describe-instance-types \
    --filters Name=hibernation-supported,Values=true \
    --query "InstanceTypes[*].[InstanceType]" \
    --output text | sort
```

------
#### [ PowerShell ]

**取得支援休眠的執行個體類型**  
使用 [Get-EC2InstanceType](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceType.html) cmdlet。請注意，可用的執行個體類型因區域而異。

```
(Get-EC2InstanceType `
    -Filter @{Name="hibernation-supported"; Values="true"}).InstanceType | Sort-Object
```

------

## 執行個體 RAM 大小
<a name="instance-ram-size"></a>

**Linux 執行個體** – 必須小於 150 GiB。

**Windows 執行個體** – 必須小於或是等於 16 GiB。若要休眠 T3 或 T3a Windows 執行個體，建議使用至少 1 GiB 的 RAM。

## 根磁碟區類型
<a name="hibernation-prereqs-root-volume-type"></a>

根磁碟區必須是 EBS 磁碟區，而非執行個體存放區。

## 根磁碟區大小
<a name="hibernation-prereqs-ebs-root-volume-size"></a>

根磁碟區必須大到足以存放 RAM 的內容，並能容納您預期的使用量，例如作業系統或應用程式。如果您啟用休眠，則會於啟動時在根磁碟區上配置空間以存放 RAM。

## 根磁碟區加密
<a name="hibernation-prereqs-ebs-root-volume-encryption"></a>

根磁碟區必須加密，以確保在休眠時保護記憶體中的敏感內容。當 RAM 的資料移至 EBS 根磁碟區時，一律會加密。根磁碟區的加密會在執行個體啟動時執行。

使用下列三個選項中的一個來確保根磁碟區是加密的 EBS 磁碟區：
+ 根據**預設，EBS 加密** – 您可以根據預設啟用 EBS 加密，以確保在您 AWS 帳戶中建立的所有新 EBS 磁碟區都已加密。以此方式，您可以為您的執行個體啟用休眠，而不在執行個體啟動時指定加密意圖。如需詳細資訊，請參閱[預設啟用加密](https://docs.aws.amazon.com/ebs/latest/userguide/encryption-by-default.html)。
+ **EBS「單一步驟」加密** - 您可以從未加密的 AMI 啟動加密的 EBS 後端 EC2 執行個體，並可同時啟用休眠。如需詳細資訊，請參閱 [對 EBS 後端 AMI 使用加密](AMIEncryption.md)。
+ **加密 AMI** - 您可以使用加密的 AMI 來啟動您的執行個體，藉此啟用 EBS 加密。如果您的 AMI 沒有加密的根快照，您可以將資料複製到新的 AMI，然後請求加密。如需詳細資訊，請參閱[複製期間加密未加密的映像](AMIEncryption.md#copy-unencrypted-to-encrypted)及[複製 AMI](CopyingAMIs.md#ami-copy-steps)。

## EBS volume type (EBS 磁碟區類型)
<a name="hibernation-prereqs-ebs-volume-types"></a>

EBS 磁碟區必須使用下列其中一個 EBS 磁碟區類型：
+ 一般用途 SSD (`gp2` 和 `gp3`)
+ 佈建 IOPS SSD (`io1` 和 `io2`)

如果您選擇佈建 IOPS SSD 磁碟區類型，必須使用適當的 IOPS 佈建 EBS 磁碟區，才能獲得休眠的最佳效能。如需詳細資訊，請參閱「Amazon EBS 使用者指南」**中的 [Amazon EBS 磁碟區類型](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html)。

## Spot 執行個體請求
<a name="hibernation-prereqs-spot-request"></a>

針對 Spot 執行個體，適用下列需求：
+ Spot 執行個體請求類型必須為 `persistent`。
+ 您無法在 Spot 執行個體請求中指定啟動群組。

# 將 Linux AMI 設定為支援休眠
<a name="hibernation-enabled-AMI"></a>

下列 Linux AMI 可支援讓 Amazon EC2 執行個體進入休眠，但前提是您完成本節中所述的其他組態步驟。

**Topics**
+ [2023.09.20 或之後發行的 AL2023 最小 AMI](#configure-AL2023-minimal-for-hibernation)
+ [2019.08.29 或之後發佈的 Amazon Linux 2 最低 AMI](#configure-AL2-minimal-for-hibernation)
+ [2019.08.29 前發佈的 Amazon Linux 2](#configure-AL2-for-hibernation)
+ [2018.11.16 前發佈的 Amazon Linux](#configure-AL-for-hibernation)
+ [CentOS 版本 8 或更新版本](#configure-centos-for-hibernation)
+ [Fedora 版本 34 或更新版本](#configure-fedora-for-hibernation)
+ [Red Hat Enterprise Linux 版本 8 或 9](#configure-RHEL-for-hibernation)
+ [Ubuntu 20.04 LTS (Focal Fossa) 在序號 20210820 前發佈的版本](#configure-ubuntu2004-for-hibernation)
+ [Ubuntu 18.04 (Bionic Beaver) 在序號 20190722.1 前發佈的版本](#configure-ubuntu1804-for-hibernation)
+ [Ubuntu 16.04 (Xenial Xerus)](#configure-ubuntu1604-for-hibernation)

如需支援休眠且*不需要額外*組態的 Linux 和 Windows AMI，請參閱 [AMI](hibernating-prerequisites.md#hibernation-prereqs-supported-amis)。

如需詳細資訊，請參閱[在 Amazon Linux 2 執行個體上更新執行個體軟體](https://docs.aws.amazon.com/linux/al2/ug/install-updates.html)。

## 2023.09.20 或之後發行的 AL2023 最小 AMI
<a name="configure-AL2023-minimal-for-hibernation"></a>

**設定 2023.09.20 或之後發行的 AL2023 最小 AMI 以支援休眠**

1. 從儲存庫安裝 `ec2-hibinit-agent` 套件。

   ```
   [ec2-user ~]$ sudo dnf install ec2-hibinit-agent
   ```

1. 重新啟動服務。

   ```
   [ec2-user ~]$ sudo systemctl start hibinit-agent
   ```

## 2019.08.29 或之後發佈的 Amazon Linux 2 最低 AMI
<a name="configure-AL2-minimal-for-hibernation"></a>

**設定 2019.08.29 或之後發佈的 Amazon Linux 2 最低 AMI 以支援休眠**

1. 從儲存庫安裝 `ec2-hibinit-agent` 套件。

   ```
   [ec2-user ~]$ sudo yum install ec2-hibinit-agent
   ```

1. 重新啟動服務。

   ```
   [ec2-user ~]$ sudo systemctl start hibinit-agent
   ```

## 2019.08.29 前發佈的 Amazon Linux 2
<a name="configure-AL2-for-hibernation"></a>

**將 2019.08.29 前發佈的 Amazon Linux 2 AMI 設定為支援休眠**

1. 更新核心至 `4.14.138-114.102` 或更新版本。

   ```
   [ec2-user ~]$ sudo yum update kernel
   ```

1. 從儲存庫安裝 `ec2-hibinit-agent` 套件。

   ```
   [ec2-user ~]$ sudo yum install ec2-hibinit-agent
   ```

1. 重新啟動執行個體。

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. 確認核心版本已更新為 `4.14.138-114.102` 或更新版本。

   ```
   [ec2-user ~]$ uname -a
   ```

1. 停止執行個體，並建立 AMI。如需詳細資訊，請參閱[建立 Amazon EBS 支援的 AMI](creating-an-ami-ebs.md)。

## 2018.11.16 前發佈的 Amazon Linux
<a name="configure-AL-for-hibernation"></a>

**將 2018.11.16 前發佈的 Amazon Linux AMI 設定為支援休眠**

1. 更新核心至 `4.14.77-70.59` 或更新版本。

   ```
   [ec2-user ~]$ sudo yum update kernel
   ```

1. 從儲存庫安裝 `ec2-hibinit-agent` 套件。

   ```
   [ec2-user ~]$ sudo yum install ec2-hibinit-agent
   ```

1. 重新啟動執行個體。

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. 確認核心版本已更新為 `4.14.77-70.59` 或更高版本。

   ```
   [ec2-user ~]$ uname -a
   ```

1. 停止執行個體，並建立 AMI。如需詳細資訊，請參閱[建立 Amazon EBS 支援的 AMI](creating-an-ami-ebs.md)。

## CentOS 版本 8 或更新版本
<a name="configure-centos-for-hibernation"></a>

**將 CentOS 版本 8 或更新版本的 AMI 設定為支援休眠**

1. 更新核心至 `4.18.0-305.7.1.el8_4.x86_64` 或更新版本。

   ```
   [ec2-user ~]$ sudo yum update kernel
   ```

1. 安裝 Fedora Extra Packages for Enterprise Linux (EPEL) 儲存庫。

   ```
   [ec2-user ~]$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
   ```

1. 從儲存庫安裝 `ec2-hibinit-agent` 套件。

   ```
   [ec2-user ~]$ sudo yum install ec2-hibinit-agent
   ```

1. 啟用休眠代理程式以在開機時開始。

   ```
   [ec2-user ~]$ sudo systemctl enable hibinit-agent.service
   ```

1. 重新啟動執行個體。

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. 確認核心版本已更新為 `4.18.0-305.7.1.el8_4.x86_64` 或更新版本。

   ```
   [ec2-user ~]$ uname -a
   ```

## Fedora 版本 34 或更新版本
<a name="configure-fedora-for-hibernation"></a>

**將 Fedora 版本 34 或更新版本的 AMI 設定為支援休眠**

1. 更新核心至 `5.12.10-300.fc34.x86_64` 或更新版本。

   ```
   [ec2-user ~]$ sudo yum update kernel
   ```

1. 從儲存庫安裝 `ec2-hibinit-agent` 套件。

   ```
   [ec2-user ~]$ sudo dnf install ec2-hibinit-agent
   ```

1. 啟用休眠代理程式以在開機時開始。

   ```
   [ec2-user ~]$ sudo systemctl enable hibinit-agent.service
   ```

1. 重新啟動執行個體。

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. 確認核心版本已更新為 `5.12.10-300.fc34.x86_64` 或更新版本。

   ```
   [ec2-user ~]$ uname -a
   ```

## Red Hat Enterprise Linux 版本 8 或 9
<a name="configure-RHEL-for-hibernation"></a>

**設定 Red Hat Enterprise Linux 8 或 9 AMI 以支援休眠**

1. 更新核心至 `4.18.0-305.7.1.el8_4.x86_64` 或更新版本。

   ```
   [ec2-user ~]$ sudo yum update kernel
   ```

1. 安裝 Fedora Extra Packages for Enterprise Linux (EPEL) 儲存庫。

   RHEL 版本 8：

   ```
   [ec2-user ~]$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
   ```

   RHEL 版本 9：

   ```
   [ec2-user ~]$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
   ```

1. 從儲存庫安裝 `ec2-hibinit-agent` 套件。

   ```
   [ec2-user ~]$ sudo yum install ec2-hibinit-agent
   ```

1. 啟用休眠代理程式以在開機時開始。

   ```
   [ec2-user ~]$ sudo systemctl enable hibinit-agent.service
   ```

1. 重新啟動執行個體。

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. 確認核心版本已更新為 `4.18.0-305.7.1.el8_4.x86_64` 或更新版本。

   ```
   [ec2-user ~]$ uname -a
   ```

## Ubuntu 20.04 LTS (Focal Fossa) 在序號 20210820 前發佈的版本
<a name="configure-ubuntu2004-for-hibernation"></a>

**若要將序號 20210820 前發佈的 Ubuntu 20.04 LTS (Focal Fossa) AMI 設定為支援休眠**

1. 將 linux-aws-kernel 更新為 `5.8.0-1038.40` 或更新版本，並將 grub2 為 `2.04-1ubuntu26.13` 或更新版本。

   ```
   [ec2-user ~]$ sudo apt update
   [ec2-user ~]$ sudo apt dist-upgrade
   ```

1. 重新啟動執行個體。

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. 確認核心版本已更新為 `5.8.0-1038.40` 或更新版本。

   ```
   [ec2-user ~]$ uname -a
   ```

1. 確認 grub2 版本已更新為 `2.04-1ubuntu26.13` 或更新版本。

   ```
   [ec2-user ~]$ dpkg --list | grep grub2-common
   ```

## Ubuntu 18.04 (Bionic Beaver) 在序號 20190722.1 前發佈的版本
<a name="configure-ubuntu1804-for-hibernation"></a>

**將序號 20190722.1 前發佈的 Ubuntu 18.04 LTS AMI 設定為支援休眠**

1. 更新核心至 `4.15.0-1044` 或更新版本。

   ```
   [ec2-user ~]$ sudo apt update
   [ec2-user ~]$ sudo apt dist-upgrade
   ```

1. 從儲存庫安裝 `ec2-hibinit-agent` 套件。

   ```
   [ec2-user ~]$ sudo apt install ec2-hibinit-agent
   ```

1. 重新啟動執行個體。

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. 確認核心版本已更新為 `4.15.0-1044` 或更新版本。

   ```
   [ec2-user ~]$ uname -a
   ```

## Ubuntu 16.04 (Xenial Xerus)
<a name="configure-ubuntu1604-for-hibernation"></a>

若要將 Ubuntu 16.04 LTS 設為支援休眠，您需要安裝 linux-aws-hwe 核心套件版本 4.15.0-1058-aws 或更新版本，以及 ec2-hibinit-agent。

**重要**  
Canonical 支援 `linux-aws-hwe` 核心套件。對 Ubuntu 16.04 LTS 的標準支援已於 2021 年 4 月結束，且軟體套件不會再接收定期更新。但是，此套件會收到其他安全性更新，直到 2024 年結束 Extended Security Maintenance 支援為止。如需詳細資訊，請參閱 Canonical Ubuntu 部落格上的 [Amazon EC2 Hibernation for Ubuntu 16.04 LTS 現已推出](https://ubuntu.com/blog/amazon-ec2-hibernation-for-ubuntu-16-04-lts-now-available)。  
建議您升級至 Ubuntu 20.04 LTS (Focal Fossa) AMI 或 Ubuntu 18.04 LTS (Bionic Beaver) AMI。

**將 Ubuntu 16.04 LTS AMI 設定為支援休眠**

1. 更新核心至 `4.15.0-1058-aws` 或更新版本。

   ```
   [ec2-user ~]$ sudo apt update
   [ec2-user ~]$ sudo apt install linux-aws-hwe
   ```

1. 從儲存庫安裝 `ec2-hibinit-agent` 套件。

   ```
   [ec2-user ~]$ sudo apt install ec2-hibinit-agent
   ```

1. 重新啟動執行個體。

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. 確認核心版本已更新為 `4.15.0-1058-aws` 或更新版本。

   ```
   [ec2-user ~]$ uname -a
   ```

# 對 Amazon EC2 執行個體啟用休眠
<a name="enabling-hibernation"></a>

若要讓執行個體休眠，必須在啟動執行個體時先為其啟用休眠。

**重要**  
啟動執行個體之後，就不能對它啟用或停用休眠。

**Topics**
+ [為隨需執行個體啟用休眠功能](#enable-hibernation-for-on-demand-instances)
+ [為 Spot 執行個體啟用休眠功能](#enable-hibernation-for-spot-instances)
+ [檢視執行個體是否已啟用休眠](#view-if-instance-is-enabled-for-hibernation)

## 為隨需執行個體啟用休眠功能
<a name="enable-hibernation-for-on-demand-instances"></a>

您可為隨需執行個體啟用休眠功能。

------
#### [ Console ]

**為隨需執行個體啟用休眠功能**

1. 遵循程序[啟動執行個體](ec2-launch-instance-wizard.md)，但在完成下列步驟以啟用休眠之前，請勿啟動執行個體。

1. 若要啟用休眠功能，請在啟動執行個體精靈中設定下列欄位：

   1. 在 **Application and OS Images (Amazon Machine Image)** (應用程式和作業系統映像 (Amazon Machine Image)) 中，選取支援休眠的 AMI。如需詳細資訊，請參閱[AMI](hibernating-prerequisites.md#hibernation-prereqs-supported-amis)。

   1. 在 **Instance type** (執行個體類型) 中，選取支援的執行個體類型。如需詳細資訊，請參閱[執行個體系列](hibernating-prerequisites.md#hibernation-prereqs-supported-instance-families)。

   1. 在 **Configure storage** (設定儲存) 中，選擇 **Advanced** (進階) (在右側)，並指定根磁碟區的下列資訊：
      + 針對 **Size (GiB) (大小 (GiB))**，輸入 EBS 根磁碟區大小。磁碟區必須夠大，才能存放 RAM 內容並容納您預期的使用量。
      + 針對 **Volume type** (磁碟區類型)，選取支援的 EBS 磁碟區類型：一般用途 SSD (`gp2` 和 `gp3`) 或佈建 IOPS SSD (`io1` 和 `io2`)。
      + 針對 **Encrypted** (加密)，選擇 **Yes** (是)。如果您在此 AWS 區域中預設啟用加密，則會選取**是**。
      + 針對 **KMS key** (KMS 金鑰)，選取磁碟區的加密金鑰。如果您在此 AWS 區域中預設啟用加密，則會選取預設加密金鑰。

      如需根磁碟區必要條件的詳細資訊，請參閱[EC2 執行個體休眠的先決條件](hibernating-prerequisites.md)。

   1. 展開 **Advanced details** (進階詳細資訊)，針對 **Stop - Hibernate behavior** (停止 - 休眠行為)，選擇 **Enable** (啟用)。

1. 在 **Summary** (摘要) 面板中，檢閱您的執行個體組態，然後選擇 **Launch instance** (啟動執行個體)。如需詳細資訊，請參閱[使用主控台中的啟動執行個體精靈，啟動 EC2 執行個體](ec2-launch-instance-wizard.md)。

------
#### [ AWS CLI ]

**為隨需執行個體啟用休眠功能**  
使用 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令來啟動執行個體。使用 `--block-device-mappings file://mapping.json` 參數指定 EBS 根磁碟區參數，然後使用 `--hibernation-options Configured=true` 參數啟用休眠。

```
aws ec2 run-instances \
    --image-id ami-0abcdef1234567890 \
    --instance-type m5.large \
    --block-device-mappings file://mapping.json \
    --hibernation-options Configured=true \
    --count 1 \
    --key-name MyKeyPair
```

在 `mapping.json` 中指定下列內容。

```
[
    {
        "DeviceName": "/dev/xvda",
        "Ebs": {
            "VolumeSize": 30,
            "VolumeType": "gp2",
            "Encrypted": true
        }
    }
]
```

`DeviceName` 的值必須符合與 AMI 相關聯的根設備名稱。若要尋找根設備名稱，請使用 [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) 命令。

```
aws ec2 describe-images --image-id ami-0abcdef1234567890
```

如果您在此 AWS 區域中預設啟用加密，您可以省略 `"Encrypted": true`。

------
#### [ PowerShell ]

**為隨需執行個體啟用休眠功能**  
使用 [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) 命令來啟動執行個體。先定義區塊型設備映射，然後使用 `-BlockDeviceMappings` 參數將其新增至命令，以指定 EBS 根磁碟區。使用 `-HibernationOptions_Configured $true` 參數啟用休眠。

```
$ebs_encrypt = New-Object Amazon.EC2.Model.BlockDeviceMapping
$ebs_encrypt.DeviceName = "/dev/xvda"
$ebs_encrypt.Ebs = New-Object Amazon.EC2.Model.EbsBlockDevice
$ebs_encrypt.Ebs.VolumeSize = 30
$ebs_encrypt.Ebs.VolumeType = "gp2"
$ebs_encrypt.Ebs.Encrypted = $true

New-EC2Instance `
    -ImageId ami-0abcdef1234567890 `
    -InstanceType m5.large `
    -BlockDeviceMappings $ebs_encrypt `
    -HibernationOptions_Configured $true `
    -MinCount 1 `
    -MaxCount 1 `
    -KeyName MyKeyPair
```

`DeviceName` 的值必須符合與 AMI 相關聯的根設備名稱。若要尋找根設備名稱，請使用 [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) 命令。

```
Get-EC2Image -ImageId ami-0abcdef1234567890
```

如果您在此 AWS 區域中預設啟用加密，您可以從`Encrypted = $true`區塊型設備映射中省略 。

------

## 為 Spot 執行個體啟用休眠功能
<a name="enable-hibernation-for-spot-instances"></a>

您可為 Spot 執行個體啟用休眠功能。如需中斷時讓 Spot 執行個體休眠的詳細資訊，請參閱 [Spot 執行個體中斷](spot-interruptions.md)。

------
#### [ Console ]

**為 Spot 執行個體啟用休眠功能**

1. 遵循程序[使用啟動執行個體精靈要求 Spot 執行個體](using-spot-instances-request.md)，但在完成下列步驟以啟用休眠之前，請勿啟動執行個體。

1. 若要啟用休眠功能，請在啟動執行個體精靈中設定下列欄位：

   1. 在 **Application and OS Images (Amazon Machine Image)** (應用程式和作業系統映像 (Amazon Machine Image)) 中，選取支援休眠的 AMI。如需詳細資訊，請參閱[AMI](hibernating-prerequisites.md#hibernation-prereqs-supported-amis)。

   1. 在 **Instance type** (執行個體類型) 中，選取支援的執行個體類型。如需詳細資訊，請參閱[執行個體系列](hibernating-prerequisites.md#hibernation-prereqs-supported-instance-families)。

   1. 在 **Configure storage** (設定儲存) 中，選擇 **Advanced** (進階) (在右側)，並指定根磁碟區的下列資訊：
      + 針對 **Size (GiB) (大小 (GiB))**，輸入 EBS 根磁碟區大小。磁碟區必須夠大，才能存放 RAM 內容並容納您預期的使用量。
      + 針對 **Volume type** (磁碟區類型)，選取支援的 EBS 磁碟區類型：一般用途 SSD (`gp2` 和 `gp3`) 或佈建 IOPS SSD (`io1` 和 `io2`)。
      + 針對 **Encrypted** (加密)，選擇 **Yes** (是)。如果您在此 AWS 區域中預設啟用加密，則會選取**是**。
      + 針對 **KMS key** (KMS 金鑰)，選取磁碟區的加密金鑰。如果您在此 AWS 區域中預設啟用加密，則會選取預設加密金鑰。

      如需根磁碟區必要條件的詳細資訊，請參閱[EC2 執行個體休眠的先決條件](hibernating-prerequisites.md)。

   1. 展開**進階詳細資訊**，除了用於設定 Spot 執行個體的欄位之外，請執行下列操作：

      1. 對於**要求類型**，請選擇**持續**。

      1. 對於**中斷行為**，請選擇**休眠**。或者，對於**停止 - 休眠行為**，請選擇**啟用**。這兩個欄位都能在 Spot 執行個體上啟用休眠。您只須設定其中之一。

1. 在 **Summary** (摘要) 面板中，檢閱您的執行個體組態，然後選擇 **Launch instance** (啟動執行個體)。如需詳細資訊，請參閱[使用主控台中的啟動執行個體精靈，啟動 EC2 執行個體](ec2-launch-instance-wizard.md)。

------
#### [ AWS CLI ]

**為 Spot 執行個體啟用休眠功能**  
使用 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令要求 Spot 執行個體。使用 `--block-device-mappings file://mapping.json` 參數指定 EBS 根磁碟區參數，然後使用 `--hibernation-options Configured=true` 參數啟用休眠。Spot 要求類型 (`SpotInstanceType`) 必須是 `persistent`。

```
aws ec2 run-instances \
    --image-id ami-0abcdef1234567890 \
    --instance-type c4.xlarge \
    --block-device-mappings file://mapping.json \
    --hibernation-options Configured=true \
    --count 1 \
    --key-name MyKeyPair
    --instance-market-options
        {
           "MarketType":"spot",
           "SpotOptions":{
              "MaxPrice":"1",
              "SpotInstanceType":"persistent"
            }
        }
```

在 `mapping.json` 中指定 EBS 根磁碟區參數，如下所示。

```
[
    {
        "DeviceName": "/dev/xvda",
        "Ebs": {
            "VolumeSize": 30,
            "VolumeType": "gp2",
            "Encrypted": true
        }
    }
]
```

`DeviceName` 的值必須符合與 AMI 相關聯的根設備名稱。若要尋找根設備名稱，請使用 [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) 命令。

```
aws ec2 describe-images --image-id ami-0abcdef1234567890
```

如果您在此 AWS 區域中預設啟用加密，您可以省略 `"Encrypted": true`。

------
#### [ PowerShell ]

**為 Spot 執行個體啟用休眠功能**  
使用 [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) 命令來要求 Spot 執行個體。先定義區塊型設備映射，然後使用 `-BlockDeviceMappings` 參數將其新增至命令，以指定 EBS 根磁碟區。使用 `-HibernationOptions_Configured $true` 參數啟用休眠。

```
$ebs_encrypt = New-Object Amazon.EC2.Model.BlockDeviceMapping
$ebs_encrypt.DeviceName = "/dev/xvda"
$ebs_encrypt.Ebs = New-Object Amazon.EC2.Model.EbsBlockDevice
$ebs_encrypt.Ebs.VolumeSize = 30
$ebs_encrypt.Ebs.VolumeType = "gp2"
$ebs_encrypt.Ebs.Encrypted = $true

New-EC2Instance `
    -ImageId ami-0abcdef1234567890 `
    -InstanceType m5.large `
    -BlockDeviceMappings $ebs_encrypt `
    -HibernationOptions_Configured $true `
    -MinCount 1 `
    -MaxCount 1 `
    -KeyName MyKeyPair `
    -InstanceMarketOption @(
        MarketType = spot;
        SpotOptions @{
        MaxPrice = 1;
        SpotInstanceType = persistent}
    )
```

`DeviceName` 的值必須符合與 AMI 相關聯的根設備名稱。若要尋找根設備名稱，請使用 [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) 命令。

```
Get-EC2Image -ImageId ami-0abcdef1234567890
```

如果您在此 AWS 區域中預設啟用加密，您可以從`Encrypted = $true`區塊型設備映射中省略 。

------

## 檢視執行個體是否已啟用休眠
<a name="view-if-instance-is-enabled-for-hibernation"></a>

您可檢查執行個體是否啟用休眠。

------
#### [ Console ]

**檢視執行個體是否已啟用休眠**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Instances** (執行個體)。

1. 選取執行個體，然後在 **Instance details (執行個體詳細資訊)** 區段的 **Details (詳細資料)** 標籤上，檢查 **Stop-hibernate behavior (停止休眠行為)**。**Enabled (啟用)** 表示執行個體已啟用休眠。

------
#### [ AWS CLI ]

**檢視執行個體是否已啟用休眠**  
使用 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令，並指定 `--filters "Name=hibernation-options.configured,Values=true"` 參數來篩選已啟用休眠的執行個體。

```
aws ec2 describe-instances \
    --filters "Name=hibernation-options.configured,Values=true"
```

輸出中的下列欄位表示執行個體已啟用休眠。

```
"HibernationOptions": {
    "Configured": true
}
```

------
#### [ PowerShell ]

**檢視執行個體是否已啟用休眠**  
使用 [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) cmdlet，並篩選已啟用休眠的執行個體。

```
(Get-EC2Instance `
    -Filter @{Name="hibernation-options.configured"; Values="true"}).Instances
```

------

# 在執行個體上停用 KASLR (僅限 Ubuntu)
<a name="hibernation-disable-kaslr"></a>

若要在配備 Ubuntu 16.04 LTS (Xenial Xerus)、Ubuntu 18.04 LTS (Bionic Beaver) (發行序號為 20190722.1 或更新版本) 或 Ubuntu 20.04 LTS (Focal Fossa) (發行序號為 20210820 或更新版本) 的新啟動執行個體上執行休眠，建議停用 KASLR (Kernel Address Space Layout Randomization)。在 Ubuntu 16.04 LTS、Ubuntu 18.04 LTS 或 Ubuntu 20.04 LTS 上，KASLR 預設為啟用。

KASLR 是標準的 Linux 核心安全功能，可以將核心的基底位址值隨機化，有助於儘量避免受到尚未發現的記憶體存取漏洞所拖累和影響。在啟用 KASLR 的情況下，執行個體在休眠之後可能不會恢復。

若要進一步了解 KASLR，請參閱 [Ubuntu 功能](https://wiki.ubuntu.com/Security/Features)。

**在使用 Ubuntu 啟動的執行個體上停用 KASLR**

1. 使用 SSH 連線到您的執行個體。如需詳細資訊，請參閱[使用 SSH 連線至您的 Linux 執行個體](connect-to-linux-instance.md)。

1. 在您選擇的編輯器中開啟 `/etc/default/grub.d/50-cloudimg-settings.cfg` 檔案。編輯 `GRUB_CMDLINE_LINUX_DEFAULT` 行，在行尾附加 `nokaslr` 選項，如下列範例所示。

   ```
   GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0 nvme_core.io_timeout=4294967295 nokaslr"
   ```

1. 儲存檔案並結束您的編輯器。

1. 執行下列命令來重建 grub 組態。

   ```
   sudo update-grub
   ```

1. 重新啟動執行個體。

   ```
   sudo reboot
   ```

1. 執行以下命令來確認已新增 `nokaslr`。

   ```
   cat /proc/cmdline
   ```

   命令的輸出應該會包含 `nokaslr` 選項。

# 讓 Amazon EC2 執行個體進入休眠
<a name="hibernating-instances"></a>

如果執行個體是 EBS 支援的執行個體、[啟用休眠功能](enabling-hibernation.md)並符合[休眠必要條件](hibernating-prerequisites.md)，您可以在隨需執行個體或 Spot 執行個體上啟動休眠。如果無法讓執行個體進入休眠，則會以一般方式關機。

------
#### [ Console ]

**讓執行個體休眠**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Instances** (執行個體)。

1. 選取執行個體，然後選取 **Instance state (執行個體狀態)**、**Hibernate instance (休眠執行個體)**。如果停用了 **Hibernate instance (休眠執行個體)**，則已進入休眠或已停止的執行個體將無法進入休眠。如需詳細資訊，請參閱[EC2 執行個體休眠的先決條件](hibernating-prerequisites.md)。

1. 出現確認提示時，請選擇 **Hibernate (休眠)**。讓執行個體進入休眠可能需要幾分鐘。執行個體狀態會先變更為 **Stopping** (正在停止)，然後在執行個體已進入休眠時變更為 **Stopped** (已停止)。

------
#### [ AWS CLI ]

**讓執行個體休眠**  
使用 [stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) 命令，並指定 `--hibernate` 參數。

```
aws ec2 stop-instances \
    --instance-ids i-1234567890abcdef0 \
    --hibernate
```

------
#### [ PowerShell ]

**讓執行個體休眠**  
使用 [Stop-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html) cmdlet。

```
Stop-EC2Instance `
    -InstanceId i-1234567890abcdef0 `
    -Hibernate $true
```

------

您可以檢查，是否已在執行個體上啟動休眠。

------
#### [ Console ]

**檢視執行個體是否已啟動休眠**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取執行個體，然後在**詳細資訊**索引標籤的**執行個體詳細資訊**區段中，查看**狀態轉換訊息**的值。

   **Client.UserInitiatedHibernate: User initiated hibernate** 表示您已在隨需執行個體或 Spot 執行個體上啟動休眠。

------
#### [ AWS CLI ]

**檢視執行個體是否已啟動休眠**  
使用 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令並指定 `state-reason-code` 篩選條件，以查看已初始化休眠的執行個體。

```
aws ec2 describe-instances \
    --filters "Name=state-reason-code,Values=Client.UserInitiatedHibernate"
```

輸出中的下列欄位表示隨需執行個體或 Spot 執行個體已啟動休眠。

```
"StateReason": {
    "Code": "Client.UserInitiatedHibernate"
}
```

------
#### [ PowerShell ]

**檢視執行個體是否已啟動休眠**  
使用 [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) cmdlet 並指定 `state-reason-code` 篩選條件，以查看已初始化休眠的執行個體。

```
Get-EC2Instance `
    -Filter @{Name="state-reason-code";Value="Client.UserInitiatedHibernate"}
```

------

# 啟動休眠的 Amazon EC2 執行個體
<a name="hibernating-resuming"></a>

透過與啟動已停止執行個體的相同方式，來啟動休眠的執行個體。

對於 Spot 執行個體，如果是 Amazon EC2 讓執行個體休眠，則只有 Amazon EC2 可以恢復執行個體。只有是「您」**讓 Spot 執行個體休眠時，您才能恢復該執行個體。只有在容量可用，且 Spot 價格低於或等於您指定的最高價格時，才能恢復 Spot 執行個體。

------
#### [ Console ]

**啟動休眠的執行個體**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Instances** (執行個體)。

1. 選取休眠的執行個體，並選取 **Instance state (執行個體狀態)**、**Start instance (啟動執行個體)**。執行個體進入 `running` 狀態可能需要數分鐘。在此期間內，執行個體的[狀態檢查](monitoring-system-instance-status-check.md#types-of-instance-status-checks)會顯示執行個體處於失敗狀態，直到執行個體啟動。

------
#### [ AWS CLI ]

**啟動休眠的執行個體**  
使用 [start-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html) 命令。

```
aws ec2 start-instances --instance-ids i-1234567890abcdef0
```

------
#### [ PowerShell ]

**啟動休眠的執行個體**  
使用 [Start-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2Instance.html) cmdlet。

```
Start-EC2Instance -InstanceId i-1234567890abcdef0
```

------

# 對 Amazon EC2 執行個體休眠進行疑難排解
<a name="troubleshoot-instance-hibernate"></a>

使用此資訊來協助您診斷並修正讓執行個體進入休眠時可能遇到的問題。

**Topics**
+ [無法在啟動後立即進入休眠](#hibernate-troubleshooting-1)
+ [從 stopping 轉換為 stopped 花費太長時間，且記憶體狀態未在啟動後復原](#hibernate-troubleshooting-2)
+ [執行個體「卡」在stopping 狀態。](#hibernate-troubleshooting-3)
+ [休眠後無法立即啟動 Spot 執行個體](#hibernate-troubleshooting-4)
+ [繼續執行 Spot 執行個體失敗](#hibernate-troubleshooting-5)

## 無法在啟動後立即進入休眠
<a name="hibernate-troubleshooting-1"></a>

如果您在啟動執行個體後太快嘗試讓執行個體進入休眠，則會出現錯誤。

在啟動後，Linux 執行個體必須等待約兩分鐘，Windows 執行個體必須等待約五分鐘，才能進入休眠狀態。

## 從 stopping 轉換為 stopped 花費太長時間，且記憶體狀態未在啟動後復原
<a name="hibernate-troubleshooting-2"></a>

如果休眠的執行個體花費長時間才能從 `stopping` 狀態轉換為 `stopped`，且如果記憶體狀態未在啟動後復原，則可能表示休眠未正確設定。

**Linux 執行個體**

請檢查執行個體系統日誌，尋找與休眠相關的訊息。若要存取系統日誌，請[連線](connect-to-linux-instance.md)到執行個體，或使用 [get-console-output](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-console-output.html) 命令。從 `hibinit-agent` 尋找日誌行。如果日誌行指出失敗或日誌行不存在，則很可能在啟動時有錯誤的休眠設定。

例如，下列訊息表示執行個體根磁碟區不夠大：`hibinit-agent: Insufficient disk space. Cannot create setup for hibernation. Please allocate a larger root device.`

如果 `hibinit-agent` 最後的日誌行是 `hibinit-agent: Running: swapoff /swap`，則表示休眠已成功設定。

如果您沒有在程序中看到任何日誌，則您的 AMI 可能不支援休眠。如需支援的 AMI 資訊，請參閱[EC2 執行個體休眠的先決條件](hibernating-prerequisites.md)。如果您使用自己的 Linux AMI，請確保遵循 [將 Linux AMI 設定為支援休眠](hibernation-enabled-AMI.md) 的指示。

**Windows Server 2016 及更新版本**  
請檢查 EC2 啟動日誌，尋找與休眠相關的訊息。若要存取 EC2 啟動日誌，[連線](connecting_to_windows_instance.md)至執行個體並在文字編輯器中開啟 `C:\ProgramData\Amazon\EC2-Windows\Launch\Log\Ec2Launch.log` 檔案。如果使用 EC2Launch v2，請開啟 `C:\ProgramData\Amazon\EC2Launch\log\agent.log`。

**注意**  
根據預設，Windows 會將檔案和資料夾隱藏在 `C:\ProgramData` 下。若要檢視 EC2 啟動目錄和檔案，您必須在 Windows 檔案總管中輸入路徑或變更資料夾屬性，才可顯示隱藏的檔案和資料夾。

尋找休眠的日誌行。如果日誌行指出失敗或日誌行不存在，則很可能在啟動時有錯誤的休眠設定。

例如，下列訊息表示無法設定休眠：`Message: Failed to enable hibernation.`。如果錯誤訊息包含十進位 ASCII 值，您可以將 ASCII 值轉換為純文字，以便讀取完整的錯誤訊息。

如果日誌行包含 `HibernationEnabled: true`，則表示休眠已成功設定。

**Windows Server 2012 R2 和舊版**  
請檢查 EC2 設定日誌，尋找與休眠相關的訊息。若要存取 EC2 設定日誌，請[連線](connecting_to_windows_instance.md)至執行個體，接著在文字編輯器中開啟 `C:\Program Files\Amazon\Ec2ConfigService\Logs\Ec2ConfigLog.txt` 檔案。尋找 `SetHibernateOnSleep` 的日誌行。如果日誌行指出失敗或日誌行不存在，則很可能在啟動時有錯誤的休眠設定。

例如，下列訊息表示執行個體根磁碟區不夠大：`SetHibernateOnSleep: Failed to enable hibernation: Hibernation failed with the following error: There is not enough space on the disk.`

如果日誌行是 `SetHibernateOnSleep: HibernationEnabled: true`，則表示休眠已成功設定。

**Windows 執行個體大小**  
如果您使用的是具有少於 1 GiB RAM 的 T3 或 T3a Windows 執行個體，請嘗試將執行個體的大小增加為具有至少 1 GiB RAM 的執行個體大小。

## 執行個體「卡」在stopping 狀態。
<a name="hibernate-troubleshooting-3"></a>

如果您讓執行個體進入休眠，但該執行個體「卡」在`stopping` 狀態，您可以強制將其停止。如需詳細資訊，請參閱[對 Amazon EC2 執行個體停止問題進行疑難排解](TroubleshootingInstancesStopping.md)。

## 休眠後無法立即啟動 Spot 執行個體
<a name="hibernate-troubleshooting-4"></a>

如果您嘗試在休眠後兩分鐘內啟動 Spot 執行個體，可能會出現下列錯誤：

`You failed to start the Spot Instance because the associated Spot Instance request is not in an appropriate state to support start.`

Linux 執行個體須等待大約兩分鐘，Windows 執行個體須等待大約五分鐘，然後重試啟動執行個體。

## 繼續執行 Spot 執行個體失敗
<a name="hibernate-troubleshooting-5"></a>

如果您的 Spot 執行個體已成功休眠，但是無法繼續執行，而是會重新啟動 (未保留休眠狀態而直接重新啟動)，可能是因為使用者資料包含下列指令碼：

```
/usr/bin/enable-ec2-spot-hibernation
```

從啟動範本的**使用者資料**欄位中移除此指令碼，然後請求新的 Spot 執行個體。

請注意，即使執行個體無法繼續執行，在不保留休眠狀態的狀態下，仍可使用與從 `stopped` 狀態啟動的相同方式啟動執行個體。

# 重新啟動您的 Amazon EC2 執行個體
<a name="ec2-instance-reboot"></a>

重新啟動執行個體等同於重新啟動作業系統。在大多數情況下，將執行個體重新開機只需要幾分鐘的時間。

重新啟動執行個體時，其會保留下列項目：
+ 公有 DNS 名稱 (IPv4)
+ 私有 IPv4 地址
+ 公有 IPv4 地址
+ IPv6 地址 (如適用)
+ 其執行個體儲存體磁碟區上的任何資料

有別於[停用和啟動](Stop_Start.md)執行個體 (會開啟新帳單週期，最少收費一分鐘)，重新啟動執行個體不會啟動新的執行個體帳單期間。

執行個體重新啟動可以由使用者啟動 （其中您手動重新啟動執行個體） 或由 啟動 AWS （用於自動執行個體復原，或回應排程的重新啟動事件以進行必要的維護，例如套用需要重新啟動的更新）。

對於使用者啟動的重新啟動，建議您使用 Amazon EC2 主控台、CLI 或 API，而非從執行個體中執行作業系統重新啟動命令。使用 Amazon EC2 時，若執行個體未在幾分鐘內正常關機，Amazon EC2 會執行強制重新啟動。此外， 會在執行個體重新啟動時 AWS CloudTrail 建立 的 API 記錄。

本主題說明如何執行使用者啟動的重新啟動。如需 所執行重新啟動的相關資訊 AWS，請參閱 [自動執行個體復原功能](ec2-instance-recover.md)和 [管理已排程進行重新啟動的 Amazon EC2 執行個體](schedevents_actions_reboot.md)。

**重要**  
如果正在執行個體上安裝更新，建議您不要在所有更新安裝完畢之前，使用 Amazon EC2 主控台或命令列來重新啟動或關機執行個體。當您使用 Amazon EC2 主控台或命令列重新開機或關機執行個體時，會有硬式重新開機執行個體的風險。正在安裝更新時的硬式重新開機可能會讓執行個體進入不穩定狀態。

------
#### [ Console ]

**重新啟動執行個體**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取執行個體，然後選取 **Instance state** (執行個體狀態)、**Reboot instance** (將執行個體重新開機)。

1. 出現確認提示時，選擇**重新開機**。

   執行個體會保持在 `running` 狀態。

------
#### [ AWS CLI ]

**重新啟動執行個體**  
使用 [reboot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/reboot-instances.html) 命令。

```
aws ec2 reboot-instances --instance-ids i-1234567890abcdef0
```

------
#### [ PowerShell ]

**重新啟動執行個體**  
使用 [Restart-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Restart-EC2Instance.html) cmdlet。

```
Restart-EC2Instance -InstanceId i-1234567890abcdef0
```

------

**若要執行受控的錯誤注入實驗**  
您可以使用 AWS Fault Injection Service 來測試重新啟動執行個體時應用程式如何回應。如需詳細資訊，請參閱「[AWS Fault Injection Service 使用者指南](https://docs.aws.amazon.com/fis/latest/userguide/what-is.html)」。

# 終止 Amazon EC2 執行個體
<a name="terminating-instances"></a>

**警告**  
**終止執行個體的操作為永久性且無法復原。**  
終止執行個體後，您將無法再連線至該執行個體，且無法復原該執行個體。所有設定為終止時刪除的已連接 Amazon EBS 磁碟區，也會被永久刪除且無法復原。儲存在執行個體儲存體磁碟區的所有資料將永久遺失。如需詳細資訊，請參閱[終止執行個體的運作方式](how-ec2-instance-termination-works.md)。  
在終止執行個體之前，確認您已將終止使用後需要保留的全部資料備份至持久性儲存體。

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

執行個體終止後，您將無法連接或啟動該執行個體。然而，您可使用相同 AMI 來啟動新的執行個體。

若您希望停止執行個體，或讓其進入休眠，請參閱 [停止和啟動 Amazon EC2 執行個體](Stop_Start.md) 或 [讓 Amazon EC2 執行個體進入休眠](Hibernate.md)。如需詳細資訊，請參閱[執行個體狀態之間的差異](ec2-instance-lifecycle.md#lifecycle-differences)。

**Topics**
+ [終止執行個體的運作方式](how-ec2-instance-termination-works.md)
+ [終止執行個體的方法](instance-terminate-methods.md)
+ [在作業系統正常關機的情況下終止執行個體](#terminating-instances-console)
+ [終止執行個體並繞過作業系統正常關機](#terminating-instances-bypass-graceful-os-shutdown)
+ [對執行個體終止進行故障診斷](#troubleshoot-instance-terminate)
+ [變更執行個體終止保護](Using_ChangingDisableAPITermination.md)
+ [變更執行個體啟動的關機行為](Using_ChangingInstanceInitiatedShutdownBehavior.md)
+ [在執行個體終止時保留資料](preserving-volumes-on-termination.md)

# 終止執行個體的運作方式
<a name="how-ec2-instance-termination-works"></a>

當您終止執行個體時，變更會在執行個體的作業系統 (OS) 層級註冊，而有些資源會遺失，有些則會保留。

下圖顯示 Amazon EC2 執行個體終止時遺失及持續存在的內容。當執行個體終止時，任何執行個體儲存體磁碟區上的資料和存放執行個體 RAM 的資料都會遭到清除。已停止連結與執行個體相關聯的任何彈性 IP 位址。針對 Amazon EBS 根磁碟區和資料磁碟區，結果取決於磁碟區的**終止時刪除**設定。

![\[執行個體終止時，IP 位址、RAM、執行個體儲存體磁碟區和 EBS 根磁碟區都會遺失。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/terminate-instance.png)


## 考量事項
<a name="terminate-instance-overview"></a>
+ **資料持久性**
  + 執行個體儲存體磁碟區：當執行個體終止時，所有資料都會永久刪除。
  + EBS 根磁碟區：
    + 若在啟動時連接，預設會在執行個體終止時刪除。
    + 若啟動後連接，預設會在執行個體終止時持續存在。
  + EBS 資料磁碟區：
    + 若使用主控台在啟動時連接：執行個體終止時，預設會持續存在。
    + 若使用 CLI 在啟動時連接：預設在執行個體終止時刪除。
    + 若使用主控台或 CLI 在啟動後連接：執行個體終止時，預設會持續存在。
**注意**  
執行個體終止時未刪除的任何磁碟區將繼續產生費用。您可變更設定，以在執行個體終止時刪除或保留磁碟區。如需詳細資訊，請參閱[在執行個體終止時保留資料](preserving-volumes-on-termination.md)。
+ **防止意外終止**
  + 若要避免遭人員意外終止執行個體，可[啟用執行個體的終止保護](Using_ChangingDisableAPITermination.md)。
  + 若要控制執行個體從執行個體觸發關機時，執行個體是否停止或終止，請變更[執行個體觸發的關機行為](Using_ChangingInstanceInitiatedShutdownBehavior.md)。
+ **關閉指令碼** - 如果您在執行個體終止時執行指令碼，則執行個體可能會發生異常終止，因為我們無法確保關閉指令碼執行。Amazon EC2 會嘗試完全關閉執行個體，並執行任何系統關閉指令碼；不過，某些事件 (例如硬體故障) 可能會使這些系統關閉指令碼無法執行。
+ **裸機執行個體** – x86 裸機執行個體不支援協作關機。

## 若您終止執行個體會如何
<a name="what-happens-terminate"></a>

**在作業系統層級註冊的變更**
+ API 請求會將按鈕事件傳送給訪客。
+ 由於按鈕事件而停止各種系統服務。系統的順利關機是由 **systemd** (Linux) 或系統流程 (Windows) 提供。順利關機由從 Hypervisor 按下 ACPI 關機按鈕事件觸發。
+ 啟動 ACPI 關機。
+ 當順利關機程序結束後，執行個體就會關機。OS 關機時間無法設定。執行個體仍會短暫顯示於主控台，之後該項目會自動刪除。

**資源遺失**
+ 存放在執行個體儲存體磁碟區的資料。
+ 若 `DeleteOnTermination` 屬性設定為 `true`，則為 EBS 根磁碟區。
+ 若 `DeleteOnTermination` 屬性設定為 `true`，EBS 資料磁碟區 (在啟動時或之後連接)。

**持續存在的資源**
+ 若 `DeleteOnTermination` 屬性設定為 `false`，則為 EBS 根磁碟區。
+ 若 `DeleteOnTermination` 屬性設定為 `false`，EBS 資料磁碟區 (在啟動時或之後連接)。

## 測試應用程式對執行個體終止的回應
<a name="test-terminate-instance"></a>

您可以使用 AWS Fault Injection Service 來測試您的應用程式在執行個體終止時如何回應。如需詳細資訊，請參閱[「AWS Fault Injection Service 使用者指南」](https://docs.aws.amazon.com/fis/latest/userguide/what-is.html)。

# 終止執行個體的方法
<a name="instance-terminate-methods"></a>

**警告**  
**終止執行個體的操作為永久性且無法復原。**  
終止執行個體後，您將無法再連線至該執行個體，且無法復原該執行個體。所有設定為終止時刪除的已連接 Amazon EBS 磁碟區，也會被永久刪除且無法復原。儲存在執行個體儲存體磁碟區的所有資料將永久遺失。如需詳細資訊，請參閱[終止執行個體的運作方式](how-ec2-instance-termination-works.md)。  
在終止執行個體之前，確認您已將終止使用後需要保留的全部資料備份至持久性儲存體。

使用者發起的執行個體終止有四種方式：預設終止、跳過作業系統關機的終止、強制終止，以及跳過作業系統關機的強制終止。下表比較各終止方法之間的核心差異：

**注意**  
如果開啟終止保護，則無法終止執行個體。如需詳細資訊，請參閱[變更執行個體終止保護](Using_ChangingDisableAPITermination.md)。


| 終止方法 | 主要用途 | 使用案例 | CLI 命令 | 
| --- | --- | --- | --- | 
| 預設終止 | 嘗試作業系統正常關機的一般執行個體關機。 | 一般執行個體終止。 | <pre>aws ec2 terminate-instances \<br />--instance-id i-1234567890abcdef0</pre> | 
| 透過跳過作業系統關機來終止 | 終止執行個體時繞過作業系統正常關機。 | 需要繞過作業系統正常關機時。 | <pre>aws ec2 terminate-instances \<br />--instance-id i-1234567890abcdef0 \<br />--skip-os-shutdown</pre> | 
| 強制終止 | 處理停滯的執行個體。會先嘗試預設終止；若執行個體無法終止，則強制終止執行個體。 | 執行個體卡在 shutting-down 狀態時。 | <pre>aws ec2 terminate-instances \<br />--instance-id i-1234567890abcdef0 \<br />--force</pre> | 
| 在跳過作業系統關機時強制終止 | 終止執行個體時，強制終止並繞過作業系統正常關機。 | 需要強制終止並繞過作業系統正常關機時。 | <pre>aws ec2 terminate-instances \<br />--instance-id i-1234567890abcdef0 \<br />--force \<br />--skip-os-shutdown</pre> | 

各方法的使用指示，請參閱下列內容：
+ [在作業系統正常關機的情況下終止執行個體](terminating-instances.md#terminating-instances-console)
+ [終止執行個體並繞過作業系統正常關機](terminating-instances.md#terminating-instances-bypass-graceful-os-shutdown)
+ [強制終止執行個體](TroubleshootingInstancesShuttingDown.md#force-terminate-ec2-instance)

## 在作業系統正常關機的情況下終止執行個體
<a name="terminating-instances-console"></a>

您可以使用預設終止方法終止執行個體，其中包括嘗試作業系統正常關機。如需詳細資訊，請參閱[終止執行個體的方法](instance-terminate-methods.md)。

------
#### [ Console ]

**使用預設終止方法以終止執行個體**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取執行個體，並選取**執行個體狀態**、**終止 (刪除) 執行個體**。

1. 出現確認提示時，請選擇**終止 (刪除)**。

1. 在執行個體終止後，仍會以 `terminated` 狀態短暫顯示。

   如果終止失敗，或終止的執行個體已顯示超過數小時，請參閱 [仍顯示已終止的執行個體](TroubleshootingInstancesShuttingDown.md#terminated-instance-still-displaying)。

------
#### [ AWS CLI ]

**使用預設終止方法以終止執行個體**  
使用 [terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html) 命令。

```
aws ec2 terminate-instances --instance-ids i-1234567890abcdef0
```

------
#### [ PowerShell ]

**使用預設終止方法以終止執行個體**  
使用 [Remove-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2Instance.html) cmdlet。

```
Remove-EC2Instance -InstanceId i-1234567890abcdef0
```

------

## 終止執行個體並繞過作業系統正常關機
<a name="terminating-instances-bypass-graceful-os-shutdown"></a>

您可以在終止執行個體時繞過作業系統正常關機。如需詳細資訊，請參閱[終止執行個體的方法](instance-terminate-methods.md)。

------
#### [ Console ]

**終止執行個體並繞過作業系統正常關機**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取執行個體，並選取**執行個體狀態**、**終止 (刪除) 執行個體**。

1. 在**跳過作業系統關機**下，選取**跳過作業系統關機**核取方塊。若您在主控台中未看見此選項，表示目前區域的主控台尚未提供此功能。不過，您可以使用 AWS CLI 或 SDK 存取此功能，或在 主控台中嘗試其他區域。

1. 選擇**終止 (刪除)**。

1. 在執行個體終止後，仍會以 `terminated` 狀態短暫顯示。

   如果終止失敗，或終止的執行個體已顯示超過數小時，請參閱 [仍顯示已終止的執行個體](TroubleshootingInstancesShuttingDown.md#terminated-instance-still-displaying)。

------
#### [ AWS CLI ]

**終止執行個體並繞過作業系統正常關機**  
搭配使用 [terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html) 命令與 `--skip-os-shutdown`。

```
aws ec2 terminate-instances \
    --instance-ids i-1234567890abcdef0 \
    --skip-os-shutdown
```

------
#### [ PowerShell ]

**終止執行個體並繞過作業系統正常關機**  
搭配使用 [Remove-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2Instance.html) cmdlet 與`-SkipOsShutdown $true`。

```
Remove-EC2Instance `
    -InstanceId i-1234567890abcdef0 `
    -SkipOsShutdown $true
```

------

## 對執行個體終止進行故障診斷
<a name="troubleshoot-instance-terminate"></a>

請求者必須具有呼叫 `ec2:TerminateInstances` 的許可。如需詳細資訊，請參閱[使用執行個體的範例政策](ExamplePolicies_EC2.md#iam-example-instances)。

如果終止您的執行個體，並啟動另一個執行個體，很可能您已經透過像 EC2 Fleet 或 Amazon EC2 Auto Scaling 這樣的功能來設定自動擴展。如需詳細資訊，請參閱[執行個體自動啟動或終止](TroubleshootingInstancesShuttingDown.md#automatic-instance-create-or-delete)。

**注意**  
如果開啟終止保護，則無法終止執行個體。如需詳細資訊，請參閱[變更執行個體終止保護](Using_ChangingDisableAPITermination.md)。

若您的執行個體處於 `shutting-down` 狀態的時間比平常更長，您可以嘗試強制終止。若您保持在 `shutting-down` 狀態，應該會由 Amazon EC2 服務內的自動化程序清理 (終止)。如需詳細資訊，請參閱[延遲的執行個體終止](TroubleshootingInstancesShuttingDown.md#instance-stuck-terminating)。

# 變更執行個體終止保護
<a name="Using_ChangingDisableAPITermination"></a>

若要防止執行個體透過 Amazon EC2 API 被意外終止，無論您是直接呼叫 `TerminateInstances`，還是使用 Amazon EC2 主控台等其他介面，請為該執行個體啟用*終止保護*。`DisableApiTermination` 屬性可控制執行個體是否可終止。您執行個體的終止保護預設為停用。您可在執行個體啟動時、運作中或停止時，設定此屬性值。

在 `InstanceInitiatedShutdownBehavior` 屬性設定為 `terminate` 時，`DisableApiTermination` 屬性不會讓您無法從執行個體啟動關機 (例如，使用作業系統命令進行系統關機) 來終止該執行個體。如需詳細資訊，請參閱[變更執行個體啟動的關機行為](Using_ChangingInstanceInitiatedShutdownBehavior.md)。

**考量事項**
+ 當有終止執行個體的[排程事件](monitoring-instances-status-check_sched.md)時，啟用終止保護不會 AWS 阻止 終止執行個體。
+ 啟用終止保護不會阻止 Amazon EC2 Auto Scaling 在執行個體狀態不良時或在縮減事件期間終止執行個體。您可以使用[執行個體停止保護功能](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html)，控制 Auto Scaling 群組是否能在縮減時終止特定的執行個體。您可以[暫停 ReplaceUnhealthy 縮減程序](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html)，以控制 Auto Scaling 群組是否能終止運作狀態不佳的執行個體。
+ 您無法為 競價型執行個體啟用終止保護。

------
#### [ Console ]

**欲在執行個體啟動時啟用終止保護**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在儀表板上，選擇**啟動執行個體**。

1. 展開 **Advanced Details** (進階詳細資訊)。對於**終止保護**，選取**啟用**。

1. 完成執行個體的詳細資訊的指定後，請選擇**啟動執行個體**。

**變更執行個體的終止保護**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選取 **Instances** (執行個體)。

1. 選取執行個體。

1. 選擇**動作**、**執行個體設定**、**變更終止保護**。

1. 對於**終止保護**，請選取或清除**啟用**。

1. 選擇**儲存**。

------
#### [ AWS CLI ]

**欲在執行個體啟用終止保護**  
使用 [modify-instance-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html) 命令。

```
aws ec2 modify-instance-attribute \
    --instance-id i-1234567890abcdef0 \
    --disable-api-termination
```

**停用執行個體的終止保護**  
使用 [modify-instance-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html) 命令。

```
aws ec2 modify-instance-attribute \
    --instance-id i-1234567890abcdef0 \
    --no-disable-api-termination
```

------
#### [ PowerShell ]

**欲在執行個體啟用終止保護**  
使用 [Edit-EC2InstanceAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html) cmdlet。

```
Edit-EC2InstanceAttribute `
    -InstanceId i-1234567890abcdef0 `
    -DisableApiTermination $true
```

**停用執行個體的終止保護**  
使用 [Edit-EC2InstanceAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html) cmdlet。

```
Edit-EC2InstanceAttribute `
    -InstanceId i-1234567890abcdef0 `
    -DisableApiTermination $false
```

------

## 使用終止保護來終止多個執行個體
<a name="terminate-multiple"></a>

在相同需求中，若您跨多個可用區域中終止多個執行個體，並啟用一個或多個指定的執行個體以進行終止保護，則要求會失敗，並顯示下列結果：
+ 不會終止與受保護執行個體位於相同可用區域中的指定執行個體。
+ 位於不同可用區域中的指定執行個體 (其中沒有其他指定執行個體受到保護) 會成功終止。

**範例**  
假設您在兩個可用區域中有以下四個執行個體。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/Using_ChangingDisableAPITermination.html)

如果您嘗試在同一個請求中終止所有這些執行個體，請求會報告失敗，結果如下：
+ **執行個體 1** 和**執行個體 2 **已成功終止，因為兩個執行個體皆未啟用終止保護。
+ **執行個體 3** 和**執行個體 4** 無法終止，因為執行個體 **3** 已啟用終止保護。

# 變更執行個體啟動的關機行為
<a name="Using_ChangingInstanceInitiatedShutdownBehavior"></a>

**警告**  
**終止執行個體的操作為永久性且無法復原。**  
終止執行個體後，您將無法再連線至該執行個體，且無法復原該執行個體。所有設定為終止時刪除的已連接 Amazon EBS 磁碟區，也會被永久刪除且無法復原。儲存在執行個體儲存體磁碟區的所有資料將永久遺失。如需詳細資訊，請參閱[終止執行個體的運作方式](how-ec2-instance-termination-works.md)。  
在終止執行個體之前，確認您已將終止使用後需要保留的全部資料備份至持久性儲存體。

根據預設，從 Amazon EBS 後端執行個體起始關閉動作時 (使用 **shutdown** 或 **poweroff** 等命令)，該執行個體會停止。您可變更此行為，來讓執行個體終止，而無需變更執行個體的 `InstanceInitiatedShutdownBehavior` 屬性。您可在執行個體運作中或停止時，變更此屬性。

**halt** 命令不會啟動關機。如果使用，則執行個體不會終止；而是會將 CPU 放入 `HLT`，而且執行個體仍會繼續執行。

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

------
#### [ Console ]

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

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取實例。

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

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

1. 若要變更此行為，對於**關機行為**，選擇**停止**或**終止**。

1. 選擇**儲存**。

------
#### [ AWS CLI ]

**變更執行個體啟動的關機行為**  
使用 [modify-instance-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html) 命令。

```
aws ec2 modify-instance-attribute \
    --instance-id i-1234567890abcdef0 \
    --instance-initiated-shutdown-behavior terminate
```

------
#### [ PowerShell ]

**變更執行個體啟動的關機行為**  
使用 [Edit-EC2InstanceAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html) cmdlet。

```
Edit-EC2InstanceAttribute `
    -InstanceId i-1234567890abcdef0 `
    -InstanceInitiatedShutdownBehavior terminate
```

------

# 在執行個體終止時保留資料
<a name="preserving-volumes-on-termination"></a>

當 Amazon EC2 執行個體終止時，您可能會想要保留執行個體儲存體磁碟區或 Amazon EBS 磁碟區上的資料。本主題說明如何確保您的資料在執行個體終止後仍能保留。

## 執行個體終止如何影響根磁碟區與資料磁碟區
<a name="how-instance-termination-affects-root-and-data-volumes"></a>

**執行個體儲存體磁碟區**  
執行個體終止時，執行個體儲存體磁碟區上的任何資料會自動刪除，其中的資料也會遺失。要將此資料保留超過執行個體的存留期，在終止執行個體之前，手動將該資料複製到更持久的儲存體，例如 Amazon EBS 磁碟區、Amazon S3 儲存貯體或 Amazon EFS 檔案系統。如需詳細資訊，請參閱[Amazon EC2 執行個體的儲存選項](Storage.md)。

**Amazon EBS 磁碟區**  
執行個體終止時，EBS 磁碟區會被刪除或保留，取決於每個磁碟區的 `DeleteOnTermination` 屬性值：
+ **是** (主控台) / `true` (CLI) – 磁碟區會在執行個體終止時遭到刪除。
+ **否** (主控台) / `false` (CLI) – 磁碟區會在執行個體終止時保留。保留的磁碟區會持續產生費用。
**注意**  
執行個體終止後，您可拍攝已保留磁碟區的快照，並將其連接到另一個執行個體。要避免產生費用，您必須刪除磁碟區。

## EBS 磁碟區的預設刪除行為
<a name="default-deletion-behavior-for-ebs-volumes"></a>

預設 `DeleteOnTermination` 值會根據磁碟區類型、磁碟區是在啟動時還是之後連接，以及用來連接磁碟區的方法 (主控台或 CLI) 而有所不同：


| 磁碟區類型 | 連接時間 | 連接方法 | 執行個體終止時的預設行為 | 
| --- | --- | --- | --- | 
| 根磁碟區 | 啟動時 | 主控台或 CLI | 刪除 | 
| 根磁碟區 | After launch (啟動後) | 主控台或 CLI | 保留 | 
| 資料量 | 啟動時 | 主控台 | 保留 | 
| 資料量 | 啟動時 | CLI | 刪除 | 
| 資料量 | After launch (啟動後) | 主控台和 CLI | 保留 | 

## 檢查磁碟區持久性設定
<a name="check-ebs-volume-persistence-settings"></a>

EBS 磁碟區在啟動時的預設值取決於 AMI 上設定的 `DeleteOnTermination` 屬性。您可以在啟動執行個體時變更此值，覆寫 AMI 的設定。啟動執行個體後，建議您驗證 `DeleteOnTermination` 屬性的預設設定。

**檢查執行個體終止時是否會刪除 Amazon EBS 磁碟區**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取執行個體。

1. 選擇**儲存**分頁。

1. 在**區塊型儲存設備**下，向右捲動以檢查**終止時刪除**欄。
   + 如果為**是**，磁碟區會在執行個體終止時遭到刪除。
   + 如果為**否**，磁碟區不會在執行個體終止時遭到刪除。未刪除的所有磁碟區都會持續產生費用。

## 在啟動時將根磁碟區變更為保留
<a name="delete-on-termination-ebs-volume"></a>

您可以在啟動執行個體時變更 EBS 根磁碟區的 `DeleteOnTermination` 屬性。您也可對資料磁碟區使用下列程序。

------
#### [ Console ]

**欲在啟動時將執行個體的根磁碟區變更為保留**

1. 遵循程序[啟動執行個體](ec2-launch-instance-wizard.md)，但在完成下列步驟以將根磁碟區變更為保留之前，請勿啟動執行個體。

1. 在**設定儲存**窗格中，選擇**進階**。

1. 在 **EBS 磁碟區**下方，展開根磁碟區下的資訊。

1. 針對**在終止時刪除**，選擇**否**。

1. 在 **Summary** (摘要) 面板中，檢閱您的執行個體組態，然後選擇 **Launch instance** (啟動執行個體)。如需詳細資訊，請參閱[使用主控台中的啟動執行個體精靈，啟動 EC2 執行個體](ec2-launch-instance-wizard.md)。

------
#### [ AWS CLI ]

**欲在啟動時將執行個體的根磁碟區變更為保留**  
使用 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令，變更區塊型儲存設備映射中的 `DeleteOnTermination` 值。

新增 `--block-device-mappings` 選項：

```
--block-device-mappings file://mapping.json
```

在 `mapping.json` 中，指定裝置名稱，例如 `/dev/sda1` 或者 `/dev/xvda`，針對 `DeleteOnTermination`，指定 `false`。

```
[
  {
    "DeviceName": "device_name",
    "Ebs": {
      "DeleteOnTermination": false
    }
  }
]
```

------
#### [ PowerShell ]

**欲在啟動時將執行個體的根磁碟區變更為保留**  
使用 [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) cmdlet，變更區塊型儲存設備映射中的 `DeleteOnTermination` 值。

新增 `-BlockDeviceMapping` 選項：

```
-BlockDeviceMapping $bdm
```

在 `bdm` 中，指定裝置名稱，例如 `/dev/sda1` 或者 `/dev/xvda`，針對 `DeleteOnTermination`，指定 `false`。

```
$ebd = New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice
$ebd.DeleteOnTermination = false
$bdm = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping
$bdm.DeviceName = "/dev/sda1"
$bdm.Ebs = $ebd
```

------

## 將執行中執行個體的根磁碟區變更為保留
<a name="delete-on-termination-running-instance"></a>

您可以將執行中執行個體的 EBS 根磁碟區變更為保留。您也可對資料磁碟區使用下列程序。

------
#### [ AWS CLI ]

**將根磁碟區變更為持續存在**  
使用 [modify-instance-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html) 命令。

```
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
    }
  }
]
```

------
#### [ PowerShell ]

**將根磁碟區變更為持續存在**  
使用 [Edit-EC2InstanceAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html) cmdlet。

新增 `-BlockDeviceMapping` 選項：

```
-BlockDeviceMapping $bdm
```

在 `bdm` 中，指定裝置名稱，例如 `/dev/sda1` 或者 `/dev/xvda`，針對 `DeleteOnTermination`，指定 `false`。

```
$ebd = New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice
$ebd.DeleteOnTermination = false
$bdm = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping
$bdm.DeviceName = "/dev/sda1"
$bdm.Ebs = $ebd
```

------

# 執行個體淘汰
<a name="instance-retirement"></a>

當 AWS 偵測到託管執行個體的基礎硬體發生無法修復的故障時，執行個體會排程淘汰。執行個體根磁碟區類型會決定執行個體淘汰的行為：
+ 如果您的執行個體根磁碟區是 Amazon EBS 磁碟區，執行個體會停止，且您可以隨時再次將其啟動。啟動停止的執行個體會將其遷移至新硬體。
+ 如果您的執行個體根磁碟區是執行個體儲存體磁碟區，執行個體會終止，且無法再次使用。

如需執行個體事件類型的詳細資訊，請參閱[Amazon EC2 執行個體的排程事件](monitoring-instances-status-check_sched.md)。

**Topics**
+ [識別排程淘汰的執行個體](#instance-retirement-identify)
+ [針對已排程淘汰的 EBS 後端執行個體採取的動作](#instance-retirement-actions-EBS)
+ [針對排程淘汰的執行個體存放區支援執行個體採取的動作](#instance-retirement-actions-instance-store)

## 識別排程淘汰的執行個體
<a name="instance-retirement-identify"></a>

如果已排程淘汰您的執行個體，則您會在事件執行之前收到一封內含執行個體 ID 及淘汰日期的電子郵件。您也可以檢查排程為淘汰的執行個體。

**重要**  
如果執行個體已排程停用，建議您儘快採取動作，因為執行個體可能已經無法連線。如需詳細資訊，請參閱[Check if your instance is reachable](#check-instance)。

**Topics**
+ [監控帳戶聯絡人的電子郵件](#identify-by-email)
+ [檢查您的執行個體](#identify-in-console-cli)

### 監控帳戶聯絡人的電子郵件
<a name="identify-by-email"></a>

若執行個體已排定淘汰，帳戶的主要聯絡人和營運聯絡人會在事件發生前收到電子郵件。此電子郵件包含了執行個體 ID 和排定的淘汰日期。如需詳細資訊，請參閱《 *AWS 帳戶管理 參考指南*》中的[更新 AWS 帳戶的主要聯絡人](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact-primary.html)和[更新 AWS 帳戶的替代聯絡人](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact-alternate.html)。

### 檢查您的執行個體
<a name="identify-in-console-cli"></a>

若您使用的電子郵件帳戶未定期檢查，可能會錯過執行個體淘汰通知。您隨時可以檢查是否有任何執行個體已排定淘汰。<a name="identify-retiring-instances"></a>

------
#### [ Console ]

**確定排程淘汰的執行個體**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **EC2 Dashboard (EC2 儀表板)**。在**排程事件**下，您可以看到與 Amazon EC2 執行個體和磁碟區相關聯的事件，依區域組織。  
![\[排程事件\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/dashboard-scheduled-events.png)

1. 如果您有一個已列出排程事件的執行個體，請在區域名稱下方選取其連結以前往 **Events (事件)** 頁面。

1. **事件**頁面列出所有資源，以及與其相關聯的事件。若要檢視已排定淘汰的執行個體，請從第一個篩選條件清單中選取 **Instance resources (執行個體資源)**，然後從第二個篩選條件清單中選取 **Instance stop or retirement (停止或淘汰執行個體)**。

1. 如果篩選條件結果顯示執行個體已排定淘汰，請將其選取，然後記下詳細資訊窗格中 **Start time (開始時間)** 欄位中的日期和時間。這是您的執行個體淘汰日期。

------
#### [ AWS CLI ]

**找到排程淘汰的執行個體**  
使用下列 [describe-instance-status](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-status.html) 命令。在您有執行中執行個體的每個區域重複執行。

```
aws ec2 describe-instance-status --filters Name=event.code,Values=instance-retirement
```

------
#### [ PowerShell ]

**找到排程淘汰的執行個體**  
使用 [Get-EC2InstanceStatus](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceStatus.html) cmdlet。在您有執行中執行個體的每個區域重複執行。

```
Get-EC2InstanceStatus -Filter @{Name="event.code"; Values="instance-retirement"}
```

------

## 針對已排程淘汰的 EBS 後端執行個體採取的動作
<a name="instance-retirement-actions-EBS"></a>

若要保留已淘汰執行個體上的資料，您可以執行下列其中一個動作。在執行個體淘汰日期之前採取此動作非常重要，以防止不可預期的停機時間和資料遺失。

對於 Linux 執行個體，如果您不確定您的執行個體是否為 EBS 或執行個體儲存體的後端，請參閱 [Amazon EC2 執行個體的根磁碟區](RootDeviceStorage.md)。

**檢查您的執行個體是否可存取**

當您收到執行個體已排程停用的通知時，我們建議您儘快採取下列動作：
+ 透過[連線](connect.md)或 ping 您的執行個體來檢查您的執行個體是否可以存取。
+ 如果可取得您的執行個體，您應該計劃在排程的停止日期之前的適當時間停止/啟動執行個體，這影響最小。如需停止和啟動執行個體的詳細資訊，以及執行個體停止時會發生何事，例如與該執行個體相關聯的公有、私有和彈性 IP 地址的影響，請參閱[停止和啟動 Amazon EC2 執行個體](Stop_Start.md)。請注意，當您停止並啟動執行個體時，執行個體存放區磁碟區上的資料會遺失。
+ 如果您的執行個體無法連線，您應立即採取動作並執行[停止/啟動](Stop_Start.md)來恢復您的執行個體。
+ 或者，如果您想要[終止](terminating-instances.md)執行個體，請計劃盡快執行個體，以便停止對執行個體產生費用。

**為您的執行個體建立備份**  
從您的執行個體建立 EBS 後端 AMI，以便有備份。若要確保資料完整性，請在建立 AMI 之前停止執行個體。您可等候預定的淘汰日期 – 當執行個體停止時 – 或在淘汰日期之前自行停止執行個體。您可以隨時再次啟動該執行個體。如需詳細資訊，請參閱[建立 Amazon EBS 支援的 AMI](creating-an-ami-ebs.md)。

**啟動替代執行個體**  
從執行個體建立 AMI 之後，您就可以使用 AMI 來啟動替代用的執行個體。從 Amazon EC2 主控台中，選取新 AMI，然後選擇**從 AMI 啟動執行個體**。設定執行個體的參數，然後選擇**啟動執行個體**。如需每個欄位的詳細資訊，請參閱[使用主控台中的啟動執行個體精靈，啟動 EC2 執行個體](ec2-launch-instance-wizard.md)。

## 針對排程淘汰的執行個體存放區支援執行個體採取的動作
<a name="instance-retirement-actions-instance-store"></a>

若要保留已淘汰執行個體上的資料，您可以執行下列其中一個動作。在執行個體淘汰日期之前採取此動作非常重要，以防止不可預期的停機時間和資料遺失。

**警告**  
如果您的執行個體擁有執行個體儲存體根磁碟區且超其淘汰日期，則將會終止，且您無法復原該執行個體或儲存在其中的任何資料。無論執行個體的根磁碟區類型是哪種，執行個體儲存體磁碟區上的資料在執行個體淘汰時都會遺失，即使磁碟區已連接至具有 EBS 根磁碟區的執行個體。

**檢查您的執行個體是否可存取**

當您收到執行個體已排程停用的通知時，我們建議您儘快採取下列動作：
+ 透過[連線](connect-to-linux-instance.md)或 ping 您的執行個體來檢查您的執行個體是否可以存取。
+ 如果您的執行個體無法連線，則復原執行個體的可能性很少。如需詳細資訊，請參閱 [對無法連線的 Amazon EC2 執行個體進行疑難排解](troubleshoot-unreachable-instance.md)。 AWS 將在排定的淘汰日期終止執行個體，因此，對於無法連線的執行個體，您可以自行立即[終止](terminating-instances.md)執行個體。

**啟動替代執行個體**  
使用 AMI 工具從您的執行個體建立 Amazon S3 支援的 AMI，如 [建立 Amazon S3 支援的 AMI](creating-an-ami-instance-store.md) 所述。從 Amazon EC2 主控台中，選取新 AMI，然後選擇**從 AMI 啟動執行個體**。設定執行個體的參數，然後選擇**啟動執行個體**。如需每個欄位的詳細資訊，請參閱[使用主控台中的啟動執行個體精靈，啟動 EC2 執行個體](ec2-launch-instance-wizard.md)。

**將您的執行個體轉換為 EBS 支援的執行個體**  
將您的資料傳輸到 EBS 磁碟區、建立磁碟區快照，然後從該快照建立 AMI。您可以從新的 AMI 啟動替代用的執行個體。如需詳細資訊，請參閱[將 Amazon S3 支援的 AMI 轉換為 EBS 支援的 AMI](Using_ConvertingS3toEBS.md)。