

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

# 棄用 Amazon EC2 AMI
<a name="ami-deprecate"></a>

您可以取代 AMI 來指出它已過期且不應該使用。您也可以為 AMI 指定未來的取代日期，指出 AMI 何時過期。例如，您可能會取代不再主動維護的 AMI，或者您可能會取代已被較新版本替代的 AMI。依預設，已取代的 AMI 不會出現在 AMI 清單中，以防止新使用者使用過期的 AMI。但是，現有使用者和啟動服務 (例如啟動範本和 Auto Scaling 群組) 可以透過指定其 ID 來繼續使用已取代的 AMI。若要刪除 AMI，以便使用者和服務無法使用它，您必須[取消註冊](deregister-ami.md)它。

AMI 被取代後：
+ 對於 AMI 使用者，已取代的 AMI 不會出現在 [DescribeImages](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html) API 呼叫中，除非您指定其 ID 或指定已取代的 AMI 必須出現。AMI 擁有者繼續在 [DescribeImages](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html) API 呼叫中查看已取代的 AMI。
+ 對於 AMI 使用者，不能透過 EC2 主控台選取已取代的 AMI。例如，已取代的 AMI 不會出現在啟動執行個體精靈的 AMI 目錄中。AMI 擁有者繼續在 EC2 主控台中查看已取代的 AMI。
+ 對於 AMI 使用者，如果您知道已取代的 AMI 的 ID，則可以使用 API、CLI 或 SDK 透過已取代的 AMI 來啟動執行個體。
+ 啟動服務 (例如啟動範本和 Auto Scaling 群組) 可以繼續參考已取代的 AMI。
+ 使用隨後被取代的 AMI 來啟動的 EC2 執行個體不會受到影響，而且可以停止、啟動和重新啟動。

您可以同時取代私有和公有 AMI。

