Install Jenkins In AWS EC2

이번 글에서는 AWS EC2 를 console 을 통해서 생성하고, 생성한 EC2에 Jenkins 를 설치하는 과정을 살펴보겠다.

먼저 AWS console 에 로그인 하고 EC2 를 생성한다.
인스턴스 시작 버튼을 누른다.

amazon linux 를 선택한다.

EC2 유형은 small 이상으로 하는것이 좋다. jenkins 로 프로젝트를 Build 하는 과정에서 성능이 낮으면, Gradle 같은 경우 DaemonDisapperaredException 을 달콤하게 경험할 수 있다. 해당 예외의 경우 memory 가 부족해서 발생할 수 있다.


다음에는, Security Group 을 할당한다. 기본적으로 Jenkins 를 설치하기 위해서 SSH 를 허용하며, Jenkins 의 기본 port 는 8080 이기 때문에 8080 port 도 열어준다. 경고 메세지에서 확인이 가능하듯, 실제 운영에서는 특정 IP 에서만 접근이 가능하도록 하는 것이 좋다.
VPC 와 Subnet public IP 및 DNS 그리고 Availability Zone 등 세부적인 사항들은 모두 default 설정을 따랐다. 실제 운영에서는 커스텀하게 설정해주는 것이 좋다. 이제 EC2 를 생성해준다.

정상적으로 EC2 가 생성되고 running 이라면 SSH 로 접속한다.


먼저 sudo yum update 를 해주자.

그렇다면, 이제 Jenkins 를 설치해보자. Jenkins 는 jdk8 이상의 버전이 필요하다. 하지만 기본적으로 설치 되어 있는 jdk 버전은  1.7 이다. 

따라서, jdk 1.7 를 먼저 지우고, jdk11 aws corretto 를 설치한다.

sudo yum remove java-1.7.0-openjdk 명령어를 통해서 지우고, y/n 을 묻는다. y 를 입력하고 enter 를 누른다.




이제 jdk11 aws corretto 설치한다.

sudo curl -o java11.rpm https://d3pxv6yz143wms.cloudfront.net/11.0.5.10.1/java-11-amazon-corretto-devel-11.0.5.10-1.x86_64.rpm https://d3pxv6yz143wms.cloudfront.net/11.0.5.10.1/java-11-amazon-corretto-devel-11.0.5.10-1.x86_64.rpm 

 sudo yum localinstall java11.rpm



설치가 완료되었다. 
java --version 을 통해서 확인해보자.

자 이제 jdk 버전도 8 이상인 11 이다. Jenkins 를 설치하자.

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
 

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

sudo yum install jenkins -y

Jenkins start!

sudo service jenkins start


아까 EC2 생성 시 퍼블릭 DNS(IPv4) 와 IPv4 퍼블릭 IP 를 할당했다. 
따라서 퍼블릭 DNS 혹은 퍼블릭 IP 와 8080 port 로 브라우저에 접속 시 아래와 같은 화면이 나온다.

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

통해서 출력되는 비밀번호를 입력하고 다음으로 넘어간다.

Jenkins plugin 들을 커스텀하거나 기본적으로 많이 사용하는 세팅을 선택할 수 있다.
most useful 을 선택한다.

Jenkins 가 알아서 기본 세팅을 설치해준다.

설치가 완료되면, 어드민 계정을 생성하라고 한다.

어드민 계정 생성이 완료되면 Jenkins URL 을 알려준다.
이제 기본 설정이 모두 끝났다.

이번 블로깅은 여기까지 하겠다.
다음 글에서는 Jenkins 를 이용하여 Spring Boot App 을 jar 로 Build 하고 S3 에서 관리하는 방법을 정리해보겠다.

댓글

이 블로그의 인기 게시물

About Kafka Basic

About JVM Warm up

About ZGC

Spring Boot Actuator readiness, liveness probes on k8s

About G1 GC

sneak peek jitpack

About idempotent

C 언어 구조체의 포인터 멤버 변수

Synology NAS에 MariaDB 10에 Mysql workbench로 원격접속하기

About Websocket minimize data size and data transfer cost on cloud