こんばんは、小寺です。
AMIの無効化がサポートされるようになりました。
https://aws.amazon.com/about-aws/whats-new/2023/10/amazon-ec2-amis-disabled-state/
アップデート内容
未使用または廃止された Amazon Machine Image (AMI、アーミーと発音) を無効にできるようになりました。
全然、本題と関係ないのですが、今まで「エーエムアイ」と発音していまして、このアップデートで正式発音名を知りました・・・w
AMIを無効のステータスに変更すると、無効化する前に共有していたAMIはプライベートに変更となり、無効化されたAMIからインスタンス起動ができなくなります。
共有先であるAWS アカウント、Organizations、または OUから AMIを使用できなくなります。
これまでは、未使用の AMI や古くなった AMI をクリーンアップしたいお客様は、これらの AMI の登録を解除する必要がありました。
規制、コンプライアンス、IT ガバナンス、または内部ポリシー等で、対応が難しい方もいらっしゃったかと思います。
どんなときに役立ちそう?
イメージは維持しておきたいという場合ではないかと思います。
AMIを無効にすることで、古い AMI や廃止された AMIを引き続き保持できます。脆弱性があったりや非準拠のソフトウェアが含まれる可能性のあるこれらのAMI からの新しいインスタンスの起動を防ぐことができます。
また、脆弱性とは関わらず、古いイメージで誤った起動を防ぐという観点で役に立ちそうですよね。
試してみた
(1) まず、特定AWSアカウントにAMI共有をしておきます。
(2)次にAMIを無効化します。無効化手順は対象のAMIを選んで、「アクション」→「AMIを無効化する」です。
(3) 確認メッセージが表示されるので、「AMIを無効化する」をクリックします。
(3) 無効化後には、共有していたAWSアカウントで確認すると、共有されたイメージがない旨、表示がされます。
(4) 再度有効化したいときは、AMIのうち「Disabled Image」を選びます。
(5) アクションから再度「AMIを有効化する」を選びます。
上記で再度有効化ができます。
注意事項
・無効化された AMI は、デフォルトでは DescribeImages API 呼び出しに表示されません。
・無効化された AMI は、EC2 コンソールで起動する場合などに選択できません。インスタンス起動ウィザードや起動テンプレートの作成時に AMI カタログに表示されなくなります。
・ 起動テンプレートや Auto Scaling グループなどの起動サービスは、無効になった AMI を引き続き参照できます。無効な AMI からの後続のインスタンスの起動は失敗する動作になるので、使用可能な AMI のみを参照するように起動テンプレートと Auto Scaling グループを更新しておきましょう。
・AMI を使用して以前に起動され、その後無効になった EC2 インスタンスは影響を受けず、停止、起動、再起動できます。
・他のAWSアカウント、組織、OUには一度無効化する→再度有効化しても自動的には共有されないので、再共有が必要です。
AMIを無効化したときのコストってどう?
AMI を無効にしても、AMI が削除されたわけではないです。 AMI が EBS-backed AMI の場合は、引き続き AMI の EBS スナップショットの料金の支払いが発生します。AMI を保持したい場合は、スナップショットをアーカイブすることでストレージ コストを削減できる可能性があります。