search
LoginSignup
0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

AWS Containers Advent Calendar 2020 Day 3

posted at

updated at

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

本記事は個人の意見であり、所属する組織の見解とは関係ありません。
こちらは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も続きます。新しい機能・サービスを触りながら楽しみましょう!

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
What you can do with signing up
0
Help us understand the problem. What are the problem?