Jenkins는 가장 널리 사용되는 오픈소스 CI/CD 도구 중 하나다. Jenkins를 사용하면, 테스트, 빌드, 배포 프로세스를 자동화하고, 주기적으로 또는 코드 변경이 감지될 때마다 이러한 작업을 실행할 수 있다.
Jenkins를 사용하기 위해서는 Jenkins 서버가 필요하다.
내 컴퓨터에 젠킨스를 깔고 깃허브에 연동시키는 방법도 물론 존재한다. 하지만 그건 확장성이 떨어질 뿐더러, 협업 환경에서는 써먹지 못한다. 심지어 내가 하나의 PC에서 작업한다는 보장도 없다. 모든 사람이 자기 PC에서 젠킨스를 돌리는 환경을 생각하면 재앙이다.
이를 위해 새로운 EC2 인스턴스를 생성하거나, 기존 인스턴스에 Jenkins를 설치해도 된다.
<aside> 💡 물론 클라우드 환경을 새로 구축하는 비용 등으로부터 완전히 자유로울 수는 없다. 젠킨스는 메모리를 상당히 잡아먹기 떄문에 무료플랜 정도로는 감당이 안되기 때문이다. 비슷한 예로, 스프링 부트 애플리케이션은 256MB의 메모리만 있어도 빌드가 가능하지만, 거기에 Swagger를 추가할 경우 빌드 과정에서 메모리 부족으로 실패를 경험하게 된다. 이 때 나는 512MB까지 요금제를 올려 빌드해야 했다.
</aside>
윈도우 10 이상의 운영체제는 기본적으로 OpenSSH를 지원한다. PowerShell로도 동일한 작업이 가능하다.
ssh -i "c:\\{키페어 경로}" {인스턴스 유저 이름}@{인스턴스 IP}

접속된 인스턴스 환경에서는 아래 명령어들을 순서대로 실행시켜 Jenkins를 인스턴스에 설치할 수 있다.
인스턴스 패키지 최신화
sudo yum update -y
시스템에 설치된 모든 패키지를 최신 버전으로 업데이트한다. yum 키워드는 Amazon Linux 및 CentOS 등의 리눅스 배포판에서 패키지 관리를 위해 사용하는 도구이며, update 옵션은 모든 패키지를 최신 버전으로 업데이트 하는 역할을 한다.
JDK 설치
sudo yum install java-11-amazon-corretto-devel -y
이 명령어는 Amazon Corretto 11을 설치한다. Amazon Corretto는 아마존에서 제공하는 무료 Java Development Kit(JDK)이다. 이미 설치했다면 생략한다.
Jenkins 패키지 저장소 정보 다운로드
sudo wget -O /etc/yum.repos.d/jenkins.repo <https://pkg.jenkins.io/redhat/jenkins.repo>
이 명령어는 wget 도구를 사용해 Jenkins 패키지 저장소 정보를 다운로드하고, 이를 /etc/yum.repos.d/jenkins.repo 파일로 저장한다.

이게 나오면 정상적으로 설치된 것이다.
<aside>
💡 참고로 /etc/ 디렉토리는 시스템 설정 파일들이 저장되는 위치이며, 일반적으로는 접근이 안된다. SSH로 인스턴스에 접속한 후 cat /etc/yum.repos.d/jenkins.repo 명령어를 실행하면 파일의 내용을 확인할 수 있다.
</aside>
Jenkins GPG 키 등록
sudo rpm --import <https://pkg.jenkins.io/redhat/jenkins.io-2023.key>
Jenkins 패키지를 안전하게 설치하기 위해 공식 Jenkins GPG 키를 시스템에 등록한다.

<aside>
💡 키 주소를 https://pkg.jenkins.io/redhat/jenkins.io.key 으로 할 경우 Jenkins가 올바르게 설치되지 않는다. 이 링크는 2023년 3월 30일부로 만료된 Key를 가져오기 때문이다.
</aside>