View a markdown version of this page

Image Builder イメージリソースのライフサイクル管理ルールの仕組み - EC2 イメージビルダー

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Image Builder イメージリソースのライフサイクル管理ルールの仕組み

ライフサイクルルールは、イメージを最新の状態に保ち、出力 AMIsやコンテナの Amazon ECR リポジトリストレージなどのインフラストラクチャコストを削減します。

ライフサイクルポリシーは、次のルールタイプをサポートします。

ルールの非推奨

Image Builder のイメージリソースのステータスを Deprecated に設定します。Image Builder パイプラインは、廃止されたイメージでも引き続き実行されます。新しいインスタンスを起動することに影響を与えることなく、関連する AMI の非推奨期間をオプションで設定できます。

非推奨AMIs は一般的な検索では表示されません。例えば、Amazon EC2 describe-images コマンドは、廃止された AMIsします。非推奨の AMI を検索するには、その AMI ID を直接指定します。

注記

このルールは、コンテナベースのイメージには適用されません。

ルールの無効化

Image Builder のイメージリソースのステータスを Disabled に設定します。これにより、このイメージでは Image Builder パイプラインが実行されなくなります。オプションで、関連する AMI を無効にして、新しいインスタンスが起動しないようにすることができます。

無効化された AMI はプライベートになり、新しいインスタンスを起動しなくなります。以前に共有アクセスを持っていたアカウント、組織、または組織単位は、そのアクセスを失います。

注記

このルールは、コンテナベースのイメージには適用されません。

ルールの削除

イメージリソースを経過時間または数別に削除します。ニーズを満たすしきい値を定義します。Image Builder のイメージリソースはしきい値を超えると削除されます。関連する AMI の登録を解除したり、それらの AMI のスナップショットを削除したりすることもできます。しきい値を超えて保持するリソースのタグを指定することもできます。

コンテナイメージの場合、このルールは Image Builder コンテナイメージリソースを削除します。ECR リポジトリからコンテナイメージを削除して、新しいコンテナの起動を防ぐこともできます。

ルールの優先度と評価順序

ポリシーに複数のルールタイプがある場合、Image Builder は次の順序で各リソースを評価します。

  1. ルールの非推奨

  2. ルールの無効化

  3. ルールの削除

重要

実行ごとに各リソースに適用されるアクションは 1 つだけです。リソースが廃止ルールと一致する場合、Image Builder はそれを廃止し、同じ実行中にそのリソースの無効化ルールと削除ルールをスキップします。後続の実行では、Image Builder はリソースが基準を満たしている場合、他のルールと照らし合わせてリソースを評価します。

この優先順位は、プログレッシブライフサイクル戦略をサポートします。たとえば、90 日後にイメージを非推奨にし、120 日後に無効にして、180 日後に削除するようにポリシーを設定できます。各実行は、優先度が最も高いマッチングアクションのみを適用します。

ルール評価をスキップするイメージの状態

Image Builder は、特定の状態のイメージをスキップして、アクションの重複を防ぎます。

  • 非推奨ルール – Image Builder は、既に非推奨、無効、失敗、またはキャンセルされたイメージをスキップします。

  • ルールを無効にする – Image Builder は、既に無効、失敗、またはキャンセルされたイメージをスキップします。

  • 削除ルール – Image Builder は、保持ルールと除外に従って、削除対象のイメージを任意の状態で評価します。

AMI ライフサイクルの除外ルール

除外ルールAMIs をライフサイクルアクションから保護します。、 API AWS マネジメントコンソール、または で除外ルールを設定します AWS CLI。

ライフサイクルポリシーは、次の除外ルールタイプをサポートします。

  • タグベースの除外 – 特定のタグ (最大 50 個のタグ) を持つ Image Builder イメージリソースを除外します。タグがさまざまなリソースレベルでどのように機能するかの詳細については、「」を参照してくださいリソースセレクタとしてのタグと除外ルール

  • パブリック AMI の除外 – パブリック共有 AMIs。

  • 最後に起動された除外 – 指定された期間内にインスタンスを起動した AMIs を除外します。

    注記

    Amazon EC2 は、24 時間の遅延で最終起動時刻を報告します。過去 24 時間以内の起動は、除外チェックの実行時に反映されない場合があります。

  • リージョンの除外 – 特定の AMIsします AWS リージョン。

  • 共有アカウントの除外 – 特定の と共有AMIs を除外します AWS アカウント。

注記

Image Builder は、ビルドが進行中のイメージをスキップします (保留中、作成中、構築中、インポート中、テスト中、配布中、統合中)。Image Builder は、次にスケジュールされた実行でこれらのイメージを評価します。

AMI 除外ルールの評価順序

