본문 바로가기

회고

첫 빌드 겸 배포가 CI/CD 구축이었던 건에 관하여

어쩌다보니 이번에 회사에서 처음으로 프로젝트를 빌드하고 배포하는 기회를 얻게 되었다.

기존 배포 환경은 aws EC2 인스턴스 위에 docker-compose를 이용하고 있었는데 여기서 github action을 이용한 CI/CD 파이프라인을 구축하였다.

 

 

Github Actions으로 AWS EC2에 CI/CD 구축하기

AWS EC2에 CI/CD 구축하기

velog.io

github action을 학습하기 위해 우선 자동 배포부터 익힌 뒤 해당 링크를 참고하여 CI/CD를 구축하였다.
다만 기존 환경에서 여러 개의 컨테이너를 동시에 사용하고 있었기 때문에 docker대신 docker-compose로 변경할 필요가 있었다.

빌드 과정은 액션의 버전만 올린 상태로 동일하기 때문에 배포 부분만 첨부하였다.
docker-compose를 이용한다 했지만 액션 자체에서 크게 바뀐 점은 없다.
도커 컴포즈로 실행중인 컨테이너들을 모두 내린 후 변경된 도커 이미지만을 업데이트한 뒤 다시 실행한다.
다만 액션 환경변수에서 정의한 이미지명을 이용하기 위해 프로젝트 폴더 내의 docker-compose.yml에서 작은 수정이 있었다.

 

docker-compose를 이용하기 위해 조금 헤맸던 부분은 docker와 달리 docker-compose는 docker-compose.yml(yaml) 파일이 위치한 경로에서 실행시켜야 한다는 점이었다.
기존 docker-compose 파일은 프로젝트 폴더 안에 있었는데 거기까지 이동하는 과정이 번거롭다고 느껴졌다.
그래서 이동하는 명령을 액션에 추가하는 대신 프로젝트 소스 내의 docker-compose.yml을 복사한 뒤 EC2 초기 경로에서 직접 파일을 생성하고 내용을 복제했다.
자주 변경되지 않을 파일이기에 이렇게 진행해도 상관없을 것이라 생각했다.

 

제목 어그로를 끈 것치고는 내가 맡은 부분이 많지는 않다.
사수 분께서 EC2 인스턴스 생성부터 초기 설정, 호스팅, Route53설정까지 모두 다 해주시고 docker-compose, dockfile 파일들도 모두 작성하셨기 때문에...
그러나 이번에 경험해 본 결과 CI/CD 자체는 그렇게 어렵지 않다는 것을 알게 되었고, 앞으로 다른 프로젝트를 진행할 때에도 기본적인 배포 설정을 CI/CD로 전환하는 데에 훨씬 수월하지 않을까 기대한다.

 

'회고' 카테고리의 다른 글

엘리스 AI트랙 4기를 회고하며  (0) 2022.07.05