ECR(Amazon Elastic Container Registry)にコンテナイメージをアップロードする
2019/05/02
「Pandocサーバーのコンテナイメージを作成する」で作成したイメージをAWS Batchで使いたいので、ECR(Amazon Elastic Container Registry)にアップロードします。
最終的にはマークダウンからEPUB3への変換をAWS Batchで自動化したいと思います。
目次
ECRリポジトリの作成
[Amazon Container Services]にアクセスして、[Amazon ECR]を選択します。
[リポジトリの作成]ボタンをクリックしました。
リポジトリの名前を入力して作成しました。
リポジトリが出来ました。
ECRリポジトリにイメージをプッシュ
リポジトリ名をクリックして、[プッシュコマンドの表示]をクリックすると、このリポジトリにイメージをプッシュするためのコマンドが表示されます。
ここからはAWS CLIでこのコマンドを実行します。
CLIコマンドを実行するユーザーのIAMポリシーは、最小権限になるようにしてみました。
このポリシーは最終的にこうなったポリシーです。
最初はecr:PutImageとecr:GetAuthorizationTokenだけで開始して、エラーメッセージごとに追加していきました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
{ "Version": "2012-10-17", "Statement": [ { "Sid": "sid1", "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:UploadLayerPart", "ecr:InitiateLayerUpload", "ecr:PutImage" ], "Resource": "arn:aws:ecr:us-east-1:123456789012:repository/pandoc" }, { "Sid": "sid2", "Effect": "Allow", "Action": "ecr:GetAuthorizationToken", "Resource": "*" } ] } |
1 2 3 4 5 6 |
$ (aws ecr get-login --no-include-email --region us-east-1) WARNING! Using --password via the CLI is insecure. Use --password-stdin. Login Succeeded $ docker tag pandoc:latest 123456789012.dkr.ecr.us-east-1.amazonaws.com/pandoc:latest $ docker push 123456789012.dkr.ecr.us-east-1.amazonaws.com/pandoc:latest |
イメージはすでに作成済ですので、docker buildはスキップしてます。
エラーが発生しました。
「error parsing HTTP 403 response body: unexpected end of JSON input: “”」
ここまでも権限不足が発生するごとに
「denied: User: arn:aws:iam::123456789012:user/ecr is not authorized to perform: ecr:InitiateLayerUpload on resource: arn:aws:ecr:us-east-1:123456789012:repository/pandoc」というようなメッセージが表示されていたので、該当のポリシーをリソース限定で追加していました。
ですが、今回のメッセージは権限不足なのかどうかよくわかりませんでした。
このメッセージそのもので検索していくつかの検索結果を見ますと、「”ecr:BatchCheckLayerAvailability”」を追加しよう、ということだったので追加しました。
アップロードできました!
次はAWS Batchで使ってみます。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。


開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
Lambdaでちょっとしたコードを試すときに便利なエディタのフルスクリーン機能
Lambda歴6年で、はじめて使いました。 この存在に気がついてなかったです。 …
-
-
ユーザーガイドの方法でGithubからCodeCommitへリポジトリを移行する
GitリポジトリをAWS CodeCommitに移行するを参照しました。 環境 …
-
-
AWS Toolkit for Eclipseをセットアップ(2021年版)
AWS Toolkit for Eclipseをセットアップするで6年前に書いて …
-
-
iPad ProのWorking CopyでAWS CodeCommitのリポジトリを使う
iPad Proを導入しましたので、原稿執筆や校正でフル活用しようと思いまして。 …
-
-
ブログのアーキテクチャをコストベースで見直しました
当ブログはAWSで構築しています。 アーキテクチャをコストを最重視して見直しまし …
-
-
JAWS DAYS 2018 「Cost-Driven AWS クラウドアーキテクチャデザインとコスト最適化方法 – Cost-Driven AWS Cloud Architecture Design : The Lean Startup on AWS」を聞きました
以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …
-
-
Application Load Balancer スティッキーセッションでどれぐらい偏るかを偶然見ました
Amazon Linux2のPHPを7.2から7.3へアップデートしましたでアッ …
-
-
EC2 Global Viewで不要なインスタンスを見つけて4つほど終了しました
EC2 Global Viewという機能がリリースされました。 EC2コンソール …
-
-
Apple Silicon M1 MacBook ProにAWS CLI v2をインストール
公式手順どおりにインストールしました。 macOS での AWS CLI バージ …
-
-
EC2インスタンスを必要最小限のパラメータでCLIとSDKから起動する
EC2インスタンスをCLIとSDKから起動するデモで、パラメータを必要最小限にし …