리브어트

AWS Codepipeline을 이용해서 서버 배포 자동화(Codecommit, Codebuild, Codedeploy, ECR, ECS) - 2 본문

카테고리 없음

AWS Codepipeline을 이용해서 서버 배포 자동화(Codecommit, Codebuild, Codedeploy, ECR, ECS) - 2

Yunhoo_kim 2019. 4. 24. 17:53
728x90

2019/04/24 - [Tech/Others] - AWS Codepipeline을 이용해서 서버 배포 자동화(Codecommit, Codebuild, Codedeploy, ECR, ECS) - 1

 

AWS Codepipeline을 이용해서 서버 배포 자동화(Codecommit, Codebuild, Codedeploy, ECR, ECS) - 1

Codepipeline은 왜 사용하는가? devops는 개발자가 배포 및 운영까지 하는 용어를 일컫습니다. CI/CD(Continuous Integration, Continuous Delivery)을 구축을 하는 목표에 있으며 지속적으로 개발과 배포가 될 수..

yunhookim.tistory.com

 

1. ECS 생성

인스턴스 유형과 개수는 사용량에 맞게 설정합니다.

vpc는 기본 vpc를 사용하고 모든 서브넷을 추가해줍니다.

운닥 API 서버는 VPC 내부에 보안그룹에 할당된 리소스만 접근할 수 있도록 구성되어 있기때문에 보안그룹을 설정했습니다.

 

2. 작업 생성

 

컨테이너를 추가합니다

메모리 제한과 도커와 연결한 포트를 매핑해줍니다.
cpu사용량과 컨테이터 실행시 초기 명령어를 쉼표로 구분하여 입력합니다.

작업 정의를 생성할 때 buildspec.yml에 선언한 name인 IMAGE_REPO_NAME과 이름을 동일하게 설정해야합니다.

3. ELB(Elastic Load Balancer) 생성

HTTP HTTPS 를 선택합니다.

이름과 리스너를 추가합니다.

이때 리스너는 https를 꼭 추가해주어야합니다.

HTTPS에 사용할 ACM 인증서를 선택하고, 보안 그룹을 생성 혹은 기존 보안그룹과 연결합니다.

ACM 인증서가 발급되어 있지 않다면 elb를 생성할 수 없기때문에 발급을 꼭 받고 진행하셔야합니다.

대상 그룹이 ELB와 연결될 포트 번호와 대상 인스턴스의 상태 검사 코드를 추가합니다.

 

4. 서비스 생성

전에 생성한 작업 정의를 선택합니다.

작업 개수와 정상상태 백분율, 최대 백분율을 선택합니다.

작업의 개수는 최소 2개 이상과, 최소 정상 상태 백분율은 50으로 설정하기를 권장합니다.

최소 정상 상태 백분율은 배포 과정에서 실행 중인 작업의 개수에 하한선을 제공하여 추가 클러스터 용량을 사용하지 않고도 배포할 수 있게 해줍니다.

최소 정상 상태 백분율은 배포 과정에서 실행 중인 작업의 개수에 하한선을 제공하여 추가 클러스터 용량을 사용하지 않고도 배포할 수 있게 해줍니다.

이전에 생성한 ELB를 선택해줍니다.

 

ELB 생성 시에 추가한 타겟 그룹을 선택해줍니다.

오토 스케일링은 설정하지 않고 넘어갑니다.

지금은 설정하지 않지만 실제 production으로 사용하기 위해서는 설정이 필요할 수 있습니다.

이제 서비스를 생성할 수 있습니다.

 

절차가 많다보니 중간 생략된 결과가 있습니다.

생략된 절차들은 기본 세팅을 유지하시면 됩니다.

 

다음 포스팅에서는 실제로 만든 ECS를 Codepipeline과 연결해 마무리 하도록 하겠습니다.