프로젝트 개요 : Jump to SpringBoot 클론코딩 - 회원제 QnA 게시판 웹
프로젝트 환경 : IntelliJ, SpringBoot, JPA, H2
프로젝트 코드 : https://github.com/smkim9202/sbb
프로젝트 배포 순서
- 서버에 자바를 설치하고 환경설정을 한다.
- 서버에 적용할 스프링부트 프로젝트 배포파일을 생성한다.
- SFTP를 통해 배포파일을 전송한다.
- 프로젝트 배포파일을 실행한다.
- 웹 브라우저로 프로젝트 서비스를 테스트한다.
- 백그라운드로 서비스 시작(서버 스크립트)
AWS 라이트세일 가입 & 인스턴스 생성
https://smkim9202.tistory.com/194?category=890215
[AWS] AWS 라이트세일 가입 & 인스턴스 생성
서버 서비스를 사용하려면 항상 켜져 있는 서버가 필요하다. 사용자는 PC 또는 모바일 기기로 서비스에 접속하고, 서버는 사용자가 사용하는 기기의 화면으로 서비스를 보여준다. 서버는 PC본체
smkim9202.tistory.com
AWS 서버 접속 + SSH클라이언트, SFTP 클라이언트
https://smkim9202.tistory.com/195?category=890215
1. 서버 환경설정
- 서버시간 한국시간으로 설정
- 우분투패키지 최신 업그레이드
- 자바설치 및 버전 확인
- 프로젝트 디렉터리 생성
ubuntu 명령어
hostname 변경하기 :
ubuntu@호스트명:~$ sudo hostnamectl set-hostname 호스트명
ubuntu@호스트명:~$ sudo reboot //서버리스타트 후 다시 접속
hostname 명령어 :
ubuntu@호스트명:~$ hostname
서버시간 확인하기 :
ubuntu@호스트명:~$ date
서버시간설정하기(한국시간) :
ubuntu@호스트명:~$ sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
우분투패키지 최신 업그레이드 :
ubuntu@호스트명:~$ sudo apt update
자바설치 확인 :
ubuntu@호스트명:~$ java
자바설치(openjdk-11-jdk) :
ubuntu@호스트명:~$ sudo apt install openjdk-11-jdk
자바설치 버전 확인 :
ubuntu@호스트명:~$ java -version
프로젝트 디렉터리 생성
ubuntu@호스트명:~$ mkdir 폴더명 // (/home/ubuntu/생성할폴더명)
디렉토리 목록 확인
ubuntu@호스트명:~$ ls
자바 jar파일 실행 :
ubuntu@호스트명:java -jar 파일명.jar
2. 인텔리제이 스프링부트 배포파일 생성하기
그레이들탭 -> 프로젝트명 - Tasks - build - bootJar 우클릭 -> Run 'sbb[bootJar]' 클릭
프로젝트탭 -> 프로젝트명 - build - libs 폴더에서 jar파일 확인
배포 파일이름 변경
파일명: build.gradle
version = '0.0.1-SNAPSHOT'
//이름을 바꾸면 해당 version명의 배포파일이 생성될 것이다.
3. SFTP로 배포파일(jar) 전송하기
프로그램 : 파일질라(SFTP 클라이언트)
4. SSH로 배포파일(jar) 실행하기
프로그램 : MobaXterm(SSH 클라이언트)
//자바실행(jar)
java -jar 파일명.jar
로컬 컴퓨터에서 생성한 데이터 파일도 서버 홈 디렉터리에 새로 생성된다.
5. 브라우저에서 확인하기
문제점 : 터미널(ssh클라이언트) 종료시 서비스도 중단
해결책 : 백그라운드로 서비스를 실행해야한다.
5. 서버 스크립트
프로그램 : MobaXterm(SSH 클라이언트)
시작 스크립트
ubuntu@호스트명:~$ cd sbb
//nano 편집기 열기
ubuntu@호스트명:~/sbb$ nano start.sh
아래와 같이 작업 후
^(Ctrl) + O : 저장하기
^(Ctrl) + X : 편집기 종료하기
JAR = 배포파일명
LOG = 로그 출력할 파일명
nohup : 프로세스를 실행한 터미널 연결 끊어져도 지속적으로 동작하게 하는 명령어
> $LOG : 프로세스 출력을 로그파일에 저장
2>&1 : 오류(stderr) 출력을 일반(stdout) 출력으로 전달하라는 의미
& : 백그라운드로 명령을 실행
//스크립트명 입력시 실행하게 실행권한 부여
ubuntu@호스트명:~/sbb$ chmod +x start.sh
//스크립트 실행 => 서버 실행
ubuntu@호스트명:~/sbb$ ./start.sh
중지 스크립트
//nano 편집기 열기
ubuntu@호스트명:~/sbb$ nano stop.sh
SBB_PID = 현재 실행중인 프로세스 ID
프로세스가 없다면 메시지 출력 후 kill -9
kill -9 : 프로세스 강제종료
//스크립트명 입력시 메모 실행하게 실행권한 부여
ubuntu@호스트명:~/sbb$ chmod +x start.sh
//스크립트 실행 => 서버 중지
ubuntu@호스트명:~/sbb$ ./stop.sh
스크립트 실행 후 재시작
프로젝트가 변경됐다면 jar파일 변경 후 저장해둔 스크립트 차례대로 실행(stop.sh => start.sh)
ubuntu@호스트명:~/sbb$ ./stop.sh
ubuntu@호스트명:~/sbb$ ./start.sh
6. 터미널 종료 후에도 브라우저에서 실행되는지 확인
'프로젝트 > clone coding' 카테고리의 다른 글
[백엔드 개발 : ProductManagement] 상품관리 애플리케이션 정의 (0) | 2025.03.17 |
---|---|
[Jump to SpringBoot : SBB] 프로젝트 개발과 서버 환경 분리 (0) | 2022.05.12 |
[Jump to SpringBoot : SBB] 스프링 시큐리티 (0) | 2022.04.26 |
[Jump to SpringBoot : SBB] 스프링부트 windows cmd창으로 빌드하고 실행 (0) | 2022.04.21 |
[Jump to SpringBoot : SBB] 서비스와 DTO (0) | 2022.04.20 |