관리 메뉴

너와 나의 스토리

[AWS] EC2에 서버 배포(spring) 본문

개발

[AWS] EC2에 서버 배포(spring)

노는게제일좋아! 2020. 5. 11. 17:33
반응형

1. git에 작성한 spring 코드 업로드

 

2. EC2에서 위 git을 clone

  • 방법 1: master branch에서 데이터 clone하기
    • $git clone "git url"
    • git url: "Clone or download" 버튼을 누르면 나오는 url을 복붙 하면 된다.
  • 방법 2: 특정 branch를 지정하여 그곳에서만 데이터를 clone할 수 있다.
    • $ git clone -b "branch 이름" --single-branch "git url"
    • 현재 branch 알아보기: $ git branch -a 
  • 방법 3: 수정한 부분만 받아오기 (덮어쓰기)
git fetch --all
git reset --hard origin/"branch_name"

 

 

3. 잘 받아졌는지 테스트

  • $ ./gradlew test
    • [bash: ./gradlew: Permission denied] 오류가 뜬다.
    • [$ chmod +x gradlew] 명령어로 permission을 변경해보자.
      • 위 명령어는 root user인 상태로 진행해야 한다.
      • 그리고 다시 [$ ./gradlew test] 명령어 치면 성공!!
  • 성공인 듯 싶었으나 [Gradle 6.3 requires Java 8 or later to run. You are currently using Java 7.]라는 오류가 나온다.
    • 그렇다면, java8로 버전업을 해보자.
    • $ sudo yum install -y java-1.8.0-openjdk-devel.x86_64
    • 설치한 후, 인스턴스의 Java 버전을 8로 변경한다.
    • $ sudo /usr/sbin/alternatives --config java
    • 이전 버전 삭제하려면, 
      • $ sudo yum remove java-1.7.0-openjdk

변경된 것 확인

  • 다시 테스트
    • $ ./gradlew test

성공!!

  • [$ ./gradlew test]가 성공하면 build 디렉터리가 생긴다.
  • 그리고 build/libs 디렉터리 아래에 jar 파일이 생긴 것을 확인할 수 있다.

 

4. deploy 스크립트 생성 (deploy.sh)

  • 코드 생성하고
    • [$ chmod +x deploy.sh]로 실행 권한을 준다.
    • [$ ./deploy.sh] 명령어로 실행
  • 하단의 코드는 "jojoldu"님이 올려주신 코드에서 일부만 수정한 것입니다.
#!/bin/bash

REPOSITORY=/home/ec2-user/app/git

cd $REPOSITORY/spring-webservice/

echo "> Git Pull"

git pull

echo "> 프로젝트 Build 시작"

./gradlew build

echo "> Build 파일 복사"

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

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

CURRENT_PID=$(pgrep -f spring-webservice)

echo "$CURRENT_PID"

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

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

JAR_NAME=$(ls $REPOSITORY/ |grep 'spring-webservice' | tail -n 1)

echo "> JAR Name: $JAR_NAME"

nohup java -jar $REPOSITORY/$JAR_NAME &
  • 서버 실행:
    • $ java -jar /home/ec2-user/app/git/spring-webservice/build/libs/spring-webservice-0.0.1-SNAPSHOT.jar \$

  • $ vim nohup.out

  • $ tail -f /home/ec2-user/app/git/spring-webservice/build/libs/nohup.out

 

5. 인바운드 규칙 추가

 

 

 

 

참고:

- 서버 배포:

- java 버전 변경:

반응형
Comments