티스토리 뷰
Development/Cloud
[Cloud]AWS EC2, GitHub Webhook, Jenkins, Docker를 이용한 CI/CI 파이프라인
Vagabund.Gni 2023. 4. 26. 13:39728x90
반응형
현재 진행 중인 프로젝트를 개발하면서, 젠킨스와 도커를 이용한 CI/CD를 구성해 보기로 했다.
항상 말하듯 자동배포는 설정이 90% 이상이라서 구성하는데 시간이 조금 걸리긴 했지만, 일단은 성공.
이 글에서는 개괄적인 파이프라인에 대해 알아보고 시간이 날 때마다 틈틈이 세부사항을 올려봐야겠다.
먼저 해당 파이프라인을 그림으로 그리면 아래와 같다.
오른쪽에 그려진 프론트엔드 부분을 제외하고, EC2에 서버가 자동배포 되기까지의 파이프라인을 요약한다.
그림에 그려진 두 개의 EC2 중 왼쪽을 젠킨스EC2, 오른쪽을 배포EC2라고 부른다.
- 코드 작성 및 변경사항 (GitHub에) 푸시. 이때 젠킨스EC2에서 실행 중인 젠킨스가 깃허브 웹훅을 이용해 변경사항을 감지하고 변경된 코드를 가져오는 것으로 파이프라인을 시작한다.
- 가져온 코드는 빌드(및 테스트)를 거친 뒤 도커 이미지로 빌드된다.
- 빌드된 이미지는 도커 허브에 업데이트되고, 배포EC2에 설치된 도커가 이를 내려받는다.
- 배포EC2의 도커가 새로 받은 이미지와 함께, 기존에 가지고 있던 Redis 이미지를 컨테이너로 실행한다.
이때 웹훅과 도커 이미지 빌드에 관한 모든 것은 젠킨스에서 설정할 수 있으며,
각종 설정과 시크릿을 비롯해 빌드된 이미지와 레디스 이미지를 실행시키는 docker-compose 파일은
배포 EC2에 위치시켜야 한다.
이렇게 CI/CD를 구성하면 변경사항을 깃허브에 푸시하고 5~6분 이내에 새로운 서버가 올라가거나,
에러가 나는 경우 콘솔을 확인할 수 있게 된다.
설정까지는 다소 오래 걸리지만 한 번 설정해 두면 너무나 편한 젠킨스.
다음 프로젝트에서도 사용해야겠다!
반응형
'Development > Cloud' 카테고리의 다른 글
[Jenkins+Docker]두 대의 EC2로 CI/CD 구현하기(3/3) (0) | 2023.07.04 |
---|---|
[Jenkins+Docker]두 대의 EC2로 CI/CD 구현하기(2/3) (0) | 2023.07.01 |
[Jenkins+Docker]두 대의 EC2로 CI/CD 구현하기(1/3) (0) | 2023.06.25 |
[Grafana]바로 복붙해서 쓰면 되는 cAdvisor+Prometheus+Grafana (0) | 2023.04.14 |
[Cloud]CI, CD, 배포 자동화(Deployment Automation) (0) | 2022.10.06 |
[Cloud]도커(Docker) (4) | 2022.10.05 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Algorithm
- 스트림
- 지지
- 칼이사
- a6000
- 중남미
- 자바
- 유럽
- 세모
- java
- 스프링
- 알고리즘
- 남미
- 세계여행
- 여행
- BOJ
- 맛집
- 면접 준비
- Backjoon
- 동적계획법
- RX100M5
- 기술면접
- 리스트
- spring
- 유럽여행
- 파이썬
- 야경
- 백준
- 세계일주
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함