EC2 Image Builder は、ライフサイクルアクションの適格性を判断した後、出力 AMI の AMI レベルの除外ルール (exclusionRules.amis) を評価します。これらのルールは、Image Builder イメージリソースではなく、Amazon EC2 AMI リソースに適用されます。保持カウントは個別に実行されます。除外された AMI は保持スロットを消費しません。Image Builder は条件を順番にチェックし、最初のマッチングで AMI をスキップします。

  1. リージョンの除外 – AMI が除外されたリージョンにあるかどうかを確認します。

  2. パブリック AMI 除外 – AMI がパブリックで、isPublic除外が有効になっているかどうかを確認します。

  3. タグ除外 – AMI に除外タグマップに一致するタグがあるかどうかをチェックします。

  4. 共有アカウントの除外 – AMI が除外にリストされているアカウントと共有されているかどうかを確認します。

  5. 最後に起動された除外 — 除外された時間枠内に AMI が起動されたかどうかを確認します。

実行リソースの詳細では、スキップされた AMIs は、どの除外条件が一致したかを示す理由を含むSKIPPEDステータスを表示します。

リソースセレクタとしてのタグと除外ルール

タグは、ライフサイクルポリシーで 2 つの異なる目的を果たします。各タグメカニズムは、特定のリソースレベルで動作します。

  • Image Builder イメージ – ビルドを追跡する Image Builder リソース (ARN 形式: arn:aws:imagebuilder:region:account:image/name/version)。Image Builder を使用して、このリソースのタグを管理します。

  • 出力 AMI またはコンテナイメージ – Image Builder が生成する基盤となる Amazon EC2 AMI または Amazon ECR コンテナイメージ。これらのリソースのタグは、それぞれ Amazon EC2 または Amazon ECR を使用して管理します。

リソースセレクタとしてのタグ (ポリシースコープ)

タグベースのリソース選択は、出力 AMIs やコンテナではなく、Image Builder イメージリソースのタグのみを評価します。Image Builder は、これらのタグを使用して、ポリシーが適用されるリソースを検索します

resourceSelection.tagMap フィールドでタグベースのリソース選択を設定します。各エントリはキーと値のペアです。ポリシーは、指定されたタグキーと値のペア (OR ロジック) に一致する Image Builder イメージを選択します。Image Builder は、タグが一致するイメージを評価しません。

除外ルールとしてのタグ (ルールレベルの例外)

除外タグは反対方向に機能します。Image Builder は、ポリシーの範囲に基づいてリソースを選択した後、アクションを実行する前に、各リソースを除外ルールと照合します。除外タグは、それぞれ異なるリソースタイプで動作する 2 つのレベルで設定します。

exclusionRules.tagMap

Image Builder イメージリソースのタグのみを評価します。基盤となる AMIs またはコンテナのタグをチェックしません。Image Builder イメージタグがエントリと一致する場合 (キーと値の完全一致)、Image Builder はイメージと関連するすべての出力リソースをスキップします。

exclusionRules.amis.tagMap

関連するリソース処理中に、出力 AMI (Amazon EC2 レベルのリソース) のタグを評価します。これを使用して、Amazon EC2 タグに基づいて特定の出力 AMIs を除外します (たとえば、ディストリビューション設定を介して、または Amazon EC2 を介して直接適用されるタグ)。

重要

リソースの選択 および exclusionRules.tagMap は、出力 AMIs (Amazon EC2 タグ) またはコンテナ (Amazon ECR タグ) のタグを評価しません。Amazon EC2 タグに基づいて出力 AMIs を除外するには、 を使用しますexclusionRules.amis.tagMap

例タグセレクタと除外が連携する

以下の設定のポリシー。

  • リソース選択タグ: Environment: Production (Image Builder イメージリソースで評価)

  • イメージレベルの除外タグ (exclusionRules.tagMap): Retain: True (Image Builder イメージリソースで評価)

  • AMI レベルの除外タグ (exclusionRules.amis.tagMap): SharedWith: Partner (出力 AMIs で評価)

Image Builder は以下の手順を実行します。

  1. リソースの選択 – Image Builder は、 にタグ付けされたすべての Image Builder イメージリソースを検索しますEnvironment: Production

  2. イメージレベルの除外 – Image Builder は、選択した各 Image Builder イメージのタグ をチェックしますRetain: True。Image Builder は、出力リソースを含め、このタグの付いたイメージをスキップします。

  3. AMI レベルの除外 – Image Builder は、タグ AMIs (Amazon EC2 リソース) をチェックしますSharedWith: Partner。このタグを持つ AMIs はスキップされます。

保持期間の計算方法

削除ルールの保持設定を構成すると、AGE フィルターと COUNT フィルターは、出力 AMIsやコンテナに対して直接ではなく、Image Builder イメージリソースに対して評価されます。

重要

AGE フィルターは、出力 AMI またはコンテナ作成日ではなく、Image Builder イメージリソース作成日 (ビルドが完了すると設定されます) を使用します。COUNT フィルターは、AMI やコンテナを出力するのではなく、レシピバージョンごとに Image Builder イメージリソースをカウントAMIs。

