

# Amazon EC2 AMI を非推奨にする
<a name="ami-deprecate"></a>

AMI の使用を避けることで、それが古く、使用すべきではないことを示せます。AMI が非推奨となる将来の日付を特定し、AMI が使用期限切れになるタイミングを知ることも可能です。例えば、現在有効な管理が行われていない AMI の使用を避けたり、新しいバージョンで置き換えられている AMI を避けたりすることができます。新しいユーザーが古い AMI を使用することを防止するため、デフォルトで、非推奨の AMI は AMI のリストに表示されていません。ただし、既存のユーザーおよび起動サービス (起動テンプレートや Auto Scaling グループなど) では、ID を指定することで、非推奨の AMI を引き続き使用できます。AMI を削除して、ユーザーとサービスが使用できないようにするには、その AMI を[登録解除](deregister-ami.md)します。

AMIが非推奨となった後は、以下が実施されます。
+ AMI ユーザーの場合、非推奨の AMI は (ID を指定した場合や、非推奨の AMI を表示する必要があると指定した場合を除き) [DescribeImages](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html) API 呼び出しに表示されなくなります。AMIの 所有者に対しては、非推奨の AMI は引き続き [DescribeImages](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html) API 呼び出しに表示されます。
+ AMI ユーザーは、非推奨の AMI をは EC2 コンソール経由で選択できなくなります。例えば、非推奨の AMI は、インスタンスの起動ウィザードの AMI カタログに表示されません。AMI 所有者の EC2 コンソール上には、非推奨の AMI が引き続き表示されます。
+ AMI ユーザーで、非推奨となった AMI の ID がわかっている場合は、API、CLI、または SDK により、非推奨の AMI を使用しながらインスタンスの起動を継続することができます。
+ 起動テンプレートや Auto Scaling グループなどの起動サービスは、非推奨の AMI を引き続き参照できます。
+ 今後非推奨となる予定の AMI を使用して起動された EC2 インスタンスは影響を受けず、停止、起動、および再起動が可能です。

プライベート AMI とパブリック 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-backed AMI ポリシーを作成することで、EBS-backed AMI の廃止を自動化できます。詳細については、「[Create AMI lifecycle policies](https://docs.aws.amazon.com/ebs/latest/userguide/ami-policy.html)」を参照してください。
+ すべてのパブリック AMI を非推奨にする日をデフォルトで AMI 作成日の 2 年後とします。非推奨にする日は 2 年より前の日付に設定できます。非推奨にする日を取り消す場合や、非推奨にする日をもっと先の日付に変える場合は、AMI を[特定の AWS アカウントとのみ共有する](sharingamis-explicit.md)ようにして、AMI を非公開にする必要があります。

## AMI を非推奨にする
<a name="deprecate-ami"></a>

AMI を非推奨にする日時を指定することができます。ユーザーは、この AMI の所有者である必要があります。

非推奨日の上限は 10 年後ですが、パブリック AMI は例外で、上限は作成日から 2 年です。過去の日付を指定することはできません。

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

**AMI を特定の日付に非推奨にするには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/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) コマンドレットを使用します。秒の値を指定した場合は、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. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. 左側のナビゲーターで [**AMI**] をクリックした後、AMI を選択します。

1. **[非推奨になった時刻]** フィールドにチェックをオンにします (AMI の横にあるチェックボックスをオンにした場合、**[詳細]** タブにあります)。このフィールドには、AMI の非推奨の日次が表示されます。フィールドが空の場合は、AMI は非推奨ではありません。

**非推奨になった日付で AMI をフィルタリングするには**

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. 左のナビゲーターで **[AMI]** を選択します。

1. フィルターバーから、**[Owned by me]** (自己所有) または **[Private images]** (プライベートイメージ) を選択します (プライベートイメージには、共有されている AMI のほかに、所有している 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) コマンドレットを使用します。

```
(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) コマンドレットを使用します。出力に `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. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/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) コマンドレットを使用します。

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

------