2
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

ECR ライフサイクルポリシーを利用したImageの自動削除

はじめに

ECRで運用をしていくと溜まってしまうimageですがこれらを世代管理していこうと思います。

また、参考までにECRの費用は '0.10 USD/GB/月' です。
費用を少しでも抑えたいので古いImageはやはり消しておきたいですね!

そして今回使用するツールは ECR の ライフサイクルポリシー

image.png

ポリシーは機能は多く複雑なポリシーの作成が可能です。
しかし、それらはAmazon ECR ライフサイクルポリシーをよく読めば作成可能ですが今回、よく使うことが多いであろう一部ポリシー設定例を紹介させていただきます。

削除ポリシーの世代管理概要

タグの有無 世代管理方法
日数
イメージ数
日数
イメージ数

よく使いそうなサンプル

productionタグをつけたimageを10世代だけ残す設定

image.png

productionタグをつけたimageで10日以上経過したものを削除する設定

image.png

latest運用していてタグがないものを指定する場合


10世代だけ残す設定

image.png

10日以上経過したものを削除する設定

image.png

タグ(Tag prefixes)を指定する場合の注意点

tagPrefixList
タイプ: list[string]

必須: tagStatus が [tagged] に設定されている場合のみ、必須

このパラメータは、"tagStatus": "tagged" を指定した場合のみ使用されます。ライフサイクルポリシーでアクションを実行するための、カンマ区切りのイメージタグプレフィックスのリストを指定する必要があります。たとえば、イメージに prod、prod1、prod2 というようにタグが付いている場合、すべてを指定するためにタグプレフィックス prod を使用します。複数のタグを指定する場合、指定されたすべてのタグが付いているイメージのみが選択されます。

ライフサイクルポリシーのパラメータより

実際に以下のように設定して試してみた。

ECRリポジトリ登録Image

api:staging.v1.0.1
api:staging.v1.0.2
api:staging.v1.0.3

こういった場合、ポリシーで指定するタグ名を以下のように指定できます。

staging

Dry Runしてみると・・・
image.png

うまくヒットしたようです!

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
2
Help us understand the problem. What are the problem?