保持期間の計算は、ポリシースコープでレシピバージョンを指定する方法によって異なります。

特定のバージョン (例: 1.0.0)

保持数は、その正確なレシピバージョンで構築された Image Builder イメージに適用されます。Image Builder は、最新のイメージを (作成日順に) 最初に保持します。

ワイルドカードバージョンパターン (例: 1.x.x)

保持数は、一致するレシピバージョンごとに個別に適用されます。たとえば、1.x.x保持数が 5 の場合、 には 5 つの最新のイメージ1.0.0、 には 5 つの最新のイメージ1.1.0が保持されます。

タグベースのリソース選択

タグベースのリソース選択 (「」を参照リソースセレクタとしてのタグと除外ルール) では、保持期間もレシピバージョンごとに計算されます。Image Builder は、各バージョン内で最新のイメージを最初にソートし、バージョングループごとに保持数を個別に適用します。

年齢ベースとカウントベースの削除フィルター

削除ルールは、2 つのフィルタータイプのいずれかを使用して削除の適格性を判断します。

AGE フィルター

指定された経過時間しきい値 (Image Builder イメージ作成日からの日、週、月、年) より新しい Image Builder イメージを保持します。年齢に関係なく、レシピバージョンごとに最新のイメージの最小数を維持するretainAtLeastように を設定できます。

COUNT フィルター

レシピバージョンごとに最新の N Image Builder イメージを保持します。指定された数を超えるすべてのイメージは削除の対象となります。

追加の保持動作が適用されます。

  • 失敗した、またはキャンセルされた Image Builder イメージは保持制限にカウントされず、常に削除の対象となります。

  • Image Builder は、最新のイメージを処理し、削除資格を評価する前に保持数を適用します。

ライフサイクルアクションが関連リソースに与える影響

Image Builder イメージのライフサイクルアクションは、ルールタイプと設定に応じて、関連する出力 AMIsまたはコンテナに影響します。

非推奨

Image Builder のイメージリソースのステータスを Deprecated に設定します。関連付けられた出力 AMIs を非推奨にすることもできます。非推奨AMIs は一般的な検索では表示されませんが、AMI ID では引き続き使用できます。Image Builder は、非推奨の各 AMI にDeprecatedBy: EC2 Image Builderタグを追加します。

AMI ベースのイメージにのみ適用され、コンテナには適用されません。

無効化

Image Builder のイメージリソースのステータスを Disabled に設定します。関連付けられた出力 AMIs を無効にすることもできます。無効化された AMIsプライベートになり、新しいインスタンスを起動しなくなります。

AMI ベースのイメージにのみ適用され、コンテナには適用されません。

Delete

Image Builder イメージリソースを削除します。以下を削除することもできます。

  • 他の AWS リージョン および アカウントに配布AMIs を出力する

  • これらの AMIs に関連付けられたスナップショット

  • Amazon ECR リポジトリに配布されるコンテナ

AMI ベースイメージとコンテナベースのイメージの両方に適用されます。

注記

Image Builder は、イメージレベルでライフサイクルアクションを決定します。関連する出力リソース (AMIs、スナップショット、コンテナ) は、それらを含めるようにルールを設定している場合にのみ変更されます。

許可されたリソース状態遷移

これらの状態間のライフサイクルポリシーと StartResourceStateUpdate API 移行イメージリソース:

使用可能 → 非推奨

使用可能なイメージを非推奨としてマークします。イメージは AMI ID で引き続き使用できますが、一般的な検索では表示されません。Image Builder は追跡用のDeprecatedBy: EC2 Image Builderタグを追加します。

使用可能または非推奨 → 無効

AMI をプライベートにして、新しいインスタンスの起動を防ぎます。AMI が以前に廃止された場合、Image Builder はイメージがより制限の厳しい状態に移行したため、廃止されたタグを削除します。

非ビルド状態 → 削除済み

AMI の登録を解除するか、ECR からコンテナイメージを削除します。関連するスナップショットまたは基盤となるコンテナを削除に含めることができます。

非推奨または無効 → 使用可能

StartResourceStateUpdate API は、非推奨または無効なイメージを使用可能な状態に戻します。これにより、非推奨を取り消し、AMI を再度有効にし、非推奨の日付とDeprecatedByタグを削除します。この移行は、ポリシーの自動実行ではなく、手動 API を介してのみ機能します。

注記

現在構築中のイメージ (保留中、作成中、構築中、インポート中、テスト中、配布中、統合中) の状態は変更されません。アクティブなビルドのイメージの手動状態更新は、 エラーで失敗します。

ライフサイクルポリシーのルールの詳細を表示する

コンソールのライフサイクルポリシーの詳細ページには、ポリシーのルールの詳細[ルール] タブを示す があります。

で AWS CLI、get-lifecycle-policy コマンドを実行します。レスポンスには、設定されたすべてのアクション (ルール) とその設定が含まれます。