이론, CLI로 사용해보자, 프로세스 확인
<0> 구성
ECS ALB -------------- EC2 로 된 ECS 웹 서버
ECS ALB -------------- EC2 로 된 ECS API서버
ECS ALB -------------- EC2 로 된 ECS 저장 서버
<1> 명령 서버 로그인
<2> Dockerfile 준비
// 도커 파일은 아래 링크를 통해 미리 준비해 놓음
https://brunch.co.kr/@topasvga/1363
1
cd Code
ls -l
// 웹사이트 도커 파일이 있음
2
cd WebSite
more Dockerfile
// 내용만 확인
FROM centos:7
:
ENV ServerName=Storyizer-site
ARG ELBDNS
ENV ELBDNS=${ELBDNS}
<3> 웹 서버 컨테이너 만들기
// 도커 프로그램들이 설치되어 있어야 정상 동작한다.
https://brunch.co.kr/@topasvga/1363
1
pwd
/home/ec2-user/Code/WebSite
docker build -t storyizer/website --build-arg ELBDNS=[elbDNS] .
docker build -t storyizer/website --build-arg ELBDNS=StoryizerAELB-114745365.us-west-2.elb.amazonaws.com .
//명령어에 점( . ) 은 반드시 필요하다.
2
docker run -p 80:80 storyizer/website &
3
docker ps
4
docker stop [CONTAINER-ID]
<4> API 서버 컨테이너 만들기
1
cd ../API
more Dockerfile
// 도커파일
2
docker build -t storyizer/api .
<5> SAVE 서버 컨테이너 만들기
1
cd ../Save
2
docker build -t storyizer/save --build-arg AWSREGION=[LAB-REGION] .
docker build -t storyizer/save --build-arg AWSREGION=us-west-2 .
<6> 도커 이미지를 ECR 리포지토리에 올리기
1
docker images
// 결과 이미지
2
aws ecr create-repository --repository-name storyizer/website
aws ecr create-repository --repository-name storyizer/api
aws ecr create-repository --repository-name storyizer/save
3
ecr 레파이토리 확인
aws ecr describe-repositories --query 'repositories[].[repositoryName, repositoryUri]' --output table
// 결과 이미지
4
로그인
aws ecr get-login --no-include-email | /bin/bash
5
docker images
6
태그 설정
docker tag storyizer/website:latest [Website-Repository-URI]:latest
docker tag storyizer/save:latest [Save-Repository-URI]:latest
docker tag storyizer/api:latest [API-Repository-URI]:latest
docker tag storyizer/website:latest 158054185478.dkr.ecr.us-west-2.amazonaws.com/storyizer/website:latest
docker tag storyizer/save:latest 158054185478.dkr.ecr.us-west-2.amazonaws.com/storyizer/save:latest
docker tag storyizer/api:latest 158054185478.dkr.ecr.us-west-2.amazonaws.com/storyizer/api:latest
7
docker images
// 결과 이미지
8
docker push [Website-Repository-URI]:latest
docker push [Save-Repository-URI]:latest
docker push [API-Repository-URI]:latest
docker push 158054185478.dkr.ecr.us-west-2.amazonaws.com/storyizer/website:latest
docker push 158054185478.dkr.ecr.us-west-2.amazonaws.com/storyizer/save:latest
docker push 158054185478.dkr.ecr.us-west-2.amazonaws.com/storyizer/api:latest
<7> 배포
1
cat ~/ECS-Storyizer-Deploy.yaml
2
import
cat ~/ECS-Storyizer-Deploy.yaml
3
aws cloudformation create-stack --stack-name Storyizer-ECS-Deploy --template-body file://~/ECS-Storyizer-Deploy.yaml \
--parameters \
ParameterKey=BaseStack,\
ParameterValue="[BaseStackName]" \
ParameterKey=ECRsiteURIPram,\
ParameterValue="[Website-Repository-URI]" \
ParameterKey=ECRsaveURIPram,\
ParameterValue="[Save-Repository-URI]" \
ParameterKey=ECRapiURIPram,\
ParameterValue="[API-Repository-URI]"
aws cloudformation create-stack --stack-name Storyizer-ECS-Deploy --template-body file://~/ECS-Storyizer-Deploy.yaml \
--parameters \
ParameterKey=BaseStack,\
ParameterValue="qls-16486124-3736eb2ca21cd848" \
ParameterKey=ECRsiteURIPram,\
ParameterValue="158054185478.dkr.ecr.us-west-2.amazonaws.com/storyizer/website" \
ParameterKey=ECRsaveURIPram,\
ParameterValue="158054185478.dkr.ecr.us-west-2.amazonaws.com/storyizer/save" \
ParameterKey=ECRapiURIPram,\
ParameterValue="158054185478.dkr.ecr.us-west-2.amazonaws.com/storyizer/api"
// 결과
{
"StackId": "arn:aws:cloudformation:us-west-2:158054185478:stack/Storyizer-ECS-Deploy/d3948bf0-d527-11ea-b526-021900937a08"
}
[ec2-user@ip-10-96-10-158 ~]$
4
aws cloudformation wait stack-create-complete --stack-name Storyizer-ECS-Deploy
5
확인
ELB DNS 로 접속
ECS 확인
<8> ECS Autoscaling 사이트
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html
https://brunch.co.kr/@topasvga/1291
기타
https://brunch.co.kr/@topasvga/1817
감사합니다.