翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon ECR でのライフサイクルポリシーを使用したイメージのクリーンアップの自動化
Amazon ECR ライフサイクルポリシーを使用すると、プライベートリポジトリ内のイメージのライフサイクル管理をより詳細に制御できます。ライフサイクルポリシーには 1 つ以上のルールが含まれ、各ルールで Amazon ECR のアクションが定義されます。ライフサイクルポリシーの有効期限の基準に基づいて、イメージは経過時間またはカウントに基づいて 24 時間以内に期限切れになります。Amazon ECR がライフサイクルポリシーに基づいてアクションを実行した場合、このアクションはイベントとして AWS CloudTrailにキャプチャされます。詳細については、「を使用した Amazon ECR アクションのログ記録 AWS CloudTrail」を参照してください。
ライフサイクルポリシーの機能
ライフサイクルポリシーは、リポジトリ内のどのイメージに有効期限切れにするかを決定する 1 つ以上のルールで構成されています。ライフサイクルポリシーの使用を検討する場合、リポジトリに適用する前に、ライフサイクルポリシーのプレビューでライフサイクルポリシーが有効期限切れになったイメージを確認することが重要です。ライフサイクルポリシーがリポジトリに適用されると、イメージが有効期限の基準を満たしてから 24 時間以内に期限切れになることが予想されます。Amazon ECR がライフサイクルポリシーに基づいてアクションを実行すると、これはイベントとして AWS CloudTrailにキャプチャされます。詳細については、「を使用した Amazon ECR アクションのログ記録 AWS CloudTrail」を参照してください。
次の図表は、ライフサイクルポリシーのワークフローを示します。

-
テストルールを 1 つ以上作成します。
-
テストルールを保存し、プレビューを実行します。
-
ライフサイクルポリシーエバリュエーターは、すべてのルールを評価し、各ルールが影響するイメージにマークを付けます。
-
次に、ライフサイクルポリシーエバリュエーターは、ルールの優先度に基づいてルールを適用し、リポジトリ内で有効期限切れに設定されるイメージを表示します。ルールの優先度の数値が低いほど、優先度が高くなります。たとえば、優先度 1 のルールは、優先度 2 のルールよりも優先されます。
-
テストの結果を確認し、有効期限切れとマークされたイメージが意図したとおりのものであることを確認します。
-
テストルールをリポジトリのライフサイクルポリシーとして適用します。
-
ライフサイクル ポリシーが作成されると、イメージが有効期限の基準を満たしてから 24 時間以内に期限切れになることが予想されます。
ライフサイクルポリシーの評価ルール
ライフサイクルポリシーエバリュエーターは、ライフサイクルポリシーのプレーンテキスト JSON を解析して、すべてのルールを評価し、ルールの優先順位に基づいてリポジトリ内のイメージに適用します。次に、ライフサイクルポリシーエバリュエーターのロジックについて詳しく説明します。例については「Amazon ECR でのライフサイクルポリシーの例」を参照してください。
-
リポジトリに参照アーティファクトが存在する場合、Amazon ECR ライフサイクルポリシーは、サブジェクトイメージの削除から 24 時間以内にそれらのアーティファクトを自動的にクリーンアップします。
-
優先順位に関係なく、すべてのルールが同時に評価されます。すべてのルールが評価された後、優先度に基づいてルールが適用されます。
-
イメージは 1 または ゼロのルールで正確に期限切れとなります。
-
ルールのタグ付け要件に一致するイメージは、優先度がより低いルールによって期限切れにはなりません。
-
ルールが、より優先度の高いルールでマークされたイメージをマークすることはありませんが、期限切れになっていないかのように識別されることがあります。
-
一連のルールには、一意の一連のタグプレフィックスを含める必要があります。
-
タグが付いていないイメージを選択できるのは 1 つのルールのみです。
-
画像がマニフェストリストによって参照されている場合、初めにマニフェストリストを削除しないと有効期限切れになりません。
-
期限切れは常に
pushed_at_time
の順に並べられ、より古いイメージが新しいものよりも先に期限切れとなります。 -
ライフサイクルポリシールールでは、
tagPatternList
またはtagPrefixList
のいずれかを指定できますが、両方は指定できません。ただし、ライフサイクルポリシーにはパターンリストとプレフィックスリストの両方を使用する複数のルールが含まれる場合があります。tagPatternList
またはtagPrefixList
の値に含まれるすべてのタグがイメージのいずれかのタグと一致した場合に、イメージは一致したことになります。 -
tagPatternList
またはtagPrefixList
パラメータは、tagStatus
がtagged
の場合にのみ使用できます。 -
tagPatternList
を使用する場合、ワイルドカードフィルターに一致すればイメージがマークされます。例えば、prod*
のフィルターを適用すると、prod
で始まる名前 (prod
、prod1
、production-team1
など) を持つリポジトリと一致します。同様に、*prod*
のフィルターを適用すると、名前にprod
が含まれる (repo-production
、prod-team
など) リポジトリと一致します。重要
1 文字列あたりのワイルドカード (
*
) の上限は 4 つです。例えば、["test*1*2*3*4*5*6"]
は有効ですが["*test*1*2*3", "test*1*2*3*"]
は無効です。 -
tagPrefixList
を使用した場合、tagPrefixList
値のすべてのワイルドカードフィルターがイメージのいずれかのタグと一致した場合に、イメージは一致したことになります。 -
countUnit
パラメータは、countType
がsinceImagePushed
の場合のみ使用されます。 -
countType = imageCountMoreThan
では、イメージは期間の新しいものから始めて最も古いものへとpushed_at_time
に基づいて順に並べられた後、指定したカウントより大きいイメージはすべて期限切れとなります。 -
countType = sinceImagePushed
では、countNumber
に基づき、pushed_at_time
が指定された日数より古いすべてのイメージは期限切れとなります。