Spring boot project 를 클라우드로 배포하는 과정을 정리함
아래의 클라우드 사이트 계정 가입 한다.
처음 가입 시 $300 크레딧 제공
GCP는 프로젝트 단위로 리소스/서비스를 관리 함
즉, 프로젝트 생성 후에 프로젝트 내에서 VM 인스턴스를 생성/사용하는 방식이다.
원하는 인스턴스 이름 사용
서버의 물리적 위치, 한국 서비스라면 서울로 선택 하면 된다.
머신 구성 선택,
나는 E2, e2-micro 또는 e2-small 정도 사용한다.
가격과 성능에 따라 선택 하면 된다. (추후 업그레이드 가능)
원하는 운영체제 선택,
나는 Ubuntu , 20.4 버전 선택 했다.
액세스 범위 - 모든 Cloud API 대한 전체 액세스 허용 선택
방화벽 - "HTTP", "HTTPS" 트래픽 모두 선택
하단의 만들기 선택 후 1분 안쪽으로 기다리면 인스턴스가 생성된다.
외부 IP : 외부 브라우저 등을 통해 접근 가능한 주소
SSH : 버튼을 클릭하면 해당 인스턴스의 웹 콘솔로 접근 할 수 있다.
Spring boot project가 있다는 가정 하에 시작한다.
sudo passwd
sudo su
모든 기존 패키지가 최신 상태인지 확인
sudo apt update
사용가능한 목록 찾기
sudo apt-cache search openjdk
OpenJDK17 - JRE, JDK 설치
sudo apt-get install openjdk-17-jre
sudo apt-get install openjdk-17-jdk
자바 버전이 확인 되면 설치가 완료 된 것!
java --version
root@instance-1:/home/abcd# java --version
openjdk 17.0.4 2022-07-19
OpenJDK Runtime Environment (build 17.0.4+8-Ubuntu-120.04)
OpenJDK 64-Bit Server VM (build 17.0.4+8-Ubuntu-120.04, mixed mode, sharing
JAR(Java Archive)
JAVA 어플리케이션 동작 할 수 있도록 한 자바 프로젝트 압축 파일
STS4 , Gradle 로 jar 파일 만들기
우측 상단에 돋보기 모양을 클릭한 후 Gradle Tasks를 클릭하면 콘솔창에 Gradle Tasks창이 오픈된다.
아래의 bootJar를 클릭하면 빌드가 완료 된다.
빌드된 빌드파일은 해당 프로젝트 폴더 내의 build > libs
에 있다.
Extensions 에서 Remote - SSH
설치 하면 하단에 Remote Explore
가 보여진다.
Remote Explorer 에서 SSH Targets을 선택 후 Add New 클릭
ssh 계정이름@외부ip(연결할 ip) 입력 및 톱니바퀴모양 클릭 후 config 파일 수정
Host : 원하는 이름
HostName : VM 외부 IP
User : VM User nm
IdentifyFile : 키 파일 경로
연결시도 후 연결 성공 ~!
.jar 파일 이동
EXPLORER
이동 후 상단 바의 File > OpenFolder
클릭하면 아래와 같이 경로를 설정할 수 있다.
경로 설정 후 원하는 폴더에 .jar
파일을 이동 시킨다.
# 백그라운드 .jar 파일 배포
nohup java -jar [jar파일명].jar
nohup java -jar ilaapi-0.0.1-SNAPSHOT.jar
nohup.out 을 클릭해서 보면 서버가 올라간 것을 알 수 있다~!
http://34.64.***.***:9090/swagger-ui/index.html
설정해 둔 스웨거를 열면 성공~!
나는 스프링부트 프로젝트 서버를 9090을 사용하고 있었는데 (기존 작업하던 포트가 80 이어서 계속 죽이기 귀찮았음)
클라우드 VM 사용할때 무조건 Port를 열어줘야 사용이 가능하다.
https://console.cloud.google.com/networking/firewalls/list?project=solar-semiotics-366106
VPC 네트워크 > 방화벽 > 방화벽 규칙만들기
아래와 같이 설정 후 저장을 누른다!
끝! 수고했습니다~! 👻