![多量のイメージファイルを持つECRリポジトリが発生させるストレージ月額コストを概算してみる](https://devio2023-media.developers.io/wp-content/uploads/2019/05/amazon-ec2-container-registry.png)
多量のイメージファイルを持つECRリポジトリが発生させるストレージ月額コストを概算してみる
はじめに
担当プロジェクトの運用改善として、ECRのリポジトリでの保存イメージ整理に着手したところ、削除する手順が一切なかったこともあり相応のボリュームとなっていました。容量削減のためにライフサイクルポリシーの設定を行うにも、環境が本番・開発と複数ありつつも固定タグがlatestのみの状況で、ルール付けを行うのが先だなと実感しているところです。
解決するまでに発生し続けるコストが気になり、先ずは該当リポジトリに保存されているイメージによる一ヶ月当たりの利用料を計算してみました。
aws-cliによる計算
公式ドキュメントによる料金詳細は以下の通りです。
ストレージコストは 1 か月あたり GB 単位で 0.10USD
aws --profile=XXXXX ecr describe-images --repository-name REPONAME | jq '[.imageDetails[].imageSizeInBytes] | add' | numfmt --to-unit=1073741824 | xargs -I{} echo '{} * 0.1' | bc | xargs -I{} echo '{} USD'
profile
と--repository-name
だけ指定が必要です。
describe-images
によるサイズ表記はByte単位となっているため、numfmt
にてGB単位に計算し直しています。小数点以下を有効にした料金計算を行うため、0.1で掛ける式を出力しつつbcで処理しています。
あくまでも目安を知ることが目的のため、端数は省いています。
あとがき
今回の結果はワンコイン程度のボリュームでしたが、塵も積もればということで今月内には片付けておきたいところです。
余程の量のイメージファイルをそのまま放置しない限りは月額のコストもそこまで大きくはならないと思われますが、リポジトリのライフサイクル設定や削除に関する手順等に心当たりが無い場合には、一度確認しておくとヒヤリ回避につながるかもしれません。