[CI/CD] Jenkins를 활용한 CI/CD 구축하기-(1) AWS EC2

젤리젤링텀·2025년 8월 27일

CI/CD

목록 보기
3/7
post-thumbnail

먼저, CI/CD 파이프라인을 GitHub → Jenkins → EC2로 구축해보려고 한다.
내 프로젝트는 현재, Docker에 올려둔 상태이기 때문에, 그것도 고려해서 chatGPT에게 질문했더니, GitHub → Jenkins → Docker Registry → EC2에서 Docker로 배포 파이프라인을 추천해주었다.

GitHub → Jenkins → EC2 방식은 jar 파일을 EC2에 직접 전달하는 방식으로, 간단하고 빠르지만 실행환경에 따라 문제가 발생할 수 있고, 확장성이 떨어진다는 단점이 있다.

실제 업계에서도 jar 파일을 직접 전달하지 않고, Docker를 기반으로 배포하거나 CI/CD SaaS를 사용한다고 한다.

구현할 파이프라인을 PPT로 이미지화 해보았다.

먼저, CI/CD를 위한 AWS EC2 인스턴스를 생성해주자.

AWS EC2 인스턴스 생성

Ubuntu 22.04 버전 사용.
큰 규모의 프로젝트는 아니므로 small이 아닌, micro를 사용했다.
Jenkins는 GUI를 지원한다. 경로는 별도의 설정을 하지 않았다면 http://jenkins 가 설치된 인스턴스의 ip:포트 의 경로로 들어갈 수 있는데 이를 위해서 트래픽을 허용한다.
스토리지는 기본값인 8GB를 사용했다.

보안그룹

해당 인스턴스에서 어떤 포트를 뚫어줄지 설정해줘야 한다. 그렇지 않으면, 방화벽에서 해당 포트로의 요청을 모두 차단해버릴 것이다.

  • HTTP 포트 80
  • HTTPS 포트 443
  • SSH 포트 22
  • Jenkins 포트 8030 (필자의 경우)

인바운드 규칙에 규칙 추가 버튼을 눌러서 유형을 추가해주자.
위 이미지에서는 모두 허용으로 되어있지만, SSH 접속은 본인 IP로만 접속이 가능하도록 소스를 바꿔주자.
아웃바운드는 접근을 허용할 포트를 정의하는 곳이다.
모든 IP에 대해 해당 규칙을 적용받도록 할 것이기 때문에 0.0.0.0/0으로 설정하고, 보안 그룹을 생성해준다.

보안그룹을 만들었다면, 인스턴스에 적용시켜 주어야 한다.

참고자료

https://wlsdn3004.tistory.com/97
https://sehun5515.tistory.com/159
https://sunhistory.tistory.com/90

profile
열심히 살자

0개의 댓글