AWS 기반의 CI/CD 환경 구성 (GitLab, Jenkins, Codedeploy, S3)

2020. 6. 3. 12:48IT/DevOps

728x90

 본문에서는 오픈소스인 GitLab과 Jenkins, AWS CI/CD 서비스인 Codedeploy를 이용하여 EC2에 배포하는 CI/CD 환경을 구성한다. AWS 기반 시스템에서 어떻게 CI/CD 프로세스를 구성하는 것이 좋을지 고민하고 있고, 본문은 구성하는 후보 중 하나이다.

 

1. GitLab, Jenkins 연동

 EC2에 Jenkins를 설치하고, 전사 GitLab에 연동한다. 우선, GitLab에 생성된 레파지토리가 준비되어야 한다.

다음과 같이, Jenkins에서 Git plugin과 GitLab plugin을 설치한다.

추후 Codedeploy, S3도 연결을 필요한다면 해당 plugin도 설치한다.

 

GitLab과 Jenkins를 연동하는 방법으로는 액세스 토큰을 이용하거나, GitLab의 계정을 사용하는 것이다.

본문에서는 계정을 이용하여 연동한다. 

Jenkins의 Credentials로 이동하여 생성한다. 

Username은 GitLab의 계정 아이디, Password는 GitLab의 계정 비밀번호, ID는 Credential를 식별하는 아이디이다.

 

Jenkins에서 새로운 Item을 생성한다. 아이템 이름과 Freestyle Project를 선택한다.

 

Item 구성의 소스 코드 관리에서 GitLab 정보를 입력한다. 레포지토리 URL과 앞서 생성한 Credential을 선택한다.

 

GitLab의 레포지토리는 다음과 같이 확인한다.

 

2. Codedeploy 구성

EC2 인스턴스에 배포를 위한 Codedeploy를 구성한다. 

배포를 위한 application을 생성하고, application에 사용할 컴퓨팅 플랫폼을 선택한다.

 

생성한 application에 배포하려는 인스턴스 및 유형을 선택하여 배포 그룹을 생성한다.

 

Codedeploy의 역할은 S3에 대한 액세스 권한을 포함하여 다음과 같이 생성한다.

 

배포 그룹의 인스턴스(배포할 인스턴스)에 Codedeploy agent를 설치해야 한다. 다음 명령어를 통해 설치한다.

sudo yum update
sudo yum install -y ruby wget
 
wget https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/install
chmod +x ./install
sudo ./install auto
 
echo 'Starting codedeploy-agent'
sudo service codedeploy-agent restart
 
sudo chmod +x /etc/init.d/codedeploy-startup.sh

 

3. S3 생성

Codedeploy의 애플리케이션 개정을 S3에 업로드한다. 해당 S3 버킷 및 폴더를 생성한다.

 

4. Jenkins 구성

Jenkins Item 구성의 빌드 후 조치에서 앞서 생성한 Codedeploy, S3 정보를 입력한다.

(Codedeploy, S3 plugin을 설치해야 사용할 수 있다.)

300x250

'IT > DevOps' 카테고리의 다른 글

AWS EC2에서 SonarQube 설치 및 구성  (0) 2020.02.17