ようへいの日々精進XP

よかろうもん

(ショロカレ 21 日目)ずっと待ってた Amazon ECR を一瞬、使ってみた

「初老丸の独り Advent calendar 2015」の二十一日目の記事です。

tl;dr

ずっと待ってた Amazon EC2 Container Registory Service が来た!ので、ドキュメントを全く読まずに恐縮ですが触ってみた。(後ほど、いろいろと追記していくか別記事に書く)

aws.typepad.com

うれしい。クリスマスプレゼンツや。


使ってみた!

マネジメントコンソールからポチポチとリポジトリを作る

現時点では東京リージョンには来ていなかったのでヴァージニアで試すことにした。

f:id:inokara:20151222091419p:plain

ECS クラスタを作成するか ECR を作るかの選択肢。

f:id:inokara:20151222091426p:plain

リポジトリ名を入力する。

f:id:inokara:20151222091435p:plain

ビルドしてプッシュするまでの手順が丁寧に紹介されている。

f:id:inokara:20151222091445p:plain

完成。

aws-cli のバージョンアップ

事前に aws-cli のバージョンを上げておく必要があるので注意。

$ aws --version
aws-cli/1.9.15 Python/2.7.6 Linux/3.13.0-55-generic botocore/1.3.15

ECR 関連のオプションは以下の通り。

  • batch-check-layer-availability
  • batch-delete-image
  • batch-get-image
  • complete-layer-upload
  • create-repository
  • delete-repository
  • delete-repository-policy
  • describe-repositories
  • get-authorization-token
  • get-download-url-for-layer
  • get-login
  • get-repository-policy
  • initiate-layer-upload
  • list-images
  • put-image
  • set-repository-policy
  • upload-layer-part

ビルドしてポイ

まずは、ECS 連携ではなくて、手元の Docker イメージを push するだけを試す。

以下のように docker login コマンドを取得する。

$ aws ecr get-login --region us-east-1

以下のように出力される。

docker login -u AWS -p xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -e none https://xxxxxxxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com

出力されたコマンドを利用してログインする。

$ docker login -u AWS -p xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -e none https://xxxxxxxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com

以下のように出力されてログイン完了。

WARNING: login credentials saved in /path/to/.docker/config.json
Login Succeeded

適宜ビルドする。

$ docker build --no-cache=true -t oreno-registory .

tag を付ける。

$ docker tag oreno-es-index-snapshot:latest xxxxxxxxxxxxxxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/oreno-registory:latest

あとは push する。

$ docker push xxxxxxxxxxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/oreno-registory:latest
The push refers to a repository [xxxxxxxxxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/oreno-registory] (len: 1)
43737a875786: Pushed
b370b48fdda0: Pushed
b272a22d11f5: Pushed
c761a8960a2c: Pushed
e3c74b06a9ef: Pushed
60e97b91fc80: Pushed
b794e346bfef: Pushed

(snip)

5822f840e16b: Pushed
1565e86129b8: Pushed
latest: digest: sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx size: 46605

プッシュ完了。

f:id:inokara:20151222092533p:plain

とっても簡単。


ということで

ずっと待ってた!

だけに年内に触れて嬉しい。

ぱっと触った感じだと

ふつうの Docker Registory と遜色無い。

権限などの設定

以下のように権限も設定できる。

f:id:inokara:20151222093523p:plain

ドキュメント

docs.aws.amazon.com

引き続き、さわっていく。