2024.09.09 - [Java/공중화장실 찾기] - 공중화장실 찾기 - 3 <네이버 지도 API 적용>
애플리케이션의 기능은 사실상 이전 포스팅에서 전부 다뤄보았다.
이번 포스팅에서는 기존에 로컬에서만 띄웠던 것을 GCP (Google Cloud Platform)을 이용하여 배포하려고 한다.
✅ VM 인스턴스 생성
1️⃣ Google Cloud Platform 가입
GCP의 경우 최초 가입 시 약 $300의 크레딧이 제공된다.
위 사진을 보면 $300가 제공되고 해당 금액을 전부 다 쓴 이후는 자동으로 청구되지 않기 때문에
잠시 사용하기 좋은 것 같다.
2️⃣ VM 만들기
- 이름: 원하는 VM 이름 기입
- 리전: 서버의 물리적 위치 > 한국 서비스는 서울 선택
- 시리즈: 가격과 성능에 따라 고려 > 본인은 E2-small 선택
- 부팅 디스크: 이미지와 크기를 서비스 상태에 따라 고려 > 본인은 10GB에 ubuntu 20.04 설정했다.
- ID 및 API 액세스: 액세스 범위 > 모든 Cloud API 대한 전체 액세스 허용 선택
방화벽 > "HTTP", "HTTPS" 트래픽 모두 선택
이제 만들기를 클릭하면 인스턴스가 생성된다.
여기서 SSH를 클릭하게 되면 생성된 VM에 접근할 수 있게 된다.
✅ 배포 작업
spring boot 프로젝트가 존재하고 linux에 대해 어느 정도 지식이 있다는 가정 하에 설명한다.
1️⃣ 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
2️⃣ MariaDB 설치
https://velog.io/@xangj0ng/Linux-Ubuntu-Mariadb-%EC%84%A4%EC%B9%98
DB 설치는 위 블로그를 참고하면 될 것 같다.
참고로 MariaDB를 설치하고 난 뒤에는 대소문자 구분을 하지 않는 설정을 해야 한다.
해당 설정을 하지 않은 채 테이블을 만들었다가 애플리케이션이 테이블 이름을 찾지 못하는 불상사가 나타났었다.
대소문자 구분의 경우는 위 블로그를 참고하면 될 것 같다.
3️⃣ Project Build
기본적으로 ubuntu에 git을 설치한 뒤 github에 있는 repository를 clone 하는 것까지는 진행했다고 가정하고 시작한다.
https://coding-factory.tistory.com/502
위 블로그 참고하면 될 것 같다.
기본적으로 gradlew는 필자와 다르게 하얀색으로 표시될 것이다. 해당 파일은 chmod를 통해 권한을 변경해줘야 한다.
> chmod +x gradlew
그리고 프로젝트를 빌드한다. > ./gradlew build
그리고 백그라운드에서 프로젝트를 실행시키면 마무리
> nohup java -jar {jar name} &
4️⃣ 방화벽 규칙 생성
애플리케이션 기동까지 완료했다고 해서 마무리되는 것이 아니고 VM 인스턴스에서 방화벽 규칙을 통해
포트를 외부에서 접근할 수 있도록 열어줘야 한다.
필자는 spring boot project가 8080 포트를 쓰고 DB가 3306 포트를 쓰기 때문에 2개의 포트를 설정해 뒀다.
✅ 마무리
GCP라는 것을 처음 쓰다 보니 VM을 생성하고 내부에 파일을 넣는 등등 고난이 있었지만 금방 해결한 것 같다.
이 글을 통해 다들 쉽게 프로젝트를 배포하면 좋을 것 같다.
https://github.com/Kimmingki/suddenPoo
'Java > 공중화장실 찾기' 카테고리의 다른 글
공중화장실 찾기 - 3 <네이버 지도 API 적용> (2) | 2024.09.09 |
---|---|
공중화장실 찾기 - 2 <공공데이터 가공> (3) | 2024.09.08 |
공중화장실 찾기 - 1 <프로젝트 생성 및 네이버 지도 API 적용> (1) | 2024.09.06 |