

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

# 對 Amazon EC2 執行個體停止問題進行疑難排解
<a name="TroubleshootingInstancesStopping"></a>

如果 Amazon EBS 後端執行個體凍結在 `stopping` 狀態，這可能是底層主機電腦的問題。

若要解決該問題，請遵循這些步驟：

1. **強制停止執行個體**

   使用 Amazon EC2 主控台或 AWS CLI 強制停止執行個體。如需相關步驟，請參閱 [強制停止執行個體](#force-stop-instance)。

   執行個體將先嘗試正常關閉，包括清空檔案系統快取和中繼資料 (儘管您可選擇忽略正常關閉)。如果無法在逾時期間內完成正常關閉，執行個體會強制關閉，且不會清空檔案系統快取和中繼資料。

1. **強制停止後**

   執行檔案系統檢查和修復程序。
**重要**  
執行這些程序十分重要，因為強制停止可避免清空檔案系統快取和中繼資料。

1. **如果強制停止失敗**

   如果 10 分鐘後執行個體仍未停止，請執行以下動作：

   1. 在 [AWS re:Post](https://repost.aws/) 上發佈協助請求。請在訊息中註明執行個體 ID，並說明您已採取的步驟，以利加速解決問題。

   1. 或者，如果您已購買支援方案，可到 [Support 中心](https://console.aws.amazon.com/support/home#/)建立技術支援案例。

   1. 在等待協助時，您可視需要建立替代執行個體。如需相關步驟，請參閱 [(選用) 建立替代執行個體](#Creating_Replacement_Instance)。

當執行個體處於 `stopping` 狀態或 `running` 以外的任何狀態時，將不會收取執行個體使用費。當執行個體處於 `running` 狀態時，您只需支付執行個體使用費。

**Topics**
+ [強制停止執行個體](#force-stop-instance)
+ [(選用) 建立替代執行個體](#Creating_Replacement_Instance)

## 強制停止執行個體
<a name="force-stop-instance"></a>

可強制停止執行個體。如果經過 10 分鐘後，執行個體仍未停止，請在 [AWS re:Post](https://repost.aws/) 上發布請求協助的訊息。請在訊息中註明執行個體 ID，並說明您已採取的步驟，以利加速解決問題。或者，如果您已購買支援方案，可到 [Support 中心](https://console.aws.amazon.com/support/home#/)建立技術支援案例。

**注意**  
只有在執行個體僅處於 `stopping` 狀態時，才可以使用主控台強制停止執行個體。只有在執行個體僅處於 `pending`、`running` 或 `stopping` 狀態時，才可以使用 AWS CLI強制停止執行個體。

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

**若要強制停止執行個體**

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

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

1. 依次選擇**執行個體狀態**、**強制停止執行個體**。

   請注意，唯有在您的執行個體處於 `stopping` 狀態的情況下，才能在主控台使用 **Force stop instance** (強制停止執行個體)。如果您的執行個體處於其他狀態 ( `shutting-down`和 除外`terminated`)，您可以使用 AWS CLI 強制停止執行個體。

1. (選用) 若要在強制停止期間跳過正常的作業系統關閉，請選取**跳過作業系統關閉**核取方塊。

1. 選擇**強制停止**。

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

**若要強制停止執行個體**  
搭配使用 [stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) 命令與 `--force` 選項。

```
aws ec2 stop-instances \
    --instance-ids {{i-1234567890abcdef0}} \
    --force
```

若要在強制停止期間略過正常的作業系統關閉，請包含 `--skip-os-shutdown` 選項。

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

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

**若要強制停止執行個體**  
使用 [Stop-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html) cmdlet 並將 `-Enforce` 設為 `true`。

```
Stop-EC2Instance `
    -InstanceId {{i-1234567890abcdef0}} `
    -Enforce $true
```

若要在強制停止期間略過正常的作業系統關閉，請包含 `-SkipOsShutdown $true`。

```
Stop-EC2Instance `
    -InstanceId {{i-1234567890abcdef0}} `
    -Enforce $true `
    -SkipOsShutdown $true
```

------

## (選用) 建立替代執行個體
<a name="Creating_Replacement_Instance"></a>

在您等待來自 [AWS re:Post](https://repost.aws/) 或[支援中心](https://console.aws.amazon.com/support/home#/)協助的同時，可視需求建立替代執行個體。從已凍結執行個體建立 AMI，然後使用新的 AMI 來啟動新的執行個體。

**重要**  
如果凍結的執行個體僅產生[系統狀態檢查](monitoring-instances-status-check.md)，您可以建立替代執行個體，這是因為執行個體狀態檢查將導致 AMI 複製到故障作業系統的確切複本上。在確認狀態訊息後，建立 AMI 並使用新的 AMI 來啟動新執行個體。

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

**若要建立替代執行個體**

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

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

1. 選擇 **Actions (動作)**、**Image and templates (映像和範本)**、**Create image (建立映像)**。

1. 在「**Create image (建立映像)**」頁面，執行下列動作：

   1. 輸入 AMI 的名稱與說明。

   1. 清除**重新開機執行個體**。

   1. 選擇**建立映像**。

   如需詳細資訊，請參閱[從執行個體建立 AMI](creating-an-ami-ebs.md#how-to-create-ebs-ami)。

1. 從 AMI 啟動新的執行個體，並確認新的執行個體可正常運作。

1. 選取凍結的執行個體，然後依序選擇**動作**、**執行個體狀態**、**終止 (刪除) 執行個體**。如果該執行個體在終止時也出現凍結的狀況，Amazon EC2 會自動在幾小時內強制其終止。

如果無法如先前步驟中的說明，從執行個體建立 AMI，您可以依照下列方式來建立替換執行個體：

**(替代選項) 使用主控台來建立替換執行個體**

1. 選取執行個體，然後依序選擇 **Description (說明)**、**Block devices (區塊型儲存設備)**。選取每個磁碟區，並記下其磁碟區 ID。請務必註明哪一個磁碟區是根磁碟區。

1. 在導覽窗格中，選擇 **Volumes (磁碟區)**。針對執行個體選取每個磁碟區，然後依序選擇 **Actions (動作)**、**Create Snapshot (建立快照)**。

1. 在導覽窗格中，選擇 **Snapshots (快照)**。選擇您剛建立的快照，然後依序選擇 **Actions (動作)**、**Create Volume (建立磁碟區)**。

1. 使用與凍結執行個體相同的作業系統來啟動執行個體。請寫下其根磁碟區的磁碟區 ID 和裝置名稱。

1. 在導覽窗格中，選擇「**Instances (執行個體)**」，選取剛才啟動的執行個體，然後依序選擇「**Instance state (執行個體狀態)**」、「**Stop instance (停止執行個體)**」。

1. 在導覽窗格中選擇 **Volumes (磁碟區)**，選取已停止執行個體的根磁碟區，然後依序選擇 **Actions (動作)**、**Detach Volume (分離磁碟區)**。

1. 選取從凍結執行個體建立的根磁碟區，然後依序選擇「**Actions (動作)**」、「**Attach Volume (連結磁碟區)**」，接著將該磁碟區連結到新的執行個體，並做為其根磁碟區 (使用您之前記下的裝置名稱)。將其他所有非根磁碟區的磁碟區，連結到執行個體。

1. 在導覽窗格中，選擇 **Instances (執行個體)**，然後選取替換個體。選擇 **Instance state (執行個體狀態)**、**Start instance (啟動執行個體)**。確認執行個體可正常運作。

1. 選取凍結的執行個體，然後依序選擇**執行個體狀態**、**終止 (刪除) 執行個體**。如果該執行個體在終止時也出現凍結的狀況，Amazon EC2 會自動在幾小時內強制其終止。

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

**若要建立替代執行個體**

1. 搭配使用 [create-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-image.html) 命令與 `--no-reboot` 選項，從停滯的執行個體中建立 AMI。

   ```
   aws ec2 create-image \
       --instance-id {{i-1234567890abcdef0}} \
       --name "{{my-replacement-ami}}" \
       --description "{{"AMI for replacement instance}}" \
       --no-reboot
   ```

1. 使用 [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) 命令，從剛建立的 AMI 中啟動新執行個體。

1. 確認新的執行個體可正常運作。

1. 使用 [terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html) 命令來終止停滯的執行個體。

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

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

**若要建立替代執行個體**

1. 使用 [New-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Image.html) cmdlet，從停滯的執行個體中建立 AMI，並將 `-NoReboot` 設定為 `true`。

   ```
   New-EC2Image `
       -InstanceId {{i-1234567890abcdef0}} `
       -Name "my-replacement-ami" `
       -Description "AMI for replacement instance" `
       -NoReboot $true
   ```

1. 使用 [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) cmdlet，從剛建立的 AMI 中啟動新執行個體。

1. 確認新的執行個體可正常運作。

1. (選用) 使用 [Remove-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2Instance.html) cmdlet，終止停滯的執行個體。

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

------