Docker オフィシャルイメージが ECR Public で利用可能になりました #reinvent

Docker オフィシャルイメージがECR Publicで利用可能になりより便利になりました
2021.11.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。
ご機嫌いかがでしょうか。
"No human labor is no human error" が大好きな ネクストモード株式会社 の吉井です。

AWS re:Invent 2021 楽しんでいますでしょうか?
数日前からアップデートが徐々に増え始め、イベント開催にあたり一気に放出されてきました。

初日のアップデートからとびきり熱いものを紹介します。
Docker オフィシャルイメージが ECR Public で利用可能になりました。

CodeBuild使用時の悩み

Docker Hub は無料プランのユーザーに特定時間あたりの Pull 回数制限を設けています。
この回数制限は IP アドレスを基に行われます。

Docker Hub も商用サービスなのでこの制限自体は問題ありません。
AWS ユーザーが問題になるのは、無料プラン且つ CodeBuild (単体でも CodePipeline でも) 内で docker pull をしているケースです。

CodeBuild のパブリック IP アドレスはリージョンで共有しています。
東京リージョンの CodeBuild ユーザーが docker pull していれば、 Docker Hub 無料プランの Pull 回数制限はすぐに到達するだろうということは容易に想像できます。
ことの詳細や回避策は以下のエントリが詳しいので参照ください。

今回のアップデートで嬉しいこと

ECR Public で公開されている Docker オフィシャルイメージを使うことで Docker Hub 無料プランの Pull 回数制限関係無くイメージを Pull することが可能です。
有料プランに加入する、認証ユーザーを作成する、NAT Gateway を作る、といった一工夫が不要になります。

僅かかもしれませんが、AWS リソースから ECR から Pull すると Docker Hub よりかはネットワーク的に近いのでレイテンシが改善する可能性も少しはあるかもしれません。

閉じたネットワークで CodeBuild を使いたいという要件がある際にも活用できそうです。

イメージの場所

Amazon ECR Public Gallery のなかで by Docker 、または、 [Docker Official Images] と記載されているイメージが Docker オフィシャルイメージです。
一覧のリンクは以下です。
Amazon ECR Public Gallery Docker

各イメージ

Amazon ECR Public Gallery Docker で検索して任意のイメージを開くと、URI や Readme らしきものが表示されると思います。
下図は python の例です。

提供元ご確認を

例えば、Ubuntu イメージは「by Docker」と「by Ubuntu」があり提供元が違うのでご注意ください。
Docker Hub と同じイメージのはずが、Ubuntu 提供のイメージだったなんてことにならないよう慎重に選択ください。

おまけ

Pull して確認してみたというおまけです。。。

$ docker pull public.ecr.aws/docker/library/alpine:latest
$ docker pull alpine

$ docker images --no-trunc
REPOSITORY                             TAG       IMAGE ID                                                                  CREATED      SIZE
alpine                                 latest    sha256:c059bfaa849c4d8e4aecaeb3a10c2d9b3d85f5165c66ad3a4d937758128c4d18   5 days ago   5.59MB
public.ecr.aws/docker/library/alpine   latest    sha256:c059bfaa849c4d8e4aecaeb3a10c2d9b3d85f5165c66ad3a4d937758128c4d18   5 days ago   5.59MB

参考

Docker Official Images now available on Amazon Elastic Container Registry Public
Docker Official Images Now Available on Amazon Elastic Container Registry Public; Completes Integration with AWS Graviton Service
News from AWS re:Invent – Docker Official Images on Amazon ECR Public
Amazon ECR Public Gallery Docker
Amazon ECR Public Gallery

以上、吉井 亮 がお届けしました。