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 JVM Warm up

About idempotent

About Kafka Basic

About ZGC

sneak peek jitpack

Spring Boot Actuator readiness, liveness probes on k8s

About Websocket minimize data size and data transfer cost on cloud

About G1 GC

대학생 코딩 과제 대행 java, python, oracle 네 번째