Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

はじめに

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

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

Jason
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away