AWSハンズオンでハマったポイント〜「モダンウェブアプリケーションを構築する」

最近案件でAWSを触る機会が増えているのだけど、先方のエンジニアについていけないことがあるので、久しぶりにAWSのハンズオンをやってみたら、かなりハマったのでNoteに挙げておきます。しんどかった。。。

とりあえずDynamoDBとかLambdaを触りたいと思って、以下のハンズオンを発見したのでとりあえずやってみた。

そして、ハマったのはDockerのプッシュの部分。

ハンズオンの指示通りにECRのレポジトリを作って、Dockerのイメージプッシュの準備をして、ログインして実際にプッシュしようと以下のコマンドを実行

docker push REPLACE_ME_WITH_DOCKER_IMAGE_TAG

すると、以下のエラーが出た

d098cf8b4aaa: Preparing
43f5ee255792: Preparing
eff3ad6d29ab: Preparing
4150ea7fca2b: Preparing
b09d20d617a7: Preparing
4942a1abcbfa: Preparing
no basic auth credentials

認証できていなっぽいので、最後の行のエラーを検索、以下のページが出てきた

みてみると、ログインしようと"$(aws ecr get-login --no-include-email)"コマンドを直前に実行してたけど、このコマンドは推奨されないとのこと。まぁハンズオンって古くなるとそういうこともあるよねーと思い、記事の通り以下を実行

aws ecr get-login-password | docker login --username AWS --password-stdin MY-REGISTRY-URL

すると、今度もエラー(以下)

Error response from daemon: login attempt to https://<AWSのアカウント名>.dkr.ecr.us-east-1.amazonaws.com/v2/ failed with status: 400 Bad Request

やっぱり認証?ということで再びググるも有効なページがヒットしない。。ということでここからドツボ。標準出力で出てくるパスワードを直接コマンド内に嵌め込んだり、URIを変えてみたり、最終的に環境再構築してもう一度最初からやってみたりしたけど、一向に解決せず。

当方ド文系からのSIer入社なので、やろうとして挫折すること多々あり、「今度もそのパターンかぁ。。。」と思いながら、一旦リフレッシュ(という名の家事)

何かヒントがないかとAWSコンソールを見ていると以下の項目をAWSコンソールのECR-リポジトリのページで「プッシュコマンドの表示」という項目を発見

スクリーンショット 2021-09-20 16.39.19

気になって開いてみたら使えそうな情報が!

スクリーンショット 2021-09-20 16.40.52

今までのページでDockerイメージの構築に言及していたものはなかったなーということでコマンドを順次実行したら、、

スクリーンショット 2021-09-20 16.43.17

やったー!

でもなんでだろう??Dockerのイメージをビルドするところはハンズオンでもフォローされいて、以下のコマンドを既に実行済みなのですが。。

docker build . -t REPLACE_ME_AWS_ACCOUNT_ID.dkr.ecr.REPLACE_ME_REGION.amazonaws.com/mythicalmysfits/service:latest

URIの指定?認証との前後関係??そもそもDockerがよくわからない???

とはいえ、この部分はあんまりハンズオンの本質には関わらないので、スルーしておいてまた然るべき時に復習します。

同じくここでハマった人に届きますように!!

この記事が気に入ったらサポートをしてみませんか?