- TIL -
구현 목표)
AWS 의 RDS 서비스를 이용하다가 17만원이 과금된 적이 있으므로 AWS 서비스는 뒤로하고 Google 의 GCP 서비스를 이용해 볼 생각이다.
구글에서 제공하는 클라우드 서비스인 GCP 서버를 활용하여 구현중인 Spring Boot 프로젝트를 배포해볼 예정이다.
배포될 서버는 API 서버이며 GCP 무료 서버 설정은 아래 블로그를 참고하였다.
[Linux] GCP 무료 티어 서버 만들기
GCP에서 무료 티어 서버를 만들어보자. 1. GCP 홈페이지 방문 구글 계정 로그인 후 아래 GCP 홈페이지에 들어간다. https://cloud.google.com/free?hl=ko 들어가서 '무료로 시작하기' 버튼을 클릭한다. 그러면
velog.io
참고가 된 블로그에 무한한 감사를 드립니다
구현 과정)
1. GCP 에서 VM(가상머신) 을 생성
2. JAVA 설치
더보기
![](https://blog.kakaocdn.net/dn/nPgRw/btsKLyrjlSi/0y4Nm2Dpgxc2uAedSIMZgK/img.png)
설치된 패키지를 업데이트
![](https://blog.kakaocdn.net/dn/QiCCb/btsKM1MA1px/IpsjaXwSWU3O2U2rdAawUk/img.png)
apt 저장소를 사용하여 openjdk 21 버전을 설치
![](https://blog.kakaocdn.net/dn/vu7Nn/btsKLooOvER/icxnIKTusirUaVpJilmmX0/img.png)
java -version 명령어를 사용하여 설치된 자바 버전을 확인
![](https://blog.kakaocdn.net/dn/nPgRw/btsKLyrjlSi/0y4Nm2Dpgxc2uAedSIMZgK/img.png)
![](https://blog.kakaocdn.net/dn/QiCCb/btsKM1MA1px/IpsjaXwSWU3O2U2rdAawUk/img.png)
![](https://blog.kakaocdn.net/dn/vu7Nn/btsKLooOvER/icxnIKTusirUaVpJilmmX0/img.png)
3. 빌드된 파일을 보관할 디렉토리 생성
더보기
![](https://blog.kakaocdn.net/dn/ZmYiE/btsKK27uwfW/nz0EvoqbRc4Gp0ClP6m6uK/img.png)
빌드 파일을 보관할 randomchat 경로 생성
![](https://blog.kakaocdn.net/dn/ZmYiE/btsKK27uwfW/nz0EvoqbRc4Gp0ClP6m6uK/img.png)
4. MySQL 설치 및 설정
더보기
![](https://blog.kakaocdn.net/dn/nPgRw/btsKLyrjlSi/0y4Nm2Dpgxc2uAedSIMZgK/img.png)
설치된 패키지를 업데이트
![](https://blog.kakaocdn.net/dn/wldIQ/btsKL17RPt4/8uZoDcr4X819ClmOhQZlh1/img.png)
mysql 설치
![](https://blog.kakaocdn.net/dn/c4QNwg/btsKMlkqd59/NHcHdERxdfz6MrM7WV8FB0/img.png)
mysql 포트 허용
![](https://blog.kakaocdn.net/dn/dPTbkK/btsKM2kptBU/YR9jKfhqKmoQllneqd0fOk/img.png)
mysql 데몬 실행 및 서버 재부팅 시 자동 실행 설정
![](https://blog.kakaocdn.net/dn/FQjNS/btsKMnWUTgc/mJehZPmwdsvvxZxt9yNbnK/img.png)
mysql root 계정으로 접속
![](https://blog.kakaocdn.net/dn/bl8en0/btsKMnCAujC/9EKkA0iSbgZXmCK13ZViVK/img.png)
root 계정 비밀번호 변경 후 변경사항 FLUSH PRIVILEGES 로 적용
![](https://blog.kakaocdn.net/dn/TEKxk/btsKK36wVPg/bBjkhrPsOXRaoH4QYG6sOK/img.png)
sudo 를 제외하고 mysql 을 root 권한으로 접속 >> 비밀번호 입력 후 엔터
![](https://blog.kakaocdn.net/dn/btAoFl/btsKM3wRRa9/73Bz5GQd1H9a3uUjKEzOkk/img.png)
DB 관리용 유저 아이디를 생성 ( 빨간색 : 비밀번호 ), root 권한을 모두 부여
![](https://blog.kakaocdn.net/dn/bxQFsu/btsKMKRRdu5/IfLOLKwpy1CpnIJcZiAjO1/img.png)
vi 편집기를 사용하여 외부에서 sql 서버에 접속가능하게끔 설정
![](https://blog.kakaocdn.net/dn/buMbtV/btsKLsYZNi5/PIjzvMaMYAYZqoK0auYbE1/img.png)
기존의 127.0.0.1 인 로컬에서만 접속 가능하던 아이피를 외부에서도 접근 가능하게 0.0.0.0 으로 수정 후 저장
![](https://blog.kakaocdn.net/dn/bH0VQs/btsKLc3ezDO/4RV6vDtFbXukE4PJ3IVsTk/img.png)
sql 데몬을 종료 후 재시작
![](https://blog.kakaocdn.net/dn/Zq3eg/btsKMbPQfrq/2OAAoutK3hQ7F924Akritk/img.png)
mysql 서버의 시간을 서울 시간 기준으로 변경
![](https://blog.kakaocdn.net/dn/0uQIQ/btsKLqmFRVW/nDmrds7aMx4pLoGwxBwVN0/img.png)
데몬 재실행
![](https://blog.kakaocdn.net/dn/bBNWL5/btsKL9dJ0cJ/awuZoENzqIw5ArfmK0Ailk/img.png)
사용자 계정으로 로그인 ( 비밀번호 입력 )
![](https://blog.kakaocdn.net/dn/blsgd1/btsKMOUe1c3/ZeRQgckdHdTeziqLttWYpK/img.png)
Spring 프로젝트에서 jpa 를 활용하여 사용할 데이터베이스 생성 후 종료
![](https://blog.kakaocdn.net/dn/nPgRw/btsKLyrjlSi/0y4Nm2Dpgxc2uAedSIMZgK/img.png)
![](https://blog.kakaocdn.net/dn/wldIQ/btsKL17RPt4/8uZoDcr4X819ClmOhQZlh1/img.png)
![](https://blog.kakaocdn.net/dn/c4QNwg/btsKMlkqd59/NHcHdERxdfz6MrM7WV8FB0/img.png)
![](https://blog.kakaocdn.net/dn/dPTbkK/btsKM2kptBU/YR9jKfhqKmoQllneqd0fOk/img.png)
![](https://blog.kakaocdn.net/dn/FQjNS/btsKMnWUTgc/mJehZPmwdsvvxZxt9yNbnK/img.png)
![](https://blog.kakaocdn.net/dn/bl8en0/btsKMnCAujC/9EKkA0iSbgZXmCK13ZViVK/img.png)
![](https://blog.kakaocdn.net/dn/TEKxk/btsKK36wVPg/bBjkhrPsOXRaoH4QYG6sOK/img.png)
![](https://blog.kakaocdn.net/dn/btAoFl/btsKM3wRRa9/73Bz5GQd1H9a3uUjKEzOkk/img.png)
![](https://blog.kakaocdn.net/dn/bxQFsu/btsKMKRRdu5/IfLOLKwpy1CpnIJcZiAjO1/img.png)
![](https://blog.kakaocdn.net/dn/buMbtV/btsKLsYZNi5/PIjzvMaMYAYZqoK0auYbE1/img.png)
![](https://blog.kakaocdn.net/dn/bH0VQs/btsKLc3ezDO/4RV6vDtFbXukE4PJ3IVsTk/img.png)
![](https://blog.kakaocdn.net/dn/Zq3eg/btsKMbPQfrq/2OAAoutK3hQ7F924Akritk/img.png)
![](https://blog.kakaocdn.net/dn/0uQIQ/btsKLqmFRVW/nDmrds7aMx4pLoGwxBwVN0/img.png)
![](https://blog.kakaocdn.net/dn/bBNWL5/btsKL9dJ0cJ/awuZoENzqIw5ArfmK0Ailk/img.png)
![](https://blog.kakaocdn.net/dn/blsgd1/btsKMOUe1c3/ZeRQgckdHdTeziqLttWYpK/img.png)
5. 기존 프로젝트에 MySQL 의존성 추가 및 DB 접속 설정 파일 작성
더보기
![](https://blog.kakaocdn.net/dn/HZbh7/btsKLd15Iul/KYaK4b3W5K5PKgJTQMTjH0/img.png)
build.gradle 에 mysql 의존성 추가
![](https://blog.kakaocdn.net/dn/evSsvC/btsKMHt4RNy/GY5rkJvcIfI40TRGdL4Gik/img.png)
기존에 사용하던 개발용 H2 데이터베이스의 설정 값을 주석처리한 뒤 mysql 서버의 값으로 변경
![](https://blog.kakaocdn.net/dn/HZbh7/btsKLd15Iul/KYaK4b3W5K5PKgJTQMTjH0/img.png)
![](https://blog.kakaocdn.net/dn/evSsvC/btsKMHt4RNy/GY5rkJvcIfI40TRGdL4Gik/img.png)
6. VM 방화벽 설정
이제 MySQL 설정과 JAVA 설치는 모두 끝났으니 다음 글에서는 프로젝트 파일을 jar 파일로 변경하여 가동중인 GCP 서버에 jar 파일을 전송하여 서버를
돌려볼 것이다.
728x90
'TIL' 카테고리의 다른 글
[TIL] 2024.11.19 - GCP 를 활용하여 Spring Boot 프로젝트를 배포해보기2 (0) | 2024.11.19 |
---|---|
[TIL] 2024.11.18 - jsp 를 활용하여 이메일 인증 코드 발송하기 (2) | 2024.11.18 |
[TIL] 2024.10.17 - Security 의 검증 값을 기준으로 User 의 정보 가져오기 (0) | 2024.10.17 |
[TIL] 2024.10.07 - [Spring Security] JWT 내부 Role 값을 확인하여 권한 처리하기 (1) | 2024.10.07 |
[TIL] 2024.10.04 - [Spring Security] json 데이터로 로그인 처리하기 (1) | 2024.10.04 |