![[Ubuntu] Java 및 Jenkins 설치 + 스왑 메모리](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlkIO5%2FbtsMbYIELK9%2Fx03T7zFzVRJAPlXgv6lJ10%2Fimg.png)
✔️ CICD 테스트를 진행하기 앞서 테스트 환경과 관련 포스팅을 참고해주세요.
-- 테스트 환경 --
AWS EC2 : Ubuntu
WAS : Java 17, Springboot 3.x
SCM : Github
CICD : Jenkins
🧷 [Jenkins] Github 자격 증명 추가 + 웹훅 설정
🧷 [Jenkins] Item 추가 및 Pipeline 작성 + 테스트
🧷 [Jenkins] 스프링부트 프로젝트 CICD 테스트 +삽질 로그
CICD에 대해 알아보았으니, 이제 직접 CI 도구인 Jenkins를 테스트 해보겠습니다.
사용중인 EC2는 프리티어로 대여했고, 테스트를 하기위해 Jenkins 설치부터 진행하겠습니다.
설치에 앞서 Jenkins는 Java 기반의 애플리케이션이기 때문에 Java를 먼저 설치해주어야 합니다.
운영 환경에서 스프링부트를 배포하기 위해서는 Java를 설치해야 합니다.
Ubuntu 환경에서 Java 및 Jenkins 설치 관련해서는 아래 공식문서를 참조하면 좋을 것 같습니다. (LTS버전으로 설치했습니다.)
🧷 Ubuntu 환경 Java, Jenkins 설치 관련 문서
+ 추가
javac -version
Jenkins 서버에서 위 명령어 입력 후 Command 'javac' not found, but can be installed with 이런 문구가 발생한다면, JRE만 설치되고 JDK는 설치 안되있다는 말입니다. 이후에 스프링부트 프로젝트 빌드를 위해서 JDK가 필요하기에 아래 명령어를 통해서 JDK를 설치해줍니다.
sudo apt update
sudo apt install openjdk-17-jdk
아래는 Jenkins 설치 및 실행까지 마친 후에 메모리 용량...
조금 더 자세하게 확인을 해보니 역시나 Jenkins가 어마어마한 메모리 점유율을 가지고 있었습니다..
EC2 프리티어로 테스트 하기에는 무리가 있어 보입니다. 심지어 이후에 진행할 스프링부트 프로젝트 빌드 및 애플리케이션 실행까지 생각하면 턱없이 모자르기 때문에 대책으로 스왑 메모리를 적용해야 할 것 같습니다.
⚙️ EC2 인스턴스 스왑 메모리 적용
스왑 메모리를 간단하게 설명하면 실행중인 프로세스를 위한 물리적 RAM 용량이 부족할 때, 디스크 용량을 사용하는 가상 메모리의 일종입니다. 구체적으로는 페이징, 세그멘테이션과 같은 기법들이 사용되는데 궁금하시다면 해당 키워드들에 대해 추가로 찾아보시면 좋을 것 같습니다.
스왑 메모리 적용과 관련해서는 아래의 명령어들을 순차적으로 실행하면 됩니다.
sudo dd if=/dev/zero of=/swapfile bs=128M count=16 //메모리 할당(2GB)
sudo chmod 600 /swapfile //권한 설정
sudo mkswap /swapfile //공간 생성
sudo swapon /swapfile //공간에 스왑파일 추가
sudo vi /etc/fstab //부팅 시 자동 활성화
이후 free -h를 통해서 스왑 메모리가 제대로 적용되었는지 확인했을 때, 아래와 같이 나오면 됩니다.
✅ Jenkins 접속 및 기본 설정
Jenkins의 경우 GUI를 지원하기 때문에 브라우저에서 다양한 설정 및 작업을 할 수 있습니다.
Jenkins 설치가 끝나고 정상적으로 실행되고 있는지 확인했다면 브라우저에서 아래와 같은 URL을 통해서 접속할 수 있습니다.
EC2 공인IP:8080
만약 위 포트로 접속이 되지 않는다면 EC2의 인바운드 규칙을 추가해야 합니다.
초기 EC2는 설정에 따라 22, 80, 443 포트에 대한 인바운드 규칙만 활성화 되어있습니다.
Jenkins의 기본 실행 포트는 8080이기 때문에 TCP 인바운드 규칙을 추가해주셔야 외부에서 접속이 가능합니다.
성공적으로 접속이 되었다면 위와 같은 화면이 나오는데, 이는 비밀번호를 입력하라는 의미로 위에 나와있는 경로의 파일을 열면 기본 설정된 비밀번호를 확인할 수 있습니다. 확인 후 그대로 입력해줍니다.
cat /var/lib/jenkins/secrets/initialAdminPassword
그 다음 화면은 Jenkins 플러그인 설치에 대해 기본 플러그인을 사용할 것인지, 추가할 플러그인을 선택할 것인지 묻는 창입니다.
필요한 플러그인이 있다면 추후에도 설치할 수 있으니 여기서는 왼쪽을 선택해 기본적인 플러그인으로만 구성하겠습니다.
선택하고나면 아래와 같이 추천되는 플러그인들이 설치되는 것을 확인할 수 있습니다.
설치를 마치고나면 위와 같은 계정을 생성하는 화면이 나오는데, 이는 첫번째 관리자 계정을 생성하는 단계입니다. Skip 버튼을 통해 초기 설정 없이 Jenkins를 사용할 수 있지만, 보안 및 관리 기능을 제대로 활용하려면 반드시 관리자 계정을 설정하는 것이 좋습니다.
다음은 Jenkins의 루트 URL을 설정하는 단계입니다. 이번에는 별도의 설정이 필요 없을것 같으므로 스킵하도록 하겠습니다.
여기까지 마치고나면 Jenkins 메인 화면을 만날 수 있습니다. 🙌🏻🙌🏻
'DevOps.' 카테고리의 다른 글
[Jenkins] Item 추가 및 Pipeline 작성 + 테스트 (0) | 2025.02.12 |
---|---|
[Jenkins] Github 자격 증명 추가 + 웹훅 설정 (0) | 2025.02.12 |
이게 CI야? CD야? (0) | 2025.02.09 |
[INFRA] Nginx In Container?, host? (0) | 2024.04.25 |
개발 기술 블로그, Dev
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!