[Jump to SpringBoot : SBB] 프로젝트 AWS 서버에 배포하기

2022. 5. 9. 23:25· 프로젝트/clone coding
목차
  1. 프로젝트 배포 순서
  2. 1. 서버 환경설정
  3. 2. 인텔리제이 스프링부트 배포파일 생성하기
  4. 3. SFTP로 배포파일(jar) 전송하기
  5. 4. SSH로 배포파일(jar) 실행하기
  6. 5. 브라우저에서 확인하기
  7. 5. 서버 스크립트
  8. 6. 터미널 종료 후에도 브라우저에서 실행되는지 확인

프로젝트 개요 : Jump to SpringBoot 클론코딩 - 회원제 QnA 게시판 웹

프로젝트 환경 : IntelliJ, SpringBoot, JPA, H2

프로젝트 코드 : https://github.com/smkim9202/sbb

프로젝트 배포 순서

  1. 서버에 자바를 설치하고 환경설정을 한다.
  2. 서버에 적용할 스프링부트 프로젝트 배포파일을 생성한다.
  3. SFTP를 통해 배포파일을 전송한다.
  4. 프로젝트 배포파일을 실행한다.
  5. 웹 브라우저로 프로젝트 서비스를 테스트한다.
  6. 백그라운드로 서비스 시작(서버 스크립트)

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
  1. 프로젝트 배포 순서
  2. 1. 서버 환경설정
  3. 2. 인텔리제이 스프링부트 배포파일 생성하기
  4. 3. SFTP로 배포파일(jar) 전송하기
  5. 4. SSH로 배포파일(jar) 실행하기
  6. 5. 브라우저에서 확인하기
  7. 5. 서버 스크립트
  8. 6. 터미널 종료 후에도 브라우저에서 실행되는지 확인
'프로젝트/clone coding' 카테고리의 다른 글
  • [백엔드 개발 : ProductManagement] 상품관리 애플리케이션 정의
  • [Jump to SpringBoot : SBB] 프로젝트 개발과 서버 환경 분리
  • [Jump to SpringBoot : SBB] 스프링 시큐리티
  • [Jump to SpringBoot : SBB] 스프링부트 windows cmd창으로 빌드하고 실행
개발원슝이
개발원슝이
꾸준히 개발공부를 합니다.
개발원슝이
꾸준히 개발슝이
개발원슝이
전체
오늘
어제
  • ALL (242) N
    • 프로젝트 (34)
      • clone coding (19)
      • mini project (5)
      • Team project(with KIC) (10)
    • 문제 (37)
      • 백준 (7)
      • 프로그래머스 (14)
      • 정보처리기사실기 (16)
    • 설치 (9)
    • 개발 기초 (13)
    • 프로그래밍언어 (124) N
      • HTML (16)
      • CSS (17)
      • JavaScript (22) N
      • JAVA (13)
      • JSP (10)
      • Python (22)
      • C언어 (24)
    • 프레임워크 (6)
      • Spring (3)
      • Django (3)
    • DB (2)
      • MySQL (2)
    • AWS (1)
    • 오류 (2)
    • 이것저것 (6)
    • 전공자 개발 (3)
    • 비전공자 개발 (5)

블로그 메뉴

  • 네이버블로그(강의노트)
  • GitHub
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 홍정모의 따라하며 배우는 C언어
  • 따배씨
  • 인프런
  • 홍정모교수님
  • 코딩테스트
  • 생활코딩
  • 백준
  • javascript
  • 점프 투 파이썬
  • 파이썬공부

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
개발원슝이
[Jump to SpringBoot : SBB] 프로젝트 AWS 서버에 배포하기
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.