본문 바로가기

AWS

[AWS] 리눅스 스프링부트 프로젝트 배포

728x90

PuTTY 실행

[아마존 jdk 설치]

java 11 버전 설치

$ sudo yum install java-[자바버전]-amazon-corretto
$ sudo yum install java-11-amazon-corretto

y 입력

 

[자바 버전 확인]

$ java -version

 

 

[리눅스 방화벽 해제]

1) 인스턴스 체크 - 보안 : 보안그룹 링크

 

2) 인바운드 규칙 편집

 

3) 규칙 추가

 

4) 규칙 추가 후 규칙 저장

클라우드 별 방화벽 해제 방법 다름.

 

 

 

[프로젝트 배포]

1) 프로젝트 디렉터리로 이동

$ cd [프로젝트 디렉터리명]

 

2) ec2-user 사용자는 해당 파일 실행권한이 없으므로 파일 실행 권한을 부여해준다.

$ chmod 774 [디렉터리명(파일명)]

권한 별 숫자

read : 4

write : 2

execution : 1

 

774 : user / group / other - 권한숫자를 더하여 user, group, other에 권한 부여.

user(7) : read, write, execution 권한 부여

group(7) : read, write, execution 권한 부여

other(4) : read 권한 부여

 

gradlew 파일에 대한 실행 권한을 주어서 색이 바뀌었음.

 

 

3) 프로젝트 빌드 - gradlew 파일 build

$ gradlew build

빌드 성공 시 build 디렉터리 내 libs 디렉터리 생성됨.

 

4) buildTest-0.0.1-SNAPSHTO.jar 실행

 

5) 프로세스 실행

방법 - 1) 프로세스 실행

$ java -jar [@@@.jar]

AWS탄력적IP주소:8080

ctrl + c 프로세스 종료

 

정상 실행되는 것을 확인할 수 있지만 위의 프로세스 실행 명령어를 사용하면 터미널이나 세션이 종료되면 프로세스가 종료된다.

터미널이나 세션이 종료되어도 프로세스가 돌아갈 수 있도록 & 명령어를 사용하여 프로세스를 백그라운드에서 실행시킨다.

 

방법 - 2) nohup 명령어 이용하여 프로세스를 쉘스크립트파일 (*.sh)을 데몬형태로 실행

2-1) nohup.out 파일 생성

$ nohup java -jar @@@.jar&

 

2-2) nohup.out 파일 읽기

$ vi [파일이름] // 일반 파일 읽기
$ tail -f [파일이름] // 로그 기록

tail -f 로 파일 읽었을 때 웹 페이지에서 변경사항이 있을 경우 터미널에 로그가 찍힘

터미널 종료 후 서버 접속시도해도 접속이 됨.

 

 

6) 프로세스 종료

포트번호 사용하여 해당 포트 사용하는 프로세스 조회

$ netstat -nlp |grep [포트번호]

PID : 31726

PID번호 이용하여 프로세스 종료

$ kill -15 [PID번호] // 정상적 종료
$ kill -9 [PID번호] // 강제 종료

 

728x90