본문 바로가기
CSE

Spring 프로젝트 GCP에 올리기 [무료계정]

by bartizan_ 2024. 9. 6.
728x90

📚 Spring 프로젝트의 서버를 gcp를 이용해 올리는 방법을 정리해 보겠습니다..! 매번 계속 찾아 하기 귀찮아서 요걸로 종결시키겠습니다. 계정은 아직 계속 지속될 서버를 올릴만한 일이 없는 관계로 무료계정을 파서 진행하는 방식으로 해보겠습니다!

 

📙계정 만들기

계정 하나를 새로 만들고, GCP 사이트에 들어가서 계정 인증을 진행해줍니다. 간단한 개인정보와 카드 정보를 입력하고 나면 무료 크레디트를 받은 것을 확인할 수 있습니다.

 

📘 DB 생성

제품 > 데이터베이스 만들기 클릭 > 데이터베이스 엔진 선택 (저는 mysql을 선택했습니다.)

 

cloud 버전 선택 등등을 진행하는데, 개인프로젝트 수준에선 가장 낮은 가격대로 설정해도 문제가 없습니다.

 

사용하지 않을 때는 끄는 것이 좋은것 같습니다.

 

https://cloud-allstudy.tistory.com/1989 참조하기 좋은 링크입니다.

 

어느정도 기본 세팅이 되면 크게 3가지를 해줘야 합니다.

 

1. 연결 > 네트워킹 > 네트워크 추가 > 0.0.0.0/0으로 해줘야 스프링에서 접근이 가능합니다.

2. cloud sql admin api 활성화

3. 데이터베이스 생성 

 

여기까지 설정을 완료해줬으면, 스프링의 application.properties에서 

spring.application.name= 설정한 db 이름
spring.datasource.url=jdbc:mysql://공개ip 주소:3306/car?useSSL=false&autoReconnect=true&serverTimezone=Asia/Seoul
spring.datasource.username= gcp설정 id
spring.datasource.password= gcp설정 pw
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

 

위와 같이 설정을 해주고 돌려보면 정상적으로 되는지 알 수 있습니다.

postman에서도 정상적으로 반응하는지 확인해 주면 db설정은 완료됩니다.

 

📗 spring 서버 올리기

db까지 올리는 것을 완료했는데요, 이제 본체를 서버로 올려보겠습니다. 

 

1. vm 인스턴스 생성

2. 이름 작성 > 머신 구성 E2 > 머신 유형 저는 e2-micro로 하겠습니다. 

3. 부팅 디스크는 ubuntu 로 진행했습니다.

4. 방화벽은 http, https 트래픽 허용 처리 해주고, 만들기 진행합니다.

 

이제 intellij 에서 jar 파일을 추출해야 하는데, 다른 방식보다는 Gradle task에서 build> bootjar를 클릭하면 build/libs에 생성되는 jar파일을 올려줄 겁니다.

 

여기서 먼저 방화벽 작업 먼저 해줍니다. 다시  GCP 메인에서 vpc 네트워크 > 방화벽에 들어가 줍니다. 

 

여기서 소스 ipv4 범위에 0.0.0.0/0을 추가해주고, tcp에 사용할 포트 번호인 8080을 입력해 줍니다.

 

 

sudo apt update

sudo apt-cache search openjdk

sudo apt-get install openjdk-17-jre
sudo apt-get install openjdk-17-jdk

java --version까지 진행해 줍니다.

 

jar파일을 업로드해주고, 

 

 

매번 여기서 삽질하는데 

 

vi /etc/systemd/system/${service name}.service
[Unit]
Description=Service Description
After=syslog.target network.target postgresql.service

[Service]
ExecStart=/bin/bash -c "exec java -jar jar위치 그대로"
Restart=on-failure
RestartSec=10

User=root
Group=root

[Install]
WantedBy=multi-user.target

 

find / -name "car-spring-0.0.1-SNAPSHOT.jar" 로 위치는 찾아주면 된다. 
 
이후
sudo systemctl daemon-reload
sudo systemctl start car.service
를 해주고 
 

sudo systemctl status car.service를 하면 돌아가는지 확인가능하다.

 

이렇게까지 하면 외부 ip로 접근 시에 구동이 가능해진다.

https://alisyabob.tistory.com/450 > 참고 페이지!

 

728x90

'CSE' 카테고리의 다른 글

[Spring Jwts] parser() 와 parserBuild()  (0) 2024.07.18
[Flutter] DART 기본문법  (1) 2024.02.07
[프로그래머스] ComponentScan, @Service  (0) 2023.07.19
springboot 게시판 따라만들기2  (0) 2023.06.01
SpringBoot 게시판 따라만들기1  (0) 2023.06.01

댓글