こちらの動画を参考にさせていただきながら、人生初のECSを触ってみることに。
解説がめっちゃわかりやすく、知識0の私でもスルッと第一歩を踏み出すことができました!
若干動画と現在でAWSコンソールのUIが変わっているものの、
順調に動画通り進めていくことができました。
が、AWSのECRを設定するところでめちゃくちゃ詰まったのでメモしておきます
やりたいこと
今からやりたいことはこんな感じです。
- AWS ECRにリポジトリを作成
- ローカル環境にあるdocker imageをAWS ECRにプッシュ
→AWSが親切にコマンドを用意してくれている
上記の1は完了したので、2を実行したいです。
ここでめちゃくちゃ詰まったので、ここに内容と解決策をメモしておきます😢
しなければいけないこと(まとめ)
- AWS CLIをインストールする
- IAMユーザーを作成する
- aws configreを設定する
動画通りに進めていたところ出たエラー
エラー内容も一応メモしておきます。
AWSが用意してくれているプッシュコマンドを流したところ、エラーが。
// このコマンドはサンプルです。動画を参考に、ご自身のプッシュコマンドを使用してください。
aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
// エラー内容
Command 'aws' not found, but can be installed with:
sudo apt install awscli
Error: Cannot perform an interactive login from a non TTY device
deepl翻訳:コマンド ‘aws’ が見つかりませんが、インストール可能です:sudo apt install awscli
deepl翻訳:TTY 以外のデバイスから対話式ログインを実行できない
ここでは2つのことが言われていますが、
はじめに「AWS CLIをインストールしてね」と言われているので、
言われた通りAWS CLIをインストールします。
(”TTY 以外のデバイスから対話式ログインを実行できない”
の意味がよくわからないので、調べておきます…)
1.AWS CLIをインストールする
インストールの方法は公式に書いてあります👇
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html
コマンドを3回流すだけ。超簡単3ステップです。
STEP1:必要なファイルを取得する
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
curlコマンドとは
👻サーバーとデータを送受信するコマンド
-oオプションとは
👻取得したデータを-oの後で指定したファイルに保存する。
つまり上記のコマンドを流すことにより、
- ”https://~.zip”からデータを取ってきて
- awscliv2.zipという名前でローカルに保存する
ことができます。
STEP2:解凍する
unzip awscliv2.zip
※unzipする前に※
ここで私は詰まりました…。
原因はLinuxについての知識が少なかったためです。
(私はubuntuを使用しています)
さらっと出てきたので気付かなかったのですが、
Linuxでは既定でunzipコマンドがインストールされていない可能性があります。
// unzipコマンドを流しても、こんな感じで怒られます
Command 'unzip' not found, but can be installed with:
sudo apt install unzip
なので、unzipコマンドを別途インストールする必要があります。
sudo apt-get install zip unzip
参考:https://hydrocul.github.io/wiki/commands/zip.html
unzipコマンドをインストールしたら、冒頭のコマンドを流して
zipファイルを解凍しましょう!
STEP3:ついにインストール
sudo ./aws/install
管理者権限で先ほど解凍したzipの中にあるinstallファイルを実行することにより、
自動的にAWS CLIがインストールされます。
// 実行結果
You can now run: /usr/local/bin/aws --version
きちんとインストールできたか確認してみましょう!
aws --version
// 実行結果(成功!)
aws-cli/2.8.9 Python/3.9.11 Linux/5.10.102.1-microsoft-standard-WSL2 exe/x86_64.ubuntu.20 prompt/off
2.IAMユーザーを設定する
AWS CLIをインストールするだけではプッシュコマンドを流すことができません。
下記のようなエラーが出ます。
Unable to locate credentials. You can configure credentials by running "aws configure".
Error: Cannot perform an interactive login from a non TTY device
deepl翻訳:クレデンシャルを見つけられません。aws configureを実行することで、クレデンシャルを設定することができます
(最後に先ほどと同じエラーが出てますね→TTY 以外のデバイスから対話式ログインを実行できない)
というわけで、aws configreを設定する必要があります。
aws configreを設定するには、IAMユーザーの作成が必要です。
作成しましょう!😎
IAMユーザーってなに?
AWSのユーザーには、「ルート」と「IAM」の2種類があります。
👑ルート→なんでもできる!全ての権利を私は有しているのだ!ワハハなユーザー
🙇IAM→特定の権限を与えられたユーザー。(ID・パスワードが付与される)
Identity and Access Management = アイデンティティとアクセス管理
全ての人に、全てのアクセス・操作の権限を与えるのは危険です。
また、一つのアカウントをみんなで共有して使用するのも良くありません。
セキュリティ的にも危険ですし、仕事をする上でも不便です。
そこで「IAMユーザー」を作成することで、それぞれにIDとパスワードを付与し
ユーザーごとに権限を制限することができます。
IAMユーザーを作成する
こちらの記事を参考に作成しました。
スクショ満載で、とてもわかりやすかったです!!
参考記事内でも書かれていますが、
- サインインのURL
- ユーザー名
- アクセスキーID
- シークレットアクセスキー
- パスワード
は必ずメモしておきましょう!
作成できたらIAMユーザーでログインし直しましょう。
aws configureを設定する
aws configureの現状を確認する
念のため、下記のコマンドを流して
認証情報が設定されていないことを確認しましょう
aws configure list
// 実行結果。認証情報が設定されていないので、このような結果に。
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key <not set> None None
secret_key <not set> None None
region <not set> None None
参考:https://aws.amazon.com/jp/premiumsupport/knowledge-center/s3-locate-credentials-error/
aws configureの設定方法
こちらの記事を参考に、認証情報を設定します。
先ほどメモした、アカウント情報をひとつづつ入力します。
Default output formatは例の通り、jsonで大丈夫だと思います。
これでよし!!長い道のりでした😭
動画に戻って、ネットワーク周りの設定を行いましょう。
それでは!
コメント