[AWS]Jenkins를 이용한 CI/CD 구성

Suyeon·2024년 5월 9일

CI/CD란??

어플리케이션 개발 단계에서 배포까지의 모든 단계를 자동화하여
효율적으로 어플리케이션을 관리하는 소프트웨어 개발 방법론

CI(Continuous Integration)
개발자가 작성한 코드 변경 사항에 대하여 빌드 및 테스트를 자동화하는 과정
예를 들어, github에서 코드를 통합(merge)한다면 jenkins에서 빌드 및 테스트까지 모두 진행해준다.이로써, 코드 검증 시간을 줄이면서 효율적으로 개발을 진행할 수 있게 한다.
CD(Continuous Delivery/Continuous Deployment)
배포 CI단계에서 빌드 및 테스트를 수행 후 성공 시 자동으로 릴리즈/배포한다.

✔️ec2 서버 생성

1. AWS 접속 및 로그인(https://aws.amazon.com)
2. 인스턴스 생성

  • console > EC2 > 인스턴스 > Launch an instance(인스턴스 시작)
    Amazon Machine Image(AMI) : Amazon Linux 2023 AMI

** Amazon Linux 2023 AMI는 리눅스 기반이기 때문에 Yum 패키지 관리자를 사용

** Yum은 사용자가 소프트웨어 패키지를 쉽게 설치하고 관리할 수 있도록 도와줌

** AMI는 인스턴스를 시작하는 데 필요한 소프트웨어 구성(운영 체제, 애플리케이션 서버 및 애플리케이션)이 포함된 템플릿

  • 인바운드 규칙(보안그룹)
    ** 보안그룹은 인스턴스에 대한 네트워크 트레픽을 허용하거나 거부하는 규칙을 설정하여 인스턴스의 보안을 강화함

    -> 원격으로 EC2 인스턴스에 접속하기 위해 보안 그룹에 SSH 포트 22 추가
    -> jenkins 접속하기 위해 TCP 포트 8080 추가(jenkins 기본 포트 8080)

✔️Jenkins 설치

1. ec2 서버 접속

SSH 키 페어 권한 부여

terminal > chmod 700 {SSH Keypair}

chmod : 파일의 권한을 변경하는 명령어. Unix 기반 운영 체제에서 사용 가능
700 : 사용자에게 모든 권한 부여(읽기,쓰기,실행) + 그룹 및 기타 사용자에게는 권한 부여하지 않음

서버 접속

terminal > ssh -i {SSH Keypair} ec2-user@{IP Address}

2. Jenkins 설치

시스템 업데이트

sudo yum update –y

Jenkins 저장소 추가

yum 저장소에 Jenkins 저장소 추가

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

GPG 공개키 등록

Jenkins 저장소의 GPG 키 다운로드 후 시스템에 추가

sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
sudo yum upgrade // 업데이트

Java 설치

sudo yum install -y java-17-amazon-corretto

Jenkins 설치

sudo yum install jenkins -y
sudo systemctl enable jenkins // 부팅 시 Jenkins 활성화

Jenkins 시작

sudo systemctl start jenkins

Jenkins 상태 확인

sudo systemctl status jenkins

[참고] https://www.jenkins.io/doc/tutorials/tutorial-for-installing-jenkins-on-AWS/

3. Jenkins 설정

Jenkins 접속

AWS Public IP 주소 접속

Administrator password 입력

sudo cat /var/lib/jenkins/secrets/initialAdminPassword //Administrator password 확인

Install suggested plugins 클릭
권장 플러그인 설치

관리자 계정 생성

profile
안녕하시렵니까😘

0개의 댓글