**Topics**
+ [成本](#ami-deprecate-costs)
+ [考量事項](#ami-deprecate-limitations)
+ [棄用 AMI](#deprecate-ami)
+ [描述已取代的 AMI](#describe-deprecate-ami)
+ [取消 AMI 棄用](#cancel-deprecate-ami)

## 成本
<a name="ami-deprecate-costs"></a>

當您取代 AMI 時，不會刪除 AMI。AMI 擁有者繼續為 AMI 的快照付費。要停止支付快照的費用，AMI 擁有者必須透過[取消註冊](deregister-ami.md) AMI 來刪除它。

## 考量事項
<a name="ami-deprecate-limitations"></a>
+ 若要取代 AMI，您必須是 AMI 的擁有者。
+ 最近未用於啟動執行個體的 AMI 可能就是待移除或取消註冊的項目。如需詳細資訊，請參閱[檢查上次使用 Amazon EC2 AMI 的時間](ami-last-launched-time.md)。
+ 您可建立 Amazon Data Lifecycle Manager EBS 支援的 AMI 政策，以自動化 EBS 後端 AMI 的取代。若要了解詳細資訊，請參閱[建立 AMI 生命週期政策](https://docs.aws.amazon.com/ebs/latest/userguide/ami-policy.html)。
+ 在預設情況下，所有公用 AMI 的棄用日期都設定為自 AMI 建立日期起兩年。您可將棄用日期設定為早於兩年。若要取消棄用日期或將棄用日期延後，您必須將[與指定的 AWS 帳戶共享 AMI](sharingamis-explicit.md)，使該 AMI 成為私有。

## 棄用 AMI
<a name="deprecate-ami"></a>

您可以在特定的日期和時間取代 AMI。您必須為 AMI 的擁有者。

棄用日期的上限是從現在起 10 年，但公用 AMI 除外，其上限是自建立日期起 2 年。您無法指定過去的日期。

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

**在特定日期取代 AMI**

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

1. 在左側導覽窗格中，選擇 **AMI**。

1. 從篩選條件列中，選擇 **Owned by me** (由我擁有)。

1. 選取 AMI，然後依序選取 **Actions** (動作)、**Manage AMI Deprecation** (管理 AMI 取代)。您可以選取多個 AMI，一次設定多個 AMI 的相同取代日期。

1. 選取**啟用**核取方塊，然後輸入取代日期和時間。

1. 選擇**儲存**。

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

**在特定日期取代 AMI**  
使用 [enable-image-deprecation](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-image-deprecation.html) 命令。如果您指定秒數值，Amazon EC2 會將秒數四捨五入到最接近的分鐘。

```
aws ec2 enable-image-deprecation \
    --image-id {{ami-0abcdef1234567890}} \
    --deprecate-at "{{2025-04-15T13:17:12.000Z}}"
```

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

**在特定日期取代 AMI**  
使用 [Enable-EC2ImageDeprecation](https://docs.aws.amazon.com/powershell/latest/reference/items/Enable-EC2ImageDeprecation.html) cmdlet。如果您指定秒數值，Amazon EC2 會將秒數四捨五入到最接近的分鐘。

```
Enable-EC2ImageDeprecation `
    -ImageId {{ami-0abcdef1234567890}} `
    -DeprecateAt {{2025-04-15T13:17:12.000Z}}
```

------

## 描述已取代的 AMI
<a name="describe-deprecate-ami"></a>

您可以檢視 AMI 的取代日期和時間，並依取代日期篩選 AMI。

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

**檢視 AMI 的取代日期**

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

1. 在左側導覽器中，選取 **AMI**，然後選取該 AMI。

1. 檢查**取代時間**欄位 (若您選取 AMI 旁的核取方塊，其位於**詳細資料**索引標籤)。該欄位顯示 AMI 的取代日期和時間。若欄位為空的，則 AMI 不會遭到取代。

**依取代日期篩選 AMI**

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

1. 在左側導覽窗格中，選擇 **AMI**。

1. 從篩選條件列中，選擇 **Owned by me** (由我擁有) 或 **Private images** (私有映像) (私有映像包括與您共享以及您擁有的 AMI)。

1. 在搜尋列中，輸入 **Deprecation time** (當您輸入字母時，**Deprecation time** (取代時間) 篩選條件隨即顯示)，隨後選擇一個運算子及一個日期和時間。

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

若描述全部 AMI，結果取決於您是 AMI 使用者還是 AMI 擁有者。
+ **AMI 使用者** – 依預設，若描述全部 AMI，將會排除與您共享但並非您擁有的棄用 AMI。如需要在結果中包括已棄用的 AMI，您必須指定 `--include-deprecated` 參數。
+ **AMI 擁有者** – 若描述全部 AMI，您擁有的全部 AMI 將會包括在內，包括棄用的 AMI。使用 `--no-include-deprecated` 選項不能排除您擁有的棄用 AMI。

**如需在描述所有 AMI 時包括所有已棄用的 AMI**  
使用下面的 [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) 命令。

```
aws ec2 describe-images 
    --owners {{123456789012}} \   
    --include-deprecated
```

**描述帳戶中已棄用的 AMI**  
使用下面的 [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) 命令。

```
aws ec2 describe-images \
    --owners self \
    --query "Images[?DeprecationTime!=null].ImageId" \
    --output text
```

以下為範例輸出。

```
ami-0abcdef1234567890
```

**描述 AMI 的取代日期**  
使用下面的 [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) 命令。若輸出中不存在 `DeprecationTime`，不會棄用 AMI，或者將其設定為在未來日期棄用。

```
aws ec2 describe-images \
    --image-ids {{ami-0abcdef1234567890}} \
    --query Images[].DeprecationTime \
    --output text
```

以下為範例輸出。

```
2025-05-01T00:00:00.000Z
```

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

**如需列出帳戶的棄用 AMI**  
使用 [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) cmdlet。

```
(Get-EC2Image -Owner self | Where-Object {$_.DeprecationTime -ne $null}).ImageId
```

以下為範例輸出。

```
ami-0abcdef1234567890
```

**描述 AMI 的取代日期**  
使用 [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) cmdlet。若輸出中不存在 `DeprecationTime`，不會棄用 AMI，或者將其設定為在未來日期棄用。

```
(Get-EC2Image -ImageId {{ami-0abcdef1234567890}}).DeprecationTime
```

以下為範例輸出。

```
2025-05-01T00:00:00.000Z
```

------

## 取消 AMI 棄用
<a name="cancel-deprecate-ami"></a>

您可取消棄用 AMI，此操作會移除棄用日期與時間。您必須是 AMI 擁有者才能執行此程序。

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

**取消取代 AMI**

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

1. 在左側導覽窗格中，選擇 **AMI**。

1. 從篩選條件列中，選擇 **Owned by me** (由我擁有)。

1. 選取 AMI，然後依序選取 **Actions** (動作)、**Manage AMI Deprecation** (管理 AMI 取代)。您可以選取多個 AMI，一次取消多個 AMI 的取代。

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

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

**取消棄用 AMI**  
請使用下面的 [disable-image-deprecation](https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-image-deprecation.html) 命令。

```
aws ec2 disable-image-deprecation --image-id {{ami-0abcdef1234567890}}
```

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

**取消棄用 AMI**  
使用 [Disable-EC2ImageDeprecation](https://docs.aws.amazon.com/powershell/latest/reference/items/Disable-EC2ImageDeprecation.html) cmdlet。

```
Disable-EC2ImageDeprecation -ImageId {{ami-0abcdef1234567890}}
```

------