본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Backend.DevLog/Server

Spring 프로젝트 GCP (Google Cloud Platform) 서버 배포

by 케리's 2022. 10. 31.

1. 개요

Spring boot project 를 클라우드로 배포하는 과정을 정리함

2. VM 인스턴스 생성

1) google cloud 가입

아래의 클라우드 사이트 계정 가입 한다.
처음 가입 시 $300 크레딧 제공

https://cloud.google.com/

2) 프로젝트 만들기 (VM 인스턴스 생성)

GCP는 프로젝트 단위로 리소스/서비스를 관리 함
즉, 프로젝트 생성 후에 프로젝트 내에서 VM 인스턴스를 생성/사용하는 방식이다.

(1) 이름

원하는 인스턴스 이름 사용

(2) 리전

서버의 물리적 위치, 한국 서비스라면 서울로 선택 하면 된다.

(3) 시리즈

머신 구성 선택,
나는 E2, e2-micro 또는 e2-small 정도 사용한다.
가격과 성능에 따라 선택 하면 된다. (추후 업그레이드 가능)

(4) 부팅 디스크

원하는 운영체제 선택,
나는 Ubuntu , 20.4 버전 선택 했다.

 

 

(5) ID 및 API 액세스

액세스 범위 - 모든 Cloud API 대한 전체 액세스 허용 선택
방화벽 - "HTTP", "HTTPS" 트래픽 모두 선택

(4) 만들기

하단의 만들기 선택 후 1분 안쪽으로 기다리면 인스턴스가 생성된다.

외부 IP : 외부 브라우저 등을 통해 접근 가능한 주소
SSH : 버튼을 클릭하면 해당 인스턴스의 웹 콘솔로 접근 할 수 있다.

 

 

3. 배포 작업

Spring boot project가 있다는 가정 하에 시작한다.

1) root 계정 비번 설정 및 이동

sudo passwd
sudo su

2) Java 설치

모든 기존 패키지가 최신 상태인지 확인
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

3) Spring project .jar 파일 만들기

  • JAR(Java Archive)
    JAVA 어플리케이션 동작 할 수 있도록 한 자바 프로젝트 압축 파일
  • STS4 , Gradle 로 jar 파일 만들기

우측 상단에 돋보기 모양을 클릭한 후 Gradle Tasks를 클릭하면 콘솔창에 Gradle Tasks창이 오픈된다.

아래의 bootJar를 클릭하면 빌드가 완료 된다.

빌드된 빌드파일은 해당 프로젝트 폴더 내의 build > libs 에 있다.

 

 

4) 로컬 pc에서 원격 VM 에 이동 (.jar 파일)

" ssh key 생성 및 자세한 연결 내용" 아래 참고

https://velog.io/@hyeri_hello/Mac-OS-SSH-%EC%A0%91%EC%86%8D-%EB%B0%A9%EB%B2%95-%EB%A1%9C%EC%BB%AC-%EC%9B%90%EA%B2%A9-GCP-%ED%99%9C%EC%9A%A9

  • VS Code 활용
    가장 쉽게 접하는 VS Code IDE를 이용해 이동 시킬 수 있다.
  1. Extensions 에서 Remote - SSH 설치 하면 하단에 Remote Explore 가 보여진다.
  2. Remote Explorer 에서 SSH Targets을 선택 후 Add New 클릭
  3. ssh 계정이름@외부ip(연결할 ip) 입력 및 톱니바퀴모양 클릭 후 config 파일 수정

    Host : 원하는 이름
    HostName : VM 외부 IP
    User : VM User nm
    IdentifyFile : 키 파일 경로
  4. 연결시도 후 연결 성공 ~!
  5. .jar 파일 이동

EXPLORER 이동 후 상단 바의 File > OpenFolder 클릭하면 아래와 같이 경로를 설정할 수 있다.
경로 설정 후 원하는 폴더에 .jar 파일을 이동 시킨다.

  1. console 창을 열고 실행 명령어를 입력하면 배포가 완료된다.
# 백그라운드 .jar 파일 배포

nohup java -jar [jar파일명].jar

nohup java -jar ilaapi-0.0.1-SNAPSHOT.jar

nohup.out 을 클릭해서 보면 서버가 올라간 것을 알 수 있다~!

5) 브라우저 실행

http://34.64.***.***:9090/swagger-ui/index.html

설정해 둔 스웨거를 열면 성공~!

4. url 연결 오류시 참고 사항 (외부 접속 포트 설정)

나는 스프링부트 프로젝트 서버를 9090을 사용하고 있었는데 (기존 작업하던 포트가 80 이어서 계속 죽이기 귀찮았음)

클라우드 VM 사용할때 무조건 Port를 열어줘야 사용이 가능하다.

https://console.cloud.google.com/networking/firewalls/list?project=solar-semiotics-366106

VPC 네트워크 > 방화벽 > 방화벽 규칙만들기 아래와 같이 설정 후 저장을 누른다!

끝! 수고했습니다~! 👻

댓글