개몽가

[배포 자동화 구축 2] AWS EC2에 Jenkins 설치 본문

Infra/DevOps

[배포 자동화 구축 2] AWS EC2에 Jenkins 설치

개몽가 2020. 12. 29. 00:28

EC2 인스턴스 위에 Jenkins 설치를 진행할 예정이다.

 

EC2 인스턴스에 접속 

$ ssh aws-linux

 

* EC2 인스턴스 생성 관련은 아래글 참고

 

[배포 자동화 구축 1] AWS EC2 인스턴스 생성하기

EC2(Amazon Elastic Compute Cloud) AWS의 클라우드 컴퓨팅 플랫폼으로 사용자가 가상 컴퓨터를 임대받아 그 위에 사용자가 만든 애플리케이션을 실행할 수 있음 클라우드의 가상서버(인스턴스)를 생성 AMI

shingme.tistory.com

yum 패키기 최신으로 업데이트

$ sudo yum -y update

 

Java 8 (JDK1.8) 설치 

젠킨스는 자바로 만들어진 툴이기 때문에 JVM 위에서 구동되기 때문에 jdk를 설치해줘야함

$ sudo yum install -y java-1.8.0-openjdk-devel.x86_64

설치된 후 자바 버전 확인

$ java -version

터미널 자바버전 확인

Jenkins설치

yum 패키지에 젠킨스 추가 (수동으로 추가)

$ sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

wget 사용불가한 명령어라고 나왔다. 

wget 미설치 시, 아래 명령어로 설치 진행

 $ sudo yum install wget

터미널 wget 설치

wget 명령어로 젠킨스 리파짓토리 다시 추가

 

젠킨스 리파짓토리 키 추가 

$ sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

젠킨스 설치

$ sudo yum install jenkins -y

터미널 jenkins 설치

 

젠킨스는 기본 8080 포트로 설정되어있기 때문에 다른 apache 등의 was 서버 포트와 충돌날 가능성이 있기 때문에 다른 포트로 설정해줄 것이다. 젠킨스 서버에 8080 포트를 사용할 일이 없다면 굳이 포트를 변경하지 않아도 되지만 필자는 EC2 인스턴스에 8080 포트로 스프링 부트 프로젝트를 사용할 예정이라 바꿔줄것이다.

 

젠킨스 파일 열어서 포트 변경

$ sudo vi /etc/sysconfig/jenkins

JENKINS_PORT="8080" 되어 있는 것을 "9090"으로 변경

 

젠킨스 실행

$ sudo service jenkins start

실행되었는지 아래 명령어를 날리면, 

$ netstat -na | grep 9090

9090 포트가 LISTEN 되어있는 것을 확인할 수 있다.

9090 포트 LISTEN 확인

 

젠킨스를 설치하고 실행시켰으니 브라우저로 젠킨스 서버 접속을 해보자.

http://<퍼블릭 IPv4 DNS>:9090

 

접속이 안될 것이다. 

AWS EC2 서버는 기본적으로 모든 접근이 막혀있다고 한다. (실제 AWS 콘솔창 보니 인바운드 규칙에 22 포트만 허용, 아웃바운드 규칙은 전체 허용이었음)

AWS EC2 인스턴스에 대한 보안그룹에 규칙을 추가해줘야 한다.

 

AWS 보안그룹이란 ?

  • EC2 인스턴스에 대한 트래픽을 제어하는 가상 방화벽 역할을 함
  • 인바운드 규칙 : 인스턴스로 들어오는 트래픽 제어
  • 아웃바운드 규칙 : 인스턴스에 나가는 트래픽 제어

AWS 콘솔 접속 > 'EC2' 클릭

aws 콘솔

좌측 하단쪽의 '보안 그룹' 클릭

 

'인바운드 규칙 편집' 를 클릭해 허용하고자 하는 포트를 설정한다.

필자는 아래와 같이 추가했다. (http 80 포트, 젠킨스 9090포트, 스프링부트 프로젝트 8080 포트 등)

 

다시 브라우저에 http://<퍼블릭 IPv4 DNS>:9090 입력하면 아래와 같이 뜬다.

EC2 인스턴스 접속 터미널 창에서 아래 명령어로 비밀번호를 확인하고 넣어주자

$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword

 

그럼, 아래와 같이 접속이 될 것이다.

jenkins 브라우저

EC2 인스턴스 위에 젠킨스 설치 성공 ~