CI/CD란??
어플리케이션 개발 단계에서 배포까지의 모든 단계를 자동화하여
효율적으로 어플리케이션을 관리하는 소프트웨어 개발 방법론
CI(Continuous Integration)
개발자가 작성한 코드 변경 사항에 대하여 빌드 및 테스트를 자동화하는 과정
예를 들어, github에서 코드를 통합(merge)한다면 jenkins에서 빌드 및 테스트까지 모두 진행해준다.이로써, 코드 검증 시간을 줄이면서 효율적으로 개발을 진행할 수 있게 한다.
CD(Continuous Delivery/Continuous Deployment)
배포 CI단계에서 빌드 및 테스트를 수행 후 성공 시 자동으로 릴리즈/배포한다.
1. AWS 접속 및 로그인(https://aws.amazon.com)
2. 인스턴스 생성
** Amazon Linux 2023 AMI는 리눅스 기반이기 때문에 Yum 패키지 관리자를 사용
** Yum은 사용자가 소프트웨어 패키지를 쉽게 설치하고 관리할 수 있도록 도와줌
** AMI는 인스턴스를 시작하는 데 필요한 소프트웨어 구성(운영 체제, 애플리케이션 서버 및 애플리케이션)이 포함된 템플릿


terminal > chmod 700 {SSH Keypair}
chmod : 파일의 권한을 변경하는 명령어. Unix 기반 운영 체제에서 사용 가능
700 : 사용자에게 모든 권한 부여(읽기,쓰기,실행) + 그룹 및 기타 사용자에게는 권한 부여하지 않음
terminal > ssh -i {SSH Keypair} ec2-user@{IP Address}
sudo yum update –y
yum 저장소에 Jenkins 저장소 추가
sudo wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.repo
Jenkins 저장소의 GPG 키 다운로드 후 시스템에 추가
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
sudo yum upgrade // 업데이트
sudo yum install -y java-17-amazon-corretto
sudo yum install jenkins -y
sudo systemctl enable jenkins // 부팅 시 Jenkins 활성화
sudo systemctl start jenkins
sudo systemctl status jenkins

[참고] https://www.jenkins.io/doc/tutorials/tutorial-for-installing-jenkins-on-AWS/
AWS Public IP 주소 접속

Administrator password 입력
sudo cat /var/lib/jenkins/secrets/initialAdminPassword //Administrator password 확인
Install suggested plugins 클릭
권장 플러그인 설치

관리자 계정 생성
