회사 AWS의 무료 크레딧이 얼마 남지 않았다.
그리고 GCP 측과의 미팅 후 GCP로 가기로 했다. 이 결정에는 경제적인 이유가 컸다.
AWS에서 이용중인
EC2 10개 가량의 인스턴스들
, RDS
, AWS Lambda
, CodeDeploy
, CodeBuild
, CodePipeline
을 옮기려고 한다.
이 과정에서 목표를 설정했다.
- 운영중인 서비스가 멈추는 시간은 최대한 유저가 이용하지 않는 시간대에 최소가되게 한다.
(+ DNS, RDS 사전 준비 필요)- 기존 서버 내장 MySQL DB를 사용하는 테스트 서버는
GCP - SQL
에 데이터베이스로 옮긴다. (크레딧 여유 때문)- Github Actions로 자동배포는 통일화한다.
일단 VM을 만들어고 서비스를 자동배포로 올려보자
(ssh 키
, User
설정은 패스)
접속까지 성공
sudo apt update
# 스프링 부트 버전에 맞는 jdk 설치
sudo apt-cache search openjdk
sudo apt-get install openjdk-17-jdk
java --version
GCP의 SQL을 이용해보자
인스턴스 생성 -> 연결에 외부 접속 허용할 IP 등록 -> 사용자 계정 추가
공개 IP 주소에 맞게
등록한 계정에 맞게 공개 주소 IP를 Host에 입력
-> Test Connection
-> 성공!
실제 데이터베이스 생성시 권한 오류
GCP SQL > DB > 데이터 베이스 만들기
에서 생성
-> 후 SHOW DATABASES
쿼리에 생성된 DB 보이지 않음
(DB 접속 사용자 계정 권한 문제라고 짐작)
개요 > CLOUD SHELL
-> mysql 접속 root 계정 로그인
GCP SQL shell에서 DB 확인
원격에서 로그인한 계정에 해당 DB 접근 권한 부여
DB 확인 가능
해당 DB에 Export
덤프 성공
GCP DB에 SQL 입력
file 드래그 IntelliJ DB툴에서 실행
Run
실행 성공
GCP
환경에 Github Actions
배포는 다음 글로