Amazon ECR のライフサイクルポリシーを使用してイメージのクリーンアップを自動化する - Amazon ECR

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

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. テストルールを保存し、プレビューを実行します。

  3. ライフサイクルポリシーエバリュエーターは、すべてのルールを評価し、各ルールが影響するイメージにマークを付けます。

  4. 次に、ライフサイクルポリシーエバリュエーターは、ルールの優先度に基づいてルールを適用し、リポジトリ内で有効期限切れに設定されるイメージを表示します。

  5. テストの結果を確認し、有効期限切れとマークされたイメージが意図したとおりのものであることを確認します。

  6. テストルールをリポジトリのライフサイクルポリシーとして適用します。

  7. ライフサイクル ポリシーが作成されると、イメージが有効期限の基準を満たしてから 24 時間以内に期限切れになることが予想されます。

ライフサイクルポリシーの評価ルール

ライフサイクルポリシーエバリュエーターは、ライフサイクルポリシーのプレーンテキスト JSON を解析して、すべてのルールを評価し、ルールの優先順位に基づいてリポジトリ内のイメージに適用します。次に、ライフサイクルポリシーエバリュエーターのロジックについて詳しく説明します。例については、「Amazon ECR のライフサイクルポリシーの例」を参照してください。

  • 優先順位に関係なく、すべてのルールが同時に評価されます。すべてのルールが評価された後、優先度に基づいてルールが適用されます。

  • イメージは 1 または ゼロのルールで正確に期限切れとなります。

  • ルールのタグ付け要件に一致するイメージは、優先度がより低いルールによって期限切れにはなりません。

  • ルールが、より優先度の高いルールでマークされたイメージをマークすることはありませんが、期限切れになっていないかのように識別されることがあります。

  • 一連のルールには、一意の一連のタグプレフィックスを含める必要があります。

  • タグが付いていないイメージを選択できるのは 1 つのルールのみです。

  • 画像がマニフェストリストによって参照されている場合、初めにマニフェストリストを削除しないと有効期限切れになりません。

  • 期限切れは常に pushed_at_time の順に並べられ、より古いイメージが新しいものよりも先に期限切れとなります。

  • ライフサイクルポリシールールでは、tagPatternList または tagPrefixList のいずれかを指定できますが、両方は指定できません。ただし、ライフサイクルポリシーにはパターンリストとプレフィックスリストの両方を使用する複数のルールが含まれる場合があります。

  • tagPatternList または tagPrefixList パラメータは、tagStatustagged の場合にのみ使用できます。

  • tagPatternList を使用する場合、ワイルドカードフィルターに一致すればイメージがマークされます。例えば、prod* のフィルターを適用すると、prodprod1 または production-team1 など、prod で始まる名前のリポジトリと一致します。同様に、*prod* のフィルターを適用すると、repo-productionprod-team など、名前に prod が含まれるリポジトリと一致します。

    重要

    1 文字列あたりのワイルドカード (*) の上限は 4 つです。例えば、["test*1*2*3*4*5*6"] は有効ですが ["*test*1*2*3", "test*1*2*3*"] は無効です。

  • tagPrefixList を使用すると、tagPrefixList 値のすべてのタグが、イメージのタグのいずれかに一致した場合、そのイメージがマークされます。

  • countUnit パラメータは、countTypesinceImagePushed の場合のみ使用されます。

  • countType = imageCountMoreThan では、イメージは期間の新しいものから始めて最も古いものへと pushed_at_time に基づいて順に並べられた後、指定したカウントより大きいイメージはすべて期限切れとなります。

  • countType = sinceImagePushed では、countNumber に基づき、pushed_at_time が指定された日数より古いすべてのイメージは期限切れとなります。