

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

# 停止和啟動 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
```

------