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/
사이트 관리자를 선택하고,
새 사이트를 만들어 프로토콜을 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를 구축할 예정이다.
'Cloud Platform' 카테고리의 다른 글
[Oracle Cloud Infrastructrue] 오라클 A1(ARM) 인스턴스 생성 스크립트 (0) | 2023.01.06 |
---|---|
[Oracle Cloud Infrastructure] 오라클 클라우드 배포 과정 정리(1) (0) | 2023.01.04 |
댓글