MSA 학습(9) - AWS EC2에 프로젝트 배포

엉무개·2021년 8월 30일
0

MSA

목록 보기
10/12

1. EC2에 프로젝트 Clone하기

  • .yml .properties 등 중요정보 파일은 .gitignore 필수
  1. Git 설치
  • sudo yum install git
  • git --version
  1. 프로젝트 저장할 디렉토리 생성
  • mkdir ~/app && mkdir ~/app/spring-boot
  1. 생성 디렉토리로 이동
  • cd ~/app/spring-boot
  1. git clone
  • git clone 주소
  1. ./graldew test 로 테스트

2. 배포 스크립트 생성

  • application.yml : 로컬 h2 메모리 DB로 작성(test 용, EC2에서 직접 작성)
  • application-real.yml : RDS 연결(git push용)
  • application.yml 배포용
spring:
  h2:
    console:
      enabled: true
      path: /h2
  datasource:
    driver-class-name: org.h2.Driver
    url: jdbc:h2:mem:test
    username: sa
server:
  address: localhost
  port: 7946
  1. vim deploy.sh 로 파일 생성
#!/bin/bash

REPOSITORY=/home/ec2-user/app/spring-boot
PROJECT_NAME= git으로 받은 프로젝트명

cd $REPOSITORY/$PROJECT_NAME/

echo "> Git pull"

git pull

echo "> Project Build Start"

./gradlew build

echo "> Build File Copy"

cp $REPOSITORY/$PROJECT_NAME/build/libs/*.jar $REPOSITORY

echo "> 현재 구동중인 어플리케이션 pid 확인"

CURRENT_PID=$(pgrep -f ${PROJECT_NAME}.*.jar)

echo "> 현재 구동 어플 pid: $CURRENT_PID"

if [ -z "$CURRENT_PID"]; then
        echo "> 현재 구동 중인 애플리케이션이 없으므로 종료하지 않음"
else
        echo "> kill -15 $CURRENT_PID"
        kill -15 $CURRENT_PID
        sleep 5
fi

echo "> 새 애플리케이션 배포"

JAR_NAME=$(ls -tr $REPOSITORY/ | grep jar | tail -n 1)

echo "> JAR Name: $JAR_NAME"

nohup java -jar -Dspring.profiles.active=real $REPOSITORY/$JAR_NAME 2>&1 &

3. 외부 .yml 파일등록

  • yml, properties 등 중요정보를 보관하는 파일은 gitignore하고 따로 서버에 두는 것이 좋음

4. ./deploy.sh 로 실행

profile
엉덩이가 무거운 개발자

0개의 댓글