본문 바로가기

개발/Spring

[Spring] Ubuntu 서버에서 실행하기 (배포)

windows에서 ubuntu 서버 접속하는 방법은 아래 포스트를 참고해주세요.

https://zogak7.tistory.com/99

(참고로 먼저, Spring을 사용하는 포트를 EC2 인스턴스에 가서 열어주어야 합니다!!!)

 

서버에서 git에 올린 spring 파일을 pull해서 실행시켜줄 것입니다.

그렇게 하기 위해서 서버에 1. Java를 설치해야 하고 2. git을 설치해야 합니다.

 

1. 업데이트를 먼저 해줍니다.

sudo apt-get update

2. 원하는 버전의 자바를 설치합니다. 저는 11을 설치했습니다.

sudo apt install openjdk-11-jdk
java -version #자바가 잘 설치되었는지 버전 확인을 통해 확인

3. 자바 설치 경로를 확인하고, 아래 명령어를 입력했을 때 나오는 경로를 복사해줍니다.

update-java-alternatives -l

4. 복사한 경로를 /etc/environment 파일에 JAVA_HOME에 적어줄 겁니다. 일단 아래의 명령어로 /etc/environment를 vi에디터로 열어줍니다. i를 눌러 입력할 수 있도록 만든다음, JAVA_HOME="아까복사한경로" 를 적어줍니다.

sudo vi /etc/environment

그리고 esc 누르고 :wq를 하여 에디터에서 빠져나옵니다.

 

5. 아래 명령어로 방금 수정한 파일을 실행시켜줍니다.

source /etc/environment

6. JAVA_HOME에 제대로 저장되었는지 아래 명령어를 통해 확인합니다. 입력한 값이 제대로 출력되면 성공입니다.

echo $JAVA_HOME

 

7. 이렇게 JAVA를 잘 설치했으니, 다음은 GIT을 설치해보겠습니다.

sudo apt-get install git
sudo apt install git
git --version

위의 명령어를 입력하면 git이 설치가 됩니다. 마찬가지로 git --version을 해서 git 버전이 제대로 나오면 설치가 잘 된 것입니다.

 

8. 이제 기존에 git을 사용하던 것처럼, spring이 올려있는 repository를 clone해줍니다.

9. 그럼 이 서버에서 spring을 실행시켜주어야 합니다. pom.xml이 있는 곳까지 이동해줍니다. 그럼 그 곳에 mvnw로 있을 건데, 실행가능하도록 chmod 700 mvnw 등으로 권한을 바꿉니다. (실행 가능해지면 mvnw가 초록색으로 바뀜)

./mvnw

로 mvnw를 실행시켜 build를 시켜줍니다.

10 .완료되면, target 폴더로 이동합니다. 빌드가 성공되었다면, target폴더 안에 jar파일을 찾을 수 있을 것입니다.

11. jar 파일을 실행시켜줍니다. 이 때 서버를 나와도 백그라운드에서 돌아가게 하기 위해 &를 붙여줍니다.

java -jar 내jar파일이름 &

12. 완료입니다!

 

아래 블로그에도 잘 설명이 되어있어서 참고했습니다 :)

 

[AWS] AWS에 스프링부트 프로젝트 올리기 (Maven)

PuTTY를 사용하여 원격지의 AWS 서버에 접속을 한다. 그리고 sudo git clone 깃허브 프로젝트 URL 이렇게 입력하여 깃허브에 있는 프로젝트를 clone해 온다. 깃을 설치해준 적이 없다면 "bash : sudo : git comm

breakcoding.tistory.com

 

 

13. 인스턴스 중지에 대해

인스턴스를 사용하지 않는 동안에 켜두면 시간이 계속 차감됩니다. 그런데 인스턴스를 중지시켰다가 다시 켜면 ip주소가 바뀝니다. 그래서 ip주소가 바뀌지 않게 하려면 elastic ip를 사용해야 합니다. 그런데 elastic ip를 사용하면 또 과금이 됩니다....ㅠㅠ

인스턴스를 중지시켰다가 다시 켜면 서버에 모든 파일들은 그대로 남아있는데, spring boot를 다시 실행 시켜주어야 합니다!(jar 파일도 남아있어 실행만 하면 됩니다)

 

14. 백그라운드 실행 죽이는 방법

코드가 업데이트 되어서 git pull을 새로 받으면 다시 빌드를 하고 새로 만들어진 snapshot을 실행시켜주어야 한다.

그런데 백그라운드에서 snapshot을 돌리고 있으므로, 이것을 먼저 kill한 후 새로 돌려야 한다.

 

백그라운드에서 돌아가고 있는 프로세스 확인하는 방법

ps auxf
또는
ps auxf | grep 찾고자하는내용 #특정 내용 포함한 것 찾기 위함

kill을 원하는 프로세스의 PID를 기억한 다음

kill -9 PID

해준다.