[AWS] CI/CD 구축 : EC2에 Jenkins 설치하기

728x90
반응형
SMALL
반응형

 

# Architecture


우선 간단하게 구성을 하려 한다.

 

이후에 S3, Code Deploy 추가 후 SNS를 이용하여 Slack 알림까지 확장해야겠다.

 

 

반응형

 

# 사전 작업


## EC2 생성

  • AMI : Amazon Linux 2 AMI
  • 인스턴스 유형 : t2.micro
  • 키 페어 및 기타 설정은 적절하게 세팅

 

 

 


 

 

 

반응형

 


 

## Java 설치

sudo yum update -y 
cd /home/{customuser}

# aws coreetto 다운로드
curl -LO https://corretto.aws/downloads/resources/11.0.17.8.1/java-11-amazon-corretto-devel-11.0.17.8-1.x86_64.rpm

# java 설치
sudo yum localinstall java~~

# java version 확인
java -version

# 다운로드 파일 삭제
rm -rf java~~

 

또는 간단하게 

 

sudo amazon-linux-extras install java-openjdk11 -y

 


 

## 시간 동기화

EC2의 시간을 Chrony 방식으로 동기화한다.

 

# 시간 확인
date

# EC2 실행될 때마다 Chronyd 방식으로 시간을 동기화 하도록 설정
chkconfig chronyd on

# Chrony가 169.254.169.123 IP 주소를 사용하여 시간 동기화를 하는지 확인
chronyc sources -v

# 시간 동기화 지표 확인
chronyc tracking

# 타입존 설정
# ZONE="Asia/Seoul"
# KST=True
vim /etc/sysconfig/clock

# 현재 타임존 확인
cat /etc/localtime

# 기존 설정 삭제
rm /etc/localtime

# 대한민국 표준 시간대 정보 심볼릭 링크로 설정
ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

# 시간 확인
date

 


 

## 메모리 SWAP 설정

EC2 프리티어 t2.micro의 메모리는 1GB이기 때문에 Jenkins를 사용하는데 무리가 있다.

 

# 메모리 확인
free -h

# swap 메모리 할당
dd if=/dev/zero of=/swapfile bs=128M count=16

# 권한 추가
chmod 600 /swapfile

# swap 영역 설정
mkswap /swapfile

# swap 공간에 swap file을 추가해 즉시 사용할 수 있게 설정
swapon /swapfile

# swap 확인
swapon -s

# fstab에 /swapfile 설정 추가
# /swapfile swap swap defaults 0 0
vi /etc/fstab

# 메모리 확인
free -h

 

반응형

 

 # Jenkins 세팅


 

## Jenkins 설치

Docker 사용은 아래 참고

 

https://hoooon-s.tistory.com/252

 

[AWS] EC2에 Jenkins 설치하기 (with Docker)

# Jenkins 설치 ## Docker 설치 $ yum update -y // Docker 설치 $ amazon-linux-extras install -y docker // Docker version 확인 $ docker --version // Docker 실행 $ service docker start // Docker 실행 확인 $ systemctl status docker ## Jenkins Imag

hoooon-s.tistory.com

 


 

sudo yum update –y

# Jenkins Repo 추가
wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/redhat-stable/jenkins.repo

# Jenkins-CI Key file import
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key    

sudo yum upgrade

sudo yum install jenkins -y

sudo systemctl enable jenkins

sudo systemctl start jenkins

 


 

## Jenkins Port 설정

기본 포트 : 8080

 

하지만 다른 프로그램도 일반적으로 8080 포트를 사용하기에 9000으로 변경하여 사용

# port 9000 변경 
sudo vi /etc/sysconfig/jenkins

# port 9000 변경 
sudo vi /usr/lib/systemd/system/jenkins.service

 

 


## Nginx Reverse Proxy

amazon-linux-extras install -y nginx1

nginx -v

sudo systemctl start nginx.service

# location 설정 부분 추가
vi /etc/nginx/nginx.conf
server {

	# 추가
	location / {
                proxy_pass http://localhost:8080;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
        }
	...
}
$ sudo systemctl restart nginx.service

 


 

## Jenkins Config

http://<your_server_public_DNS>:<port> 접속

 

### Unlock Jenkins

초기 패스워드를 복사해서 입력한다.

 

# password
cat /var/lib/jenkins/secrets/initialAdminPassword

 


 

### Admin 계정 생성

 

 


 

### Plugin 설치

 

Install suggested plugins 클릭

 


 

### URL 설정

 

728x90
반응형
LIST

'Develope > AWS' 카테고리의 다른 글

[AWS] ACM & Route53으로 DNS 연동하기  (0) 2022.11.10
[AWS] EC2에 Apatch & Tomcat 설치  (0) 2022.11.07
[AWS] CI/CD 구축 : 사용자 및 역할 생성  (0) 2022.11.04
[AWS] AWS 기본 개념  (0) 2022.11.02
[AWS] 클라우드 기본 개념  (0) 2022.11.02