[CI/CD] Github Action과 Jenkins를 고민한다면
기존의 CI/CD를 gitlab으로 했었는데, 다른 툴로 마이그레이션하려고 Github Action과 Jenkins를 찾아봤다.
둘의 차이점을 요약하면 이렇다.
- Github Action : 비싼데 쉬움 (서버 구현 필요 NO)
- Jenkins : 싼데 어려움 (서버 구현 필요 YES on Server or AWS)
그러니 둘을 고민한다면 아래만 비교하면 좋을 것 같다.
- 팀에 서버를 구현할 수 있는 사람(네트워크 엔지니어)이 있는가
- 빌드 시간이 오래 걸리고 가격이 걸림돌인가
만약 1번이 no라면, jenkins보다는 github action이 낫겠다. 서버를 어느 정도 만져본 사람이 수월하게 할 수 있을 듯 하다. 우리에겐 ChatGPT가 있긴 하지만..
만약 2번이 yes라면, jenkins를 선택해야겠다. CI 빌드를 오랜 시간 수행한다면, 그러니까 Github Action의 무료 제공 시간보다 훨씬 오버해서 사용하게 된다면 가격 차이가 꽤 날 것이다.
아래는 Github Action 가격이다.
linux 64코어로 가정했을 때, 분당 $0.256니까 1시간에 $15.36이고, 글 작성 원화 기준(23.11.12.)으로 20,277원이다.
다만 Github Action은 계정에 따라 무료 사용시간을 할당해주는데, Github Free를 기준으로 500MB Storage, 2,000분의 실행 시간을 할당해준다. (pro는 1GB/3,000분)
그리고 AWS 가격은 아래와 같다.
대충 찾은 64 core 인스턴스이다. 세부 하드웨어 성능은 다를 수 있지만, 대충 1시간에 $2~3정도이다. $3로 계산해도 3,960원이니 5배정도 차이가 난다.
여기부터는 팀에서 CI/CD에 시간이 얼마나 요구되냐를 비교해봐야되는데, 단순 계산으로 commit 수와 commit 당 소요시간을 생각해보면 된다.
만약 1달에 commit을 100번 하고 commit 당 20분 정도가 소요된다고 가정하면 [33 hour * 시간 당 가격] 으로 계산되니, github action은 무료 (2,000분), AWS는 131,868원이다.
요약하면 jenkins를 올릴 서버가 기존에 존재하거나 AWS를 사용할 것이고 네트워크 엔지니어링이 가능하다면 Jenkins를, 빌드 시간이 오래 걸리지 않고 가격이 큰 문제가 아니라면 Github Action이 좋겠다.