먼저, 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 인스턴스를 생성해주자.
Ubuntu 22.04 버전 사용.
큰 규모의 프로젝트는 아니므로 small이 아닌, micro를 사용했다.
Jenkins는 GUI를 지원한다. 경로는 별도의 설정을 하지 않았다면 http://jenkins 가 설치된 인스턴스의 ip:포트 의 경로로 들어갈 수 있는데 이를 위해서 트래픽을 허용한다.
스토리지는 기본값인 8GB를 사용했다.
해당 인스턴스에서 어떤 포트를 뚫어줄지 설정해줘야 한다. 그렇지 않으면, 방화벽에서 해당 포트로의 요청을 모두 차단해버릴 것이다.
인바운드 규칙에 규칙 추가 버튼을 눌러서 유형을 추가해주자.
위 이미지에서는 모두 허용으로 되어있지만, SSH 접속은 본인 IP로만 접속이 가능하도록 소스를 바꿔주자.
아웃바운드는 접근을 허용할 포트를 정의하는 곳이다.
모든 IP에 대해 해당 규칙을 적용받도록 할 것이기 때문에 0.0.0.0/0으로 설정하고, 보안 그룹을 생성해준다.

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



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