[NCP] MySQL 서버를 DataGrip과 연동

xeonu·2022년 12월 24일
0

Naver Cloud Platform

목록 보기
1/1

프로젝트 링크: https://github.com/f-lab-edu/Soccer-Friend

개요

프로젝트 진행중에 클라우드 환경에서 mysql 서버를 구축하고 외부 환경에서 JetBrain의 DataGrip을 통해 테이블을 관리하고자 한다. 정말 감사하게도 네이버 클라우드 플랫폼에서 크레딧을 지원받아 여유롭게 클라우드 환경을 구축할 수 있었다. 서버를 생성하는 과정은 생략하고 생성한 서버에 mysql을 설치하고 포트포워딩을 한 후 DataGrip과 연동하는 과정까지 알아보자.

서버 초기설정

server 생성

필자는 [Compact] 1vCPU, 2GB Mem [g1] 서버를 생성했다. DBMS용으로는 Cloud DB라는 제품도 존재하는데 해당 제품은 DBMS용 편의기능을 정말 많이 제공하지만 가격이 50프로 가량 더 비싸고 그런 편의기능을 사용하기 보다는 우분투 환경에서 하나하나 구축해 나가는 것이 학습에도 도움이 될 것 같아 해당 제품을 선택했다.

서버이미지에 mysql이 이미 설치되어 있는 제품도 있지만 필자는 우분투만 설치된 서버 이미지를 선택했다. 또 mysql 5.7버전까지만 제공하기 때문에 mysql 8.0을 설치하고자 한다면 필자와 같이 우분투만 설치된 서버 이미지를 선택하는 것이 낫다.

ACG 설정

AWS의 보안그룹에 해당하는 개념이다. 필자는 본인 집 ip와 3309 포트를 열었다. 바람직하진 않지만 접근소스를 0.0.0.0/0으로 설정하고 허용 포트를 1-65535로 설정하면 어디서나 모든 포트에 접속할 수 있다.

네이버 클라우스 플랫폼의 ip 체계에 대해서 간략하게 살펴보면 서버접속용 공인IP, 공인IP, 비공인IP가 존재한다.
서버접속용 공인IP는 내 네이버 클라우드 플랫폼 계정에 할당된 IP이다. 외부에서 내가 생성한 서버에 접속하려면 이 IP를 통해서 접속해야 한다.
노란색 영역은 내가 생성한 서버들에게 할당된 공간이다. 공인IP는 별도로 구매해야하며 서버를 종료해도 변하지 않는다. 하지만 비공인IP는 종료를 하면 IP가 변경될 수 있다.

또 리눅스 서버의 경우 서버 접속용 공인IP의 22번 포트를 통해서 서버접속을 해야한다.
네이버 클라우드 플랫폼의 IP 체계를 이해해야 외부 IDE와 연동할 때 혼동하지 않을 수 있다.

Mac SSH 접속

$ sudo ssh -l root -p <포트번호> <서버접속용 공인 IP>

Mac OS 사용자라면 터미널에 해당 명령어를 통해 외부에서 클라우드 서버에 접속할 수 있다.

MySQL 설치

우분투에 MySQL을 설치하면 된다. 필자는 apt를 통해서 설치했다.
설치방법: https://velog.io/@seungsang00/Ubuntu-%EC%9A%B0%EB%B6%84%ED%88%AC%EC%97%90-MySQL-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

설치는 다른 분께서 위 링크에 잘 정리하셨으니 참고바란다. 기억해야할건 mysql 내부에 user에 적절한 권한을 생성해주고 해당 user의 이름과 password만 기억하자.

DataGrip 연동

SSH tunnel 설정

ssh 터널에 관한 내용은 자세하게 설명하지 않겠다.

MySQL datasource를 생성해주고 SSH/SSL 탭에 들어간 후 SSH tunnel을 추가해준다.

SSH tunnel에 다음에 해당하는 값들을 입력해준다.

  • Host: 서버 접속용 ip
  • Port: 생성한 서버의 포트
  • Username: 서버 접속 계정 (기본은 root)
  • Passwrod: 서버 접속용 비밀번호(서버 선택 후 관리자 비밀번호 확인에 들어가면 초기 비밀번호 확인 가능)

Test Connection을 클릭 후 연결상태가 성공인지 확인한다.

General 설정


General에서는 클라우드 서버와의 연결이 아닌 MySQL과 연결하는 정보를 기입해주면 된다.

  • Host: (비)공인 IP
  • Port: mysql에 할당된 port (기본 3306)
  • User: mysql의 user
  • Password: mysql user의 password

Test Connection을 클릭 후 연결상태가 성공인지 확인한다.


이제 네이버 클라우드 플랫폼에서 서버를 생성한 후 로컬 환경에서 DataGrip을 통해 간편하게 테이블을 관리할 수 있다 :)

profile
백엔드 개발자가 되기위한 여정

0개의 댓글