Cloud Platform

[Oracle Cloud Infrastructure] 오라클 클라우드 배포 과정 정리(2)

비소_ 2023. 1. 5.

Java 설치

리눅스 안에서 개발이나 컴파일은 하지 않을 거라 JRE로 설치했다.

$sudo apt-get update #설치 가능 패키지 리스트 업데이트
$sudo apt-get install openjdk-{version}-jre #jre 대신 jdk 가능

환경변수 설정

source를 통해 적용시키는 것을 잊지말자..

$sudo vi ~/.bashrc

export {VAR_NAME}={VALUE} #맨아래에 원하는 값 넣고 저장

$source ~/.bashrc #적용

$echo ${VAR_NAME} #확인

MySQL 설정

[MySQL 8 기준]

새로 구축한 인스턴스에서 DB에 접속하기 위해 사용자 생성과 권한을 부여한다.

#현재 db에 유저 생성
create user {username}@{host_addr}; 

#유저 비밀번호 설정
alter user {username}@{host_addr} IDENTIFIED  by {password}; 

#유저 권한 설정(예시는 해당 유저에게 특정 DB의 모든 테이블에 대해 모든 권한을 줌)
grant all privileges on {db_name}.* to {username}@{host_addr}; 

#권한 적용
flush privileges;

이외에 포트를 열었는지 확인한다.


빌드

작성 기준 사용 프레임워크 및 도구는 Spring Boot / Gradle / IntelliJ IDEA / FileZila 다.

 

지금부터는 방법이 매우 다양하다. 처음에는 테스트용으로 시범삼아 한다는 가정하에 가장 원시적으로 수행해본다.

서버가 많아진다면 해당 방법은 매우 귀찮을 수 있다. 따라서, CI/CD를 구축하여 이용하는 것이 좋다.

# 전체 빌드
./gradlew build

# 특정 모듈만 빌드
./gradlew {module-name}:bootJar

해당 명령어를 수행하면 모듈 ➡️ build ➡️ libs에 jar 파일이 생성된다.


jar 업로드

파일질라를 설치한다.

https://filezilla.softonic.kr/

 

FileZilla

신난다 무료 FTP 클라이언트

filezilla.softonic.kr

사이트 관리자를 선택하고,

새 사이트를 만들어 프로토콜을 SFTP로 설정하고 호스트 주소를 입력한다.

로그온 유형은 키 파일로 선택하고 사용자명(인스턴스 정보에 있습니다)과 생성할 때 등록한 SSH 키를 넣는다.

이후 연결이 완료되면 jar 파일을 본인이 원하는 위치에 업로드한다.


백그라운드 실행

jar 파일 실행은 다음과 같다.

$java -jar {jar_file} [ARGS] #ARGS는 환경변수로 설정했다면 안넣어줘도 된다.

하지만 이렇게 하면 어플리케이션에서 출력되는 로그때문에 따로 또 터미널을 열어야한다.

따라서 백그라운드에서 실행하도록 한다.

nohup 실행

nohup을 자세하게 다루지는 않고 간단한 수행만 해본다.

$nohup java -jar {jar_file} &

마지막에 &를 붙여야 백그라운드에서 동작한다.

동작 확인

$jobs

백그라운드에서 동작중인 프로세스들이 나온다.

정지

$kill -9 {PID}

해당 프로세스를 강제종료한다.


일단 이 방법은 가장 손쉽게 할 수 있는 빌드 & 배포방법이다.

하지만, 서버가 여러대가 된다면 jar 파일 하나당 위 방법을 반복해야 하는데 너무 귀찮아진다.

따라서 추후 Jenkins와 Docker를 이용해 CI/CD를 구축할 예정이다.

댓글