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
と表示されればログイン完了です。