

# Amazon EC2 AMI を無効にする
<a name="disable-an-ami"></a>

AMI を無効にして、インスタンスの起動に使用されないようにできます。無効な AMI から新しいインスタンスを起動することはできません。無効化された AMI を再度有効にして、インスタンスの起動時に再び使用できるようにすることができます。

プライベート AMI とパブリック AMI の両方を無効化できます。

使用頻度は低いが、長期間保持する必要がある無効な EBS-backed AMI のストレージコストを削減するには、関連するスナップショットをアーカイブできます。詳細については、「*Amazon EBS ユーザーガイド*」の「[Amazon EBS スナップショットのアーカイブ](https://docs.aws.amazon.com/ebs/latest/userguide/snapshot-archive.html)」を参照してください。

**Topics**
+ [AMI 無効化の仕組み](#how-disable-ami-works)
+ [コスト](#ami-disable-costs)
+ [前提条件](#ami-disable-prerequisites)
+ [必要な IAM 許可](#ami-disable-iam-permissions)
+ [AMI の無効化](#disable-ami)
+ [無効化された AMI の説明](#describe-disabled-ami)
+ [無効化された AMI を再度有効にする](#re-enable-a-disabled-ami)

## AMI 無効化の仕組み
<a name="how-disable-ami-works"></a>

**警告**  
AMI を無効にすると、AMI のすべての起動権限が削除されます。

**AMI が無効になっている場合:**
+ AMI の状態は `disabled` に変わります。
+ 無効化された AMI は共有できません。AMI が公開されていたか、以前に共有されていた場合は、非公開になります。AMI が AWS アカウント、組織または組織単位で共有されていた場合、無効になっている AMI にはアクセスできなくなります。
+ 無効化された AMI は、デフォルトで [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html) API 呼び出しに表示されません。
+ 無効化された AMI は **[自分が所有]** コンソールフィルタには表示されません。無効になっている AMI を検索するには、**[無効化されたイメージ]** コンソールフィルタを使用してください。
+ 無効化された AMI は、EC2 コンソールのインスタンス起動時に選択できません。たとえば、無効化された AMI はインスタンスの起動ウィザードの AMI カタログに表示されません。また、起動テンプレート作成時にも表示されません。
+ 起動テンプレートや Auto Scaling グループなどの起動サービスは、無効化された AMI を引き続き参照できます。無効化された AMI からのそれ以降のインスタンスの起動は失敗するため、使用可能な AMI のみを参照するように、起動テンプレートと Auto Scaling グループを更新することをお勧めします。
+ 今後無効化される予定の AMI を使用して起動された EC2 インスタンスは影響を受けず、停止、起動、および再起動が可能です。
+ 無効になっている AMI に関連するスナップショットは削除できません。関連するスナップショットを削除しようとすると `snapshot is currently in use` エラーになります。

**AMI が再び有効になると:**
+ AMI の状態が `available` に変わり、インスタンスの起動に使用できるようになります。
+ AMI は共有できます。
+ AMI を無効にしたときに AMI にアクセスできなくなった AWS アカウント、組織、および組織単位は、自動的にアクセスを回復できませんが、AMI を再び共有することは可能です。

## コスト
<a name="ami-disable-costs"></a>

AMI を無効化しても、その AMI は削除されません。EBS-backed AMI の場合は、AMI の EBS スナップショットの料金を引き続きお支払いいただきます。AMI を残しておきたい場合は、スナップショットをアーカイブすることでストレージコストを削減できる場合があります。詳細については、「Amazon EBS ユーザーガイド」の「[Amazon EBS スナップショットのアーカイブ](https://docs.aws.amazon.com/ebs/latest/userguide/snapshot-archive.html)」を参照してください。AMI とそのスナップショットを保持したくない場合は、AMI を登録解除し、スナップショットを削除する必要があります。詳細については、「[AMI の登録解除](deregister-ami.md)」を参照してください。

## 前提条件
<a name="ami-disable-prerequisites"></a>

AMI を無効または再度有効にするには、AMI の所有者である必要があります。

## 必要な IAM 許可
<a name="ami-disable-iam-permissions"></a>

AMI を無効化する、および再度有効化するには、次の IAM 権限が必要です。
+ `ec2:DisableImage`
+ `ec2:EnableImage`

## AMI の無効化
<a name="disable-ami"></a>

AMI は EC2 コンソールまたは AWS Command Line Interface (AWS CLI) を使用して無効にできます。この手順を実行するには、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 を選択し、**[アクション]**、**[AMI を無効にする]** の順に選択します。複数の AMI を選択し、まとめて無効化することもできます。

1. **[AMI を無効にする]** ウィンドウで、**[AMI を無効にする]** を選択します。

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

**AMI を無効化するには**  
次の [https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-image.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-image.html) コマンドを使用します。

```
aws ec2 disable-image --image-id ami-0abcdef1234567890
```

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

**AMI を無効化するには**  
[Disable-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Disable-EC2Image.html) コマンドレットを使用します。

```
Disable-EC2Image -ImageId ami-0abcdef1234567890
```

------

## 無効化された AMI の説明
<a name="describe-disabled-ami"></a>

無効化された AMI は EC2 コンソールと AWS CLI を使用して表示できます。

無効化された AMI を表示するには AMI 所有者である必要があります。無効化された AMI は非公開になるため、所有者以外には表示されません。

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

**無効化された AMI を表示するには**

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

1. 左のナビゲーションペインで [**AMI**] を選択してください。

1. フィルターバーから **[無効化された画像]** を選択します。  
![\[[無効化された画像] フィルター。\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/images/ami-filter-by-disabled-images.png)

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

デフォルトでは、すべての AMI を記述した場合、無効化された AMI は結果に含まれません。非推奨の AMI を結果に含めるには、`--include-disabled` オプションを指定します。AMI が無効になっている場合、AMI の `State` フィールドは `disabled` になります。

**無効になっている AMI も含めてアカウントのすべての AMI を記述するには**  
次の [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) コマンドを使用します。

```
aws ec2 describe-images \
    --owners 123456789012 \
    --include-disabled
```

**アカウントの無効になっている AMI を一覧表示するには**  
次の [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) コマンドを使用します。

```
aws ec2 describe-images \
    --owners self \
    --include-disabled \
    --filters Name=state,Values=disabled \
    --query Images[].ImageId \
    --output text
```

以下は出力の例です。

```
ami-0abcdef1234567890
```

**AMI のステータスを記述するには**  
次の [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) コマンドを使用します。出力に `DeprecationTime` がない場合、AMI は非推奨ではなく、将来的に非推奨に設定されることもありません。

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

以下は出力の例です。

```
disabled
```

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

デフォルトでは、すべての AMI を記述した場合、無効化された AMI は結果に含まれません。無効になった AMI を結果に含めるには、`-IncludeDisabled` パラメータを指定します。AMI が無効になっている場合、AMI の `State` フィールドは `disabled` になります。

**アカウントの無効になっている AMI を一覧表示するには**  
[Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) コマンドレットを使用します。

```
(Get-EC2Image `
    -Owner self `
    -IncludeDisabled $true | Where-Object {$_.State -eq "disabled"}).ImageId
```

以下は出力の例です。

```
ami-0abcdef1234567890
```

**AMI のステータスを記述するには**  
[Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) コマンドレットを使用します。

```
(Get-EC2Image -ImageId ami-0abcdef1234567890).State.Value
```

以下は出力の例です。

```
disabled
```

------

## 無効化された AMI を再度有効にする
<a name="re-enable-a-disabled-ami"></a>

無効化された AMI を再度有効にすることができます。この手順を実行するには、AMI の所有者である必要があります。

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

**無効化した AMI を再度有効にするには**

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

1. 左のナビゲーションペインで [**AMI**] を選択してください。

1. フィルターバーから **[無効化された画像]** を選択します。

1. AMI を選択し、**[アクション]**、**[AMI を有効化]** の順に選択します。複数の AMI を選択し、まとめて再有効化を選択することもできます。

1. **[AMI を有効化]** ウィンドウで、**[有効化]** を選択します。

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

**無効化した AMI を再度有効にするには**  
次の [https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-image.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-image.html) コマンドを使用します。

```
aws ec2 enable-image --image-id ami-0abcdef1234567890
```

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

**無効化した AMI を再度有効にするには**  
[Enable-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Enable-EC2Image.html) コマンドレットを使用します。

```
Enable-EC2Image -ImageId ami-0abcdef1234567890
```

------