본문 바로가기

CI & CD9

[Travis CI] 코드가 푸시되면 자동으로 배포하기 5 - 배포 자동화 구성 이제 실제로 Jar를 배포하여 실행까지 해보겠습니다. deploy.sh 파일 추가 먼저 step2 환경에서 실행될 deploy.sh를 생성하겠습니다. scripts 디렉토리를 생성하여 여기에 스크립트를 생성합니다. #!/bin/bash REPOSITORY=/home/ec2-user/app/step2 PROJECT_NAME=used-car-admin echo "> Build 파일 복사" cp $REPOSITORY/zip/*.jar $REPOSITORY/ echo "> 현재 구동중인 애플리케이션 pid 확인" # 1 CURRENT_PID=$(pgrep -fl used-car-admin | grep jar | awk '{print $1}') echo "현재 구동중인 어플리케이션 pid: $CURRENT_PID.. 2021. 7. 18.
[Travis CI] 코드가 푸시되면 자동으로 배포하기 4 - Travis CI와 AWS S3, CodeDeploy 연동하기 AWS의 배포 시스템인 CodeDeploy를 이용하기 전에 배포 대상인 EC2가 CodeDeploy를 연동 받을 수 있게 IAM 역할을 하나 생성하겠습니다. EC2에 IAM 역할 추가하기 S3와 마찬가지로 IAM을 검색하고, 이번에는 [역할] 탭을 클릭해서 이동합니다. [역할 => 역할 만들기] 버튼을 차례로 클릭합니다. 앞에서 만들었던 IAM의 사용자와 역할의 차이 역할 AWS 서비스에서만 할당할 수 있는 권한 EC2, CodeDeploy, SQS 등 사용자 AWS 서비스 외에 사용할 수 있는 권한 로컬 PC, IDC 서버 등 지금 만들 권한은 EC2에서 사용할 것이기 때문에 사용자가 아닌 역할로 처리합니다. 서비스 선택에서는 [AWS 서비스 => EC2]를 차례로 선택합니다. 정책에선 EC2RoleF.. 2021. 7. 18.
[Travis CI] 코드가 푸시되면 자동으로 배포하기 3 - Travis CI와 AWS S3 연동하기 S3란 AWS에서 제공하는 일종의 파일 서버입니다. 이미지 파일을 비롯한 정적 파일들을 관리하거나 지금 진행하는 것처럼 배포 파일들을 관리하는 등의 기능을 지원합니다. 보통 이미지 업로드를 구현한다면 이 S3를 이용하여 구현하는 경우가 많습니다. S3를 비롯한 AWS 서비스와 Travis CI를 연동하게 되면 전체 구조는 다음과 같습니다. 첫 번째 단계로 Travis CI와 S3를 연동하겠습니다. 실제 배포는 AWS CodeDeploy라는 서비스를 이용합니다. 하지만, S3 연동이 먼저 필요한 이유는 Jar 파일을 전달하기 위해서입니다. CodeDeploy는 저장 기능이 없습니다. 그래서 Travis CI가 빌드한 결과물을 받아서 CodeDeploy가 가져갈 수 있도록 보관할 수 있는 공간이 필요합니다... 2021. 7. 18.
[Travis CI] 코드가 푸시되면 자동으로 배포하기 2 - Travis CI 연동하기 Travis CI는 깃허브에서 제공하는 무료 CI 서비스입니다. 젠킨스와 같은 CI 도구도 있지만, 젠킨스는 설치형이기 때문에 이를 위한 EC2 인스턴스가 하나 더 필요합니다. AWS에서 Travis CI와 같이 CI 도구로 CodeBuild를 제공합니다. 하지만 빌드 시간만큼 요금이 부과되는 구조라 초기에 사용하기에는 부담스럽습니다. 실제 서비스되는 EC2, RDS, S3 외에는 비용 부분을 최소화하는 것이 좋습니다. Travis CI 웹 서비스 설정 https://travis-ci.com/ 에서 깃허브 계정으로 로그인을 한 뒤, github 연동을 활성화 합니다. 활성화한 저장소를 클릭하면 다음과 같이 저장소 빌드 히스토리 페이지로 이동합니다. 프로젝트 설정 Travis CI의 상세한 설정은 프로젝트.. 2021. 7. 18.