LoginSignup
2
0

More than 3 years have passed since last update.

Amazon Elastic Container Registryでパブリックレジストリを作ってみた

Last updated at Posted at 2020-12-03

本記事は個人の意見であり、所属する組織の見解とは関係ありません。
こちらはAWS Containers Advent Calendar 2020の3日目の記事です。

re:Invent 2020が開催しましたね!Andy JassyのKeynoteでもコンテナ関連のサービスのアップデートが複数発表されています。みなさんは、どのアップデートが気になりましたか?

色々触って試してみたいのですが、まずは簡単に試せるというところで、本日の記事では、ECRでパブリックレジストリを作ってみたいと思います!

とりあえず作ってみる

マネージメントコンソールから左側のメニューのRepositoriesにアクセスしてみると、Private/Publicのタブが増えている事に気づきます。細かい事は後でチェックするとして、まずは「Create repository」をクリックしてpublic repositoryを作って行きます。

image01.png

Visibility settingsでPublicを選ぶと、必須入力項目はRepository nameで、残りの入力項目はオプションです。例えば、自作imageを色々な人に使って欲しい!という様な場合には、logoや、descriptionをしっかり入力しておきたいですね。ただし、Amazon ECR Public Galleryの検索結果でlogoが表示される為にはverified accountsであることが必要です。

image02.png

ここのRepository nameに入力した名前が、公開時のURIにも含まれる形になります。

public.ecr.aws/<default alias>/<Resitory name>

設定事項はこれだけです。注意しておきたいポイントは、

  • repository作成後は、Visibility settingsを変更出来ない(private <=> publicの様な変更は出来ない)
  • public resitoryの場合は、imageのscanの設定が行えない
  • default aliasは初回作成時に自動で割り当てられる。後でカスタマイズすることが可能

という所でしょうか。本当に簡単に作れます。

default aliasのカスタマイズは、Registries のメニューから、Publicのプロパティをeditする事で設定可能です。
custom aliasは承認制の様で、一度承認されると変更出来ない様なので、慎重に設定した方が良さそうです。

最終的に今回作ってみた public registoryは、最終的に以下の様な形になりました。この投稿をあげるタイミングでは、custom aliasが承認されていないのでdefault aliasのままです。

public.ecr.aws/a5r0b0k1/hello-container

Amazon ECR Public Galleryからも検索出来る様になっています。

イメージのpush

private registoryと同じく、マネージメントコンソール上から、pushする際のサンプルコマンドを確認することができます。

$ aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws
$ docker build -t <<Resitory name> .
$ docker tag <Resitory name>:latest public.ecr.aws/a5r0b0k1/<Resitory name>:latest
$ docker push public.ecr.aws/a5r0b0k1/<Resitory name>:latest

Privateと特に変更なさそうに見えますが、get-login-passwordを叩く際の先のリージョンはus-east-1になっています。
どうやらpublic registory自体はリージョンにひもづくリソースではなさそうですね。

Misc

あまり見慣れていないドメイン名をみたら、どんな感じなのか調べたくなりますよね。public.ecr.awsを調べていると
Global Acceleratorを使っている様です。

$ dig +noedns +norec public.ecr.aws. @ns-372.awsdns-46.com.

; <<>> DiG 9.10.6 <<>> +noedns +norec public.ecr.aws. @ns-372.awsdns-46.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48233
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0

;; QUESTION SECTION:
;public.ecr.aws.            IN  A

;; ANSWER SECTION:
public.ecr.aws.     300 IN  CNAME   a961edf72200aa9b1.awsglobalaccelerator.com.

;; AUTHORITY SECTION:
ecr.aws.        172800  IN  NS  ns-1158.awsdns-16.org.
ecr.aws.        172800  IN  NS  ns-1919.awsdns-47.co.uk.
ecr.aws.        172800  IN  NS  ns-372.awsdns-46.com.
ecr.aws.        172800  IN  NS  ns-942.awsdns-53.net.

;; Query time: 34 msec
;; SERVER: 205.251.193.116#53(205.251.193.116)
;; WHEN: Thu Dec 03 09:03:40 JST 2020
;; MSG SIZE  rcvd: 225

まだまだre:Inventも続きます。新しい機能・サービスを触りながら楽しみましょう!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0