AWS의 Application load balencer를 생성합니다.
AWS ECR에 배포할 이미지를 미리 push 합니다.
ecs-cli 설치합니다.
docker-compose.yml 파일 준비
#docker-compose.yml
version: "3"
services:
web:
image: ******.amazonaws.com/nginx:latest #AWS ECR에 있는 이미지
ports:
- "80:80"
logging:
driver: awslogs
options:
awslogs-group: nginx-cluster
awslogs-region: ap-northeast-2
awslogs-stream-prefix: web
ecs-parms.yml 준비
#ecs-parms.yml
version: 1
task_definition:
services:
web:
cpu_shares: 100
mem_limit: 524288000
#IAM에서 AdminstratorAccess 권한을 가지는 계정을 생성하고,
#생성한 계정의 access key와 secret key를 입력합니다.
ecs-cli configure profile \
--access-key access-key \
--secret-key secret-key \
--profile-name ecs-profile
ecs-cli configure \
--cluster nginx-cluster \
--default-launch-type EC2 \
--config-name nginx-cluster-config \
--region ap-northeast-2
ecs-cli up \
--capability-iam \
--vpc vpc-******** \
--subnets subnet-******,subnet-******* \
--security-group sg-******** \
--size 2 \
--instance-type t2.medium \
--cluster-config nginx-cluster-config \
--ecs-profile ecs-profile
ecs-cli compose up \
--create-log-groups \
--cluster-config nginx-cluster-config \
--ecs-profile ecs-profile
ecs-cli compose service up \
--cluster-config nginx-cluster-config \
--ecs-profile ecs-profile
# 지정된 갯수만큼 늘림. ecs-cli up 에서 설정한 사이즈까지 가능함
ecs-cli compose service scale 2 \
--cluster-config nginx-cluster-config \
--ecs-profile ecs-profile
ecs-cli ps \
--cluster-config nginx-cluster-config \
--ecs-profile ecs-profile
ecs-cli compose service rm \
--cluster-config hello-cluster-config \
--ecs-profile ecs-profile
ecs-cli compose down \
--cluster-config nginx-cluster-config \
--ecs-profile ecs-profile
ecs-cli down \
--force \
--cluster-config nginx-cluster-config \
--ecs-profile ecs-profile