AWS ecs-cli로 docker 이미지 배포하기

유종훈·2022년 8월 25일
0

준비사항

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

배포과정

  1. ecs-cli 로 배포할 계정(profile) 생성
#IAM에서 AdminstratorAccess 권한을 가지는 계정을 생성하고, 
#생성한 계정의 access key와 secret key를 입력합니다.
ecs-cli configure profile \
    --access-key access-key \
    --secret-key secret-key \
    --profile-name ecs-profile
  1. 배포할 환경설정
ecs-cli configure \
    --cluster nginx-cluster \
    --default-launch-type EC2 \
    --config-name nginx-cluster-config \
    --region ap-northeast-2
  1. 클러스터 생성
    vpc와 보안그룹은 ALB와 동일하게 설정함
    보안그룹의 보안 규칙에서 TCP 포트범위를 확인해야 함( TCP 32768 - 65535)
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
  1. 배포
ecs-cli compose up \
    --create-log-groups \
    --cluster-config nginx-cluster-config \
    --ecs-profile ecs-profile
  1. 서비스 배포
ecs-cli compose service up \
    --cluster-config nginx-cluster-config \
    --ecs-profile ecs-profile
  1. 서비스 배포
# 지정된 갯수만큼 늘림. ecs-cli up 에서 설정한 사이즈까지 가능함
ecs-cli compose service scale 2 \
    --cluster-config nginx-cluster-config \
    --ecs-profile ecs-profile
  1. 확인
ecs-cli ps \
    --cluster-config nginx-cluster-config \
    --ecs-profile ecs-profile
  1. 중지
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
profile
뼈속까지 개발자

0개의 댓글