본문 바로가기
자동배포 (Auto deploy)

자동 배포 전체 개요

by 실짱 2024. 3. 14.

드디어 자동 배포 시스템 구축을 완료했다 !!!! (2023년 12월 20일 완료)

 

역시나 삽질의 연속이었다. 

이제부터 하나씩 페이지를 만들면서 기록을 남겨보려고 한다.

그 전에, 전체적인 개요도를 먼저 공유한다.

어느정도 지식이 있는 개발자면 아래 그림만 봐도 알것 같긴 하다. 

참고로 여기에 사용된 툴은 

1. 젠킨스 

2. Ansible

3. Docker 

등이다.

 

 

 

크게 두가지 단계로 나뉜다.

1. ECR 에 docker image 를 push

2. ECR 에 push 된 docker image 를 EC2 로 pull 해서 run

 

위 구성도의 번호표를 보면서 순서대로 따라가 보자.

 

릴리즈 할 준비가 되었다면

<필요한 Docker image 빌드 및 ECR 푸쉬>

1. 각 backend, frontend 의 release branch 에 최종 수정사항을 반영한다.

2. 그럼 이제 젠킨스 형님이 trigger 가 되서 빌드를 시작한다.

3. 젠킨스 형님이 각각의 docker image 를 만든 후에 젠킨스 build number 를 tag 로 붙여서 ECR 에 push 한다.

  • build number 를 붙이는 이유는 나중에 이 docker 이미지의 빌드 경로를 추적하기 위함이다. (젠킨스 빌드 번호만 있으면 젠킨스에서 추적이 가능하다)

4. 젠킨스 형님이 ECR 에 push 한 docker image 들은 각각의 ECR repository 에 build number tag 로 push 해 준다.


이제 최종적으로 릴리즈 의사 결정이 되었으면

<ECR에 push 된 Docker image 를 EC2 로 pull 및 실행>

5. deployment_project 에 이미지 빌드한 각 빌드 넘버를 Jenkinsfile 에 반영하고 Gerrit 에 push

6. 젠킨스 형님 빌드 시작

7. Ansible 연동

8. Ansible 은 playbook 기능을 통해 아래 작업들을 진행

  8-1 > 기존에 EC2에서 돌고있던 container 와 docker image 를 모두 제거

  8-2> ECR 에 push 된 이미지를 EC2 로 pull

  8-3 > docker image 를 실행시키는데 필요한 docker-compose.yml 파일을 만들어서 EC2 에 저장

  8-4> 필요한 환경 파일 (.env.prod) 도 EC2에 복사

  8-5> 이제 최종적으로 docker-compose up -d 명령을 통해 컨테이너 실행

9. 최종적으로 EC2 에 8번에서 실행시킨 컨테이너들이 실행된다.

 

단계단계마다 필요한 사항들을 정리해서 올려보려고 한다.

'자동배포 (Auto deploy)' 카테고리의 다른 글

1. ECR에 Docker image push (1/2)  (0) 2024.03.14