본문 바로가기
개발/Field-Passer 프로젝트

[Field-Passer 프로젝트] AWS EC2에 스프링부트 프로젝트 배포하기

by 코코의 주인 2023. 2. 10.

목서버가 필요해져서 지금까지 개발된 상황까지 코드를 통합해서 배포하기로 했습니다.

2022.10.07 - [개발/AWS] - [개발/AWS] AWS EC2 인스턴스 생성하기

 

[개발/AWS] AWS EC2 인스턴스 생성하기

AWS(Amazon Web Service) 서비스를 개발하고 다른 사람들도 쓸 수 있게 배포하기 위해서는 서버가 필요하다. 서버를 직접 구축하고 운용하는 것는 것은 힘들기 때문에 많은 회사가 AWS나 MS AZURE, Google Clo

cocoiscat.tistory.com

EC2 생성에 대해선 위 글을 참고해주세요.


1. 서버 환경 설정

1) JDK 설치

우선 서버에 JDK를 설치해줬습니다.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install openjdk-11-jdk

를 위에서부터 진행해주세요.

 

 

다음은 자바 환경변수 추가입니다.

sudo vi ~/.bashrc

명령어를 실행한 뒤 파일에

export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))
export PATH=$PATH:$JAVA_HOME/bin

를 붙여넣습니다.

source ~/.bachrc

명령어로 설정을 적용해줍니다.

echo $JAVA_HOME

을 입력했을 때 경로가 잘 뜬다면 성공입니다.

 

2) MySQL 설치

저희는 DB로 MySQL을 사용하기 때문에 MySQL도 설치하겠습니다.

sudo apt install mysql-server

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!주의!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

MySQL 비밀번호 설정할 때

mysql_secure_installation

을 사용하면 인생이 피곤해질 수 있습니다. 아직 root 권한이 없기 때문에 에러가 납니다.

 

sudo mysql

로 mysql을 실행한 뒤

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '원하는 비밀번호';

로 비밀번호 설정을 해주세요.

 

사실 데이터베이스 생성을 root 계정에서 하면 안되지만 임시 배포이기 때문에 이번엔 root 계정에서 하겠습니다.

이번엔 DB서버와 스프링부트 프로젝트가 같은 서버에 올라가지만 본 배포때는 DB 서버도 따로 만들 겁니다. 


2. DB 테이블 생성

sudo scp -i "키" 파일명 인스턴스 주소:/{디럭토리 경로}

scp 명령어를 사용해서 sql 파일을 로컬에서 서버로 보내줬습니다.

 

mysql을 실행한 뒤

source {sql 파일 경로};

를 하면 아래와 같이 테이블이 생성됩니다.


3. 배포

Git flow를 사용하고 있기 때문에 git flow release를 사용해서 배포 버전을 생성했습니다.

배포 버전은 애매하게 0.7.5버전으로 결정했어요.

 

release start와 finish 사이에 테스트를 통해 기능이 확실하게 작동하는 것을 확인했습니다.

git flow release finish

한 뒤에

git push --tags

 로 태그까지 push 해주세요. 그 후에 배포는 github에서 하시면 됩니다.


4. 프로젝트 빌드하기

이제 프로젝트를 jar 파일로 빌드합니다.

오류가 나는 것은 제가 테스트 메서드의 이름을 한글로 해서 그렇습니다.

 

마찬가지로 scp 명령어를 사용해서 서버로 jar 파일을 보내줍니다.


5.  실행

서버에서 jar 파일을 실행합니다. 스프링부트 프로젝트는 톰캣 서버을 내장하고 있기 때문에 별도의 설정 없이 실행할 수 있습니다.

회원가입을 시도하니까 DB에 회원 정보가 저장된 것을 확인할 수 있습니다.

 

배포가 성공했습니다. 와아~~

댓글