Web

3. AWS - EC2 서버에 프로젝트 배포

kakaroo 2022. 3. 5. 12:10
반응형

article logo

 

1. EC2에 프로젝트 clone 받기

git hurb에서 코드를 받아 올 수 있게 EC2에 git을 설치합니다.

> sudo apt install git

 

프로젝트를 저장할 디렉토리를 생성합니다.

> mkdir ~/app && mkdir ~/app/footprinter_server

> cd ~/app/footprinter_server

 

git hurb 웹페이지에서 복사할 repository의 https 주소 (.git으로 끝남)를 복사합니다.

git clone 할 URL 주소 복사
git clone 할 URL 주소 복사

> git clone 복사한 주소

> cd 프로젝트명

 

gradle build

> ./gradlew build //코드가 잘 수행되는지 확인

> chmod +x ./gradlew


maven build

> mvn package

 

공교롭게도 아래와 같이 빌드 에러가 발생했습니다.

AWS의 Java version과 Project의 java version이 맞지 않는 것 같습니다.

maven build failure

Project에서 설정된 Java11 버전으로 맞춰주기 위해(pom.xml에서 확인) 기존 JDK를 모두 삭제합니다.

sudo apt-get purge openjdk*

다음과 같이 openjdk-11-jdk를 설치합니다

sudo apt-get install openjdk-11-jdk

 

설치된 자바 버전을 확인합니다.

java -version

 

다시 빌드해 보면 아래와 같이 성공합니다.

build success

 

Build가 성공하면 target 이라는 폴더가 생겼고, 그 안에 jar 파일이 생성됐을 겁니다.

배포는 아래와 같이 jar를 실행시켜 주면 됩니다.

 

java -jar 파일이름.jar

Spring boot 실행

 

EIP로 실행했더니 페이지가 열리지 않습니다.

이유는 스프링 부트는 8080 포트로 실행되기 때문에 인바운드 규칙에 8080 포트를 추가해줘야 합니다.

인바운드에 8080 포트 추가

 

http://[EIP]:8080/get/list 로 실행해 보니, 잘 됩니다.

 

 

사용자가 로그아웃해도 백그라운드로 실행되게 하는 명령어

$ nohup java -jar [target.jar] &

로그 보기
$ cat nohup.out

 

3. 프로세스 종료

찾기 : ps –aef | grep '[jar파일이름]'
종료 : kill -9 (pid)

 

환경 설정

JAVA_HOME의 시스템 변수 설정이 필요하다면 다음과 같이 ~/.bashrc 파일에 아래 내용을 추가합니다.

$ vim ~/.bashrc
# ~/.bashrc
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))
export PATH=$PATH:$JAVA_HOME/bin

다음 명령어로 변경한 설정을 현재 실행된 쉘에 적용할 수 있습니다. 또는 새로운 터미널 창을 실행시키면 됩니다.

$ source ~/.bashrc

다음과 같이 JAVA_HOME이 설정되었는지 확인할 수 있습니다.

$ echo $JAVA_HOME
/usr/lib/jvm/java-11-openjdk-amd64

 

 

2. 배포 스크립트 만들기

소제목

ref : https://ty1306.tistory.com/m/179

 

EC2 서버에 프로젝트 배포하기

EC2 프로젝트 Clone EC2에 깃 설치 sudo yum install git git 버전 확인 git --version 디렉토리 생성 및 이동 mkdir ~/app && mkdir ~/app/step1 디렉토리로 이동 cd ~/app/step1 git hub 주소 복사 git clone..

ty1306.tistory.com

 

3. 외부 security 파일 등록하기

소제목

내용

 

4. 스프링부트 프로젝트로 RDS 접근하기

4.1 테이블 생성

내용

4.2 프로젝트 설정

자바 프로젝트가 DB에 접근하려면 데이터베이스 드라이버가 필요합니다. DB에서 사용가능한 드라이버를 프로젝트에 추가합니다.

DB 드라이버를 build.gradle에 등록

서버에서 구동될 환경을 하나 구성

src/main/resources/application-real.properties 추가한 뒤, 설정 (ref 참고)

git hurb에 push

4.1 EC2 설정

데이터베이스의 접속 정보는 중요하게 보호해야 할 정보입니다. 접속 정보를 깃허브와 같이 오픈된 공간에서 관리하면 안 되고, EC2 서버 내부에서 접속 정보를 관리하도록 설정합니다.

EC2의 app 디렉토리 (위에서 ~/app/step1 생성한 기준) 에 application-real-db.properties 파일 생성

> vim ~/app/application-real-db.properties

> 내용 입력 (ref 참고)

4.1 테이블 생성

내용

 

5.  EC2에서 소셜 로그인하기

소제목

내용

 

반응형