brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Aug 03. 2020

10탄-ECS ,Docker,CLI

이론, CLI로 사용해보자, 프로세스 확인

<0> 구성

<1>  명령 서버 로그인

<2>  Dockerfile  준비

<3>  웹 서버 컨테이너 만들기

<4>  API 서버  컨테이너 만들기

<5>  SAVE 서버 컨테이너 만들기

<6>  도커 이미지를  ECR  리포지토리에 올리기

<7>  배포

<8> ECS Autoscaling 사이트



<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

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



감사합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari