AWS ECRでDocker Loginするまで。AWSCLIを使って。

AWSのECRというサービスをご存知でしょうか。
Dockerを利用して、AWSへデプロイしたい場合にはDocker レポジトリとして利用されるサービスです。

AWSもDockerも学習したての頃、最初のログインで躓いてしまいました。
その時の、躓きポイントを紹介して参ります。

ポイント:
・AWS CLIでコマンドからログインしよう
・ログインする場合には、config でprofileを設定し、活用しよう
・ログインするのは、AWSのアカウント情報(IAM情報)でECRへログイン

こちらの話でお届けします。

今回、一番参考になると思われる読者の方は

「詳しく分からないが、ECRにログインしなくては。でも、ログインって何情報を使って、どういうコマンドでログインすればいいのか。」といった疑問を持った方かと思います。

参考記事:

全体を通して、参考にさせて頂いた記事は、「AWS CLIを使ってECRにDockerイメージを登録する」です。

1:AWS CLIでコマンドからログインしよう

まずは、AWS CLIを使っていきましょう。AWSのGUI(コンソール画面)でも進めていけるのでしょうが、サンプル情報もCLIの情報を基にしているものが多いですし、ログとして残していけるCLIをお勧めします。

windowsでCLIを活用していくためには、こちらを参考にしました。
このまま進めていけば、CLIの活用はすんなり進めることができました。

2: ログインする場合には、config でprofileを設定し、活用しよう

CLIで、config情報を設定することが出来ます。下記コマンドを使います。

aws configure

これ、何のために実行するのか??と、疑問の方もいるかもしれません。
ECRに限らず、CLIからAWSサービスを利用していく際に、ユーザーのログイン情報などを使うシーンがあります。
その際に、いちいち情報を打ち込んだり、コピペしたりする手間を省く目的で使われます。

で、1点気に掛けるといいのは、config情報の登録をuser名を付けて同時に設定することが可能です。
( 複数のconfig情報を登録して、利用する場合に用いる必要があるわけですね。 ) 何も設定しないと、defaultという名称になっているはずです。

コマンドとしては下記です。

aws configure user1( 任意のusername )

3: ログインするのは、AWSのアカウント情報(IAM情報)でECRへログイン

さぁ、それでは、今回の記事の本題です。ここから、ECRへログインしていきます。CLIでのコマンドは下記です。

aws ecr get-login-password --profile 設定A | docker login --username AWS --password-stdin 設定B

私は、最初に勘違いしていたのが、docker loginに含めるべき情報が、docker hubの情報だと勘違いしていました。正直、冷静に考えればそんなハズもないのですが。
色々な情報が欠けていると、見当はずれ間違いを起こしてしまうものですね。

で、ここでログインするべき情報はAWSのアカウント情報(IAM情報)です。

上記のコマンドで、利用者個別で変更する部分は、設定A・設定Bです。

注意して頂きたいのは、CLIのversionによって、コマンドが異なってきます。
今回、使用しているコマンドは v2のコマンドです。
こちらの記事を参考にしてます。

設定A:configで設定した、profile名称。

設定A:configで設定した、profile名称。
>2: ログインする場合には、config でprofileを設定し、活用しよう
にて、解説した部分です。
ここで設定した、aws configure user1 であれば、設定Aにuser1と記します。

設定B: ECRのリポジトリで作成したURI

設定Bは、ECRでレポジトリを作成した際のURIを活用します。今回の記事では、URIの紹介をしておりませんが、冒頭にお伝えした記事にてその作り方が紹介されております。非常に簡単に作れると思います。そこで作成したURIを貼り付けます。

AWSのコンソール画面でもURIは確認することができます。

以上で、コマンドを実行して、

Login Succeeded

と表示されればログイン完了です。