🐋

Docker pull 税をAWS-ECRで

2021/11/20に公開

Docker pull 税

Docker Hubが Anonymous Pullに制限かけますよの話。Docker Desktopにも税金がかかるようになったそうだが、こっちは別。
昨年 ECR publicが発表されたので今更だが、久しぶりにギャラリーを見てみると..

Docker Offical images on ECR

やるという噂は聞いていたが、こっそり?俺が見つけられなかっただけかもしれないけど、大部分のユーザーに影響があるDockerImageがECRにもう乗ってました。
いろいろ思うところはあるけど そういうことなんやな と大人の理解を示しておく。今までありがとう Docker Hub。

料金とかレートリミットとか

https://aws.amazon.com/jp/ecr/pricing/

  • AWS内部でPullする場合はタダ
  • AWS外部からPullする場合
    • AWS認証なしで500GB/月 制限 IPアドレス単位で計測するらしい 料金説明に注釈あり
    • AWS認証ありの場合 5TB/月 まで無料、超過は 0.09$/GB らしい

AWS認証ありってどうやんの?

https://docs.aws.amazon.com/AmazonECR/latest/public/public-registries.html#public-registry-auth にあるとおり aws ecr-public get-login-password でdocker loginしろってことらしい。ここで叩かれたAWSプロジェクトにチャージされる仕組み。
ECR credentail helper もしれっと対応してるようです。 https://github.com/awslabs/amazon-ecr-credential-helper#configuration

利用ケース

ローカルマシンでのDocker

個人で開発している場合はまずよっぽどのことがない限り 500GBもpullはしないはず。これ、public の話だからね、2GBとかの身元不明のでかいイメージ信用できる?むりでしょ
ただし分析やML系のごついランタイムが乗ったイメージだと2GBとか結構ある。でも月250回もPullするかね?、ひとりで

問題は企業内ネットワークから固定IPでインターネットに出ているパターンで、AWS認証なしならPullする人が多ければ月500GBなら結構行くかもしれない。

そうなるとAWS認証するとなるが、その場合なら月5TBってなかなか行かないと思う(1000人規模でAWSアカウント一個とかは例外)。大部分がベーシックなランタイムだけの小さなイメージだからね。

CIでPull/Buildしてる場合

AWS上でビルドしているなら、問題なし。CircleCIなどの場合、IPは使い回し状態のはずなので、AWS認証なしは、下手するとDocker Hubのほうがましかもしれない。
AWS外の環境なら、AWS認証は必須になると考えて良さそう。これは 頻度によっては5TB超えはありそう。

将来的にはAWSでBuildする・けど一旦AWS認証でECR-public使う

これが一番現実的かな。Pullにお金かかってしゃーないとなる可能性はまず低いはず。対してCIをAWSのもので組み直しは結構辛いはず。とりあえずAWS認証してpullし、金かかっても確実にビルドできる状態にしたほうが幸せ。Pull税を素直に Docker Hub さんに払うのももちろんあり。ゴリゴリに使う場合はservice account があるらしい、こちらは課金ベースがpullの回数なので、AWS ECRとは微妙に競合していない、と一応言える。懐と相談して決める。

Discussion