Amazon EC2 AMI を非推奨にする
AMI の使用を避けることで、それが古く、使用すべきではないことを示せます。AMI が非推奨となる将来の日付を特定し、AMI が使用期限切れになるタイミングを知ることも可能です。例えば、現在有効な管理が行われていない AMI の使用を避けたり、新しいバージョンで置き換えられている AMI を避けたりすることができます。新しいユーザーが古い AMI を使用することを防止するため、デフォルトで、非推奨の AMI は AMI のリストに表示されていません。ただし、既存のユーザーおよび起動サービス (起動テンプレートや Auto Scaling グループなど) では、ID を指定することで、非推奨の AMI を引き続き使用できます。AMI を削除して、ユーザーとサービスが使用できないようにするには、その AMI を登録解除します。
AMIが非推奨となった後は、以下が実施されます。
-
AMI ユーザーの場合、非推奨の AMI は (ID を指定した場合や、非推奨の AMI を表示する必要があると指定した場合を除き) DescribeImages API 呼び出しに表示されなくなります。AMIの 所有者に対しては、非推奨の AMI は引き続き DescribeImages API 呼び出しに表示されます。
-
AMI ユーザーは、非推奨の AMI をは EC2 コンソール経由で選択できなくなります。例えば、非推奨の AMI は、インスタンスの起動ウィザードの AMI カタログに表示されません。AMI 所有者の EC2 コンソール上には、非推奨の AMI が引き続き表示されます。
-
AMI ユーザーで、非推奨となった AMI の ID がわかっている場合は、API、CLI、または SDK により、非推奨の AMI を使用しながらインスタンスの起動を継続することができます。
-
起動テンプレートや Auto Scaling グループなどの起動サービスは、非推奨の AMI を引き続き参照できます。
-
今後非推奨となる予定の AMI を使用して起動された EC2 インスタンスは影響を受けず、停止、起動、および再起動が可能です。
プライベート AMI とパブリック AMI の両方を非推奨にすることができます。
Amazon Data Lifecycle Manager EBS-backed AMI ポリシーを作成して、EBS-backed AMI の廃止を自動化することもできます。詳細については、「AMI ライフサイクルの自動化」を参照してください。
すべてのパブリック AMI を非推奨にする日をデフォルトで AMI 作成日の 2 年後とします。非推奨にする日は 2 年より前の日付に設定できます。非推奨にする日を取り消す場合や、非推奨にする日をもっと先の日付に変える場合は、AMI を特定の AWS アカウントとのみ共有するようにして、AMI を非公開にする必要があります。
コスト
AMI を非推奨にしても、その AMI は削除されません。AMI 所有者には、その AMI のスナップショットのための料金が引き続き請求されます。スナップショットの支払いを停止するには、AMI 所有者は、登録解除により AMI を削除する必要があります。
制約事項
AMI を非推奨にする
AMI を非推奨にする日時を指定することができます。この手順を実行するには、AMI の所有者である必要があります。
- Console
-
AMI を特定の日付に非推奨にするには
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。
-
左のナビゲーターで [AMI] を選択します。
-
フィルターバーから、[Owned by me] (自己所有) を選択します。
-
AMI を選択し、[Actions] (アクション)、[Manage AMI Deprecation] (AMI 非推奨を管理) の順に選択します。複数の AMI を選択して、複数の AMI の同じ非推奨日を一度に設定できます。
-
[Enable] (有効化) のチェックボックスをオンにして、非推奨となった日時を入力します。
非推奨日の上限は 10 年後ですが、パブリック AMI は例外で、上限は作成日から 2 年です。過去の日付を指定することはできません。
-
[Save] を選択します。
- AWS CLI
-
AMI を特定の日付に非推奨にするには
enable-image-deprecation コマンドを使用します。AMI の ID、ならびに、その AMI を非推奨にする日時を指定します。秒の値を指定した場合は、Amazon EC2 により最も近い分に丸められます。
deprecate-at
の上限は 10 年後ですが、パブリック AMI は例外で、上限は作成日から 2 年です。過去の日付を指定することはできません。
aws ec2 enable-image-deprecation \
--image-id ami-1234567890abcdef0
\
--deprecate-at "2021-10-15T13:17:12.000Z"
正常な出力
{
"Return": "true"
}
AMI が最後に使用された日時を確認する
LastLaunchedTime
は、AMI が最後にインスタンスの起動に使用された時間を示すタイムスタンプです。インスタンスを起動するために最近使用されていない AMI は、非推奨や登録解除の対象となる可能性が高いです。
- Console
-
AMI の最終起動時間を表示するには
-
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。
-
左のナビゲーターで [AMI] を選択します。
-
フィルターバーから、[Owned by me] (自己所有) を選択します。
-
AMI を選択し、[Last launched time] (最終起動時間) フィールドにチェックを入れます (AMI の横にあるチェックボックスを選択した場合、このフィールドは [Details] (詳細) タブにあります)。このフィールドには、インスタンスの起動のために最後に AMI が使用された日時が表示されます。
- AWS CLI
-
AMI の最終起動時間を表示するには
describe-image-attribute コマンドを実行し、--attribute
lastLaunchedTime
を指定します。このコマンドを実行するには、AMI の所有者である必要があります。
aws ec2 describe-image-attribute \
--image-id ami-1234567890example
\
--attribute lastLaunchedTime
出力例
{
"LastLaunchedTime": {
"Value": "2022-02-10T02:03:18Z"
},
"ImageId": "ami-1234567890example",
}
非推奨 AMI の詳細表示
AMI が非推奨になった日時を表示し、すべての AMI を非推奨になった日付でフィルタリングできます。AWS CLI を使用して、過去の日付で非推奨になっている、すべての AMI についての詳細を表示することもできます。
- Console
-
AMI が非推奨になった日付を表示するには
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。
-
左側のナビゲーターで [AMI] をクリックした後、AMI を選択します。
-
[Deprecation time] (非推奨となった時刻) フィールドにチェックを入れます (AMI の横にあるチェックボックスを選択した場合は、[Details] (詳細) タブにあります)。このフィールドには、AMI の非推奨の日次が表示されます。フィールドが空の場合は、AMI は非推奨ではありません。
非推奨になった日付で AMI をフィルタリングするには
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。
-
左のナビゲーターで [AMI] を選択します。
-
フィルターバーから、[Owned by me] (自己所有) または [Private images] (プライベートイメージ) を選択します (プライベートイメージには、共有されている AMI のほかに、所有している AMI も含まれます)。
-
検索バーで Deprecation time
と入力し (文字を入力すると、[Deprecation time] (非推奨となった時刻) のフィルターが表示されます)、演算子と日時を選択します。
- AWS CLI
-
describe-images コマンドを使用してすべての AMI を表示する場合、その結果は、AMI ユーザーに対するものと AMI 所有者に対するもので異なります。
-
AMI ユーザーの場合:
デフォルトでは、すべての AMI を describe-images コマンドにより表示した場合でも、自分が共有しているものの所有はしていない非推奨の AMI は、そのコマンドの結果に表示されません。これは、デフォルトが --no-include-deprecated
であるためです。非推奨の AMI を結果に含めるには、--include-deprecated
パラメータを指定します。
-
AMI の所有者である場合:
describe-imagesコマンドを使用して、すべての AMI を表示すると、所有しているすべての AMI (非推奨の AMI を含む) が結果に表示されます。--include-deprecated
パラメータを指定する必要はありません。また、--no-include-deprecated
を指定しても、所有している非推奨の AMI を結果から除外することはできません。
非推奨となった AMI については、結果に DeprecationTime
フィールドが表示されます。
非推奨の AMI は、そこに過去の日付が表示されている AMI です。非推奨となる日付が将来に設定されている場合、その AMI はまだ非推奨とはなっていません。
すべての非推奨の AMI を含めながらすべての AMI を詳細表示するには
ユーザーが所有していない非推奨の AMI をすべて結果に含めるには、describe-images コマンドを使用して、--include-deprecated
パラメータを指定します。
aws ec2 describe-images \
--region us-east-1
\
--owners 123456example
--include-deprecated
AMI が非推奨となった日付を表示するには
describe-images コマンドを実行する際に、AMI の ID を指定します。
AMI ID とともに --no-include-deprecated
を指定しても、非推奨の AMI が結果に返されることに注意してください。
aws ec2 describe-images \
--region us-east-1
\
--image-ids ami-1234567890EXAMPLE
正常な出力
DeprecationTime
フィールドには、AMI が非推奨にされる予定の日付が表示されます。AMI を非推奨にすることが設定されていない場合、DeprecationTime
フィールドは出力には表示されません。
{
"Images": [
{
"VirtualizationType": "hvm",
"Description": "Provided by Red Hat, Inc.",
"PlatformDetails": "Red Hat Enterprise Linux",
"EnaSupport": true,
"Hypervisor": "xen",
"State": "available",
"SriovNetSupport": "simple",
"ImageId": "ami-1234567890EXAMPLE",
"DeprecationTime": "2021-05-10T13:17:12.000Z"
"UsageOperation": "RunInstances:0010",
"BlockDeviceMappings": [
{
"DeviceName": "/dev/sda1",
"Ebs": {
"SnapshotId": "snap-111222333444aaabb",
"DeleteOnTermination": true,
"VolumeType": "gp2",
"VolumeSize": 10,
"Encrypted": false
}
}
],
"Architecture": "x86_64",
"ImageLocation": "123456789012/RHEL-8.0.0_HVM-20190618-x86_64-1-Hourly2-GP2",
"RootDeviceType": "ebs",
"OwnerId": "123456789012",
"RootDeviceName": "/dev/sda1",
"CreationDate": "2019-05-10T13:17:12.000Z",
"Public": true,
"ImageType": "machine",
"Name": "RHEL-8.0.0_HVM-20190618-x86_64-1-Hourly2-GP2"
}
]
}
AMI の非推奨化をキャンセルする
AMI を非推奨とすることをキャンセルできます。これにより、[Deprecation time] (非推奨となった時刻) フィールド (コンソール) から日時が削除され、または describe-images 出力 (AWS CLI) から DeprecationTime
フィールドが削除されます。この手順を実行するには、AMI の所有者である必要があります。
- Console
-
非推奨となっている AMI を復旧するには
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。
-
左のナビゲーターで [AMI] を選択します。
-
フィルターバーから、[Owned by me] (自己所有) を選択します。
-
AMI を選択し、[Actions] (アクション)、[Manage AMI Deprecation] (AMI 非推奨を管理) の順に選択します。複数の AMI を選択して、複数の AMI の非推奨を一度にキャンセルできます。
-
[Enable] (有効化) チェックボックスをオフにして、[Save] (保存) を選択します。
- AWS CLI
-
非推奨となっている AMI を復旧するには
AMI の ID を指定しながら、disable-image-deprecation コマンドを実行します。
aws ec2 disable-image-deprecation \
--image-id ami-1234567890abcdef0
正常な出力
{
"Return": "true"
}