GitLab + Teamcity + Docker + AWS CI/CD 구축하기 (1)
오랜만에 시간적 여유가 생겨 개인적으로 해보고 싶었던 CI/CD 구축을 진행해보려 한다.
개발 프로젝트를 진행할 때 마다 로컬 환경에서 테스트해본 내용과 실제 서버에서 테스트할때 상황이 달라 코드 수정이 빈번하게 있었다.(물론 내잘못이지)
그래서 CI/CD에 관심이 생겼고 코드 커밋시 자동으로 테스트를 수행해주고 개발서버에 빌드를 올려주어 바로 개발서버 환경에서 볼 수 있도록 구성해보고 싶었다.
생각하는 CI/CD 절차는 아래와 같다. 간단하다.
- 소스코드 개발 및 Git Repository에 commit
- Test 수행 및 Docker Image 생성
- 생성된 Docker Image를 Docker Repository에 Push
- WAS 서버에서 업데이트된 Docker Image Pull 및 재기동
GitLab은 이전부터 AWS에 구축해 사용중이라 그대로 사용해볼 예정이다.
CI/CD 툴로. 뭘 쓸까 고민을 많이 해봤다.
- Jenkins : 제일 많이 쓰는 툴이다. 작년인가 테스트용으로 구축해봤는데 UI가 너무 안이뻐서 별로 쓰고싶지 않았다.
- GitLab-CI : 한번 써봤다. 간단하게 써보기엔 괜찮았건것 같다. 사실 GitLab을 쓰고 있으니 내부적으로 제공해주는 GitLab-CI 기능을 써도 되는데 이번엔 써보고 싶은 툴이 있었으니까 패스.
- Teamcity : 이쁘다.. 개인적으로 Jetbrains IDE를 즐겨 쓰고 있고 실제로 All Produce Pack을 구독해 사용할 정도로 Jetbrains 툴을 좋아한다. 그래서 이거 쓸거다.
위 내용을 기반으로 인프라를 AWS에 구축할 예정이며 개략적인 구성도는 아래와 같이 생각하고 있다. (하다 잘안되면 바꿀거다.)
전체적으로 아래 순서대로 차근차근 진행할거다.
- AWS 인스턴스 생성
- GitLab 설치
- TeamCity Server 설치
- TeamCity Agent 설치
AWS 인스턴스 생성은 다음 포스트로
2022.08.01 - [devops] - GitLab + Teamcity + Docker + AWS CI/CD 구축하기 (1)
2022.08.01 - [devops] - GitLab + Teamcity + Docker + AWS CI/CD 구축하기 (2) - AWS EC2 구축
2022.08.01 - [devops] - GitLab + Teamcity + Docker + AWS CI/CD 구축하기 (3) - GitLab 설치
2022.08.02 - [devops] - GitLab + Teamcity + Docker + AWS CI/CD 구축하기 (4) - Teamcity 설치
2022.08.05 - [devops] - GitLab + Teamcity + Docker + AWS CI/CD 구축하기 (5) - GitLab Teamcity 연동
2022.08.05 - [devops] - GitLab + Teamcity + Docker + AWS CI/CD 구축하기 (6) - Teamcity 배포 구성