初めに
AWS SAA学習時にAWS ECSについて触れたことがあり、おさらいとはなるが、改めてECSのハンズオンをやってみた。
ハンズオン教材
ECSの教材を探していたが、Cloud9を使い初心者でも挑戦しやすい内容のため、今回こちらでECR/ECSのコンテナ環境に触れてみたい。(Fargateはここでは扱わないこととする。)
ハンズオン
Cloud Formation上でネットワーク構築を実施
テンプレートは事前準備にあるハンズオンコンテンツをダウンロード
ALB セキュリティグループ作成
ALB作成
作成されていることを確認する。
不要なリスナーとターゲットグループは削除。
ECRリポジトリ作成
ECRリポジトリ作成後のプッシュコマンドの手順をメモしておく。
Cloud9作成
先ほどメモしたコマンドでgit環境を作成する。
git config --global user.name ”peach”
git config --global user.email yourname@abc.com
git config --global credential.helper '!aws codecommit credential-helper $@'
git config --global credential.UseHttpPath true
Docker fileの作成(スクショでは間違って語尾にダブルクオテーションが入っているが、不要)
最初にindex.phpファイルのみ作成し、srcディレクトリを作成が忘れたためファイルがないとエラーが出たが、srcディレクトリ配下にファイルを置くことで作成することができた。
cloud_user:~/environment $ docker build -t xxxx .
Sending build context to Docker daemon 9.827MB
Step 1/2 : FROM php:7.4.0-apache
---> xxxx
Step 2/2 : COPY src/ /var/www/html/
COPY failed: file not found in build context or excluded by .dockerignore: stat src/: file does not exist
cloud_user:~/environment $ docker build -t xxxx .
Sending build context to Docker daemon 9.828MB
Step 1/2 : FROM php:7.4.0-apache
---> xxxx
Step 2/2 : COPY src/ /var/www/html/
---> xxxx
Successfully built 4075ce9e9763
Successfully tagged xxxx:latest
ECR作成時のプッシュコマンドを実行する。
cloud_user:~/environment $ aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin xxxx.dkr.ecr.us-east-1.amazonaws.com
WARNING! Your password will be stored unencrypted in /home/ec2-user/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
※タグづけとプッシュコマンドも実施する。
ECRコンソールでイメージが作成されていることを確認。