본문 바로가기

cloud

[NCP] Naver Cloud Platform 활용기 - (2) Cloud DB for MySQL 생성하기

Naver Cloud Platform 활용기 - (1) server 생성하기
Naver Cloud Platform 활용기 - (2) Cloud DB for MySQL 생성하기
Naver Cloud Platform 활용기 - (3) docker 기반 애플리케이션 배포
Naver Cloud Platform 활용기 - (4) pinpoint를 활용한 시스템 모니터링
Naver Cloud Platform 활용기 - (5) jmeter를 활용한 load test와 pinpoint 모니터링

 

Cloud DB for MySQL

토이 프로젝트용으로 활용하기 위해서 클라우드 server에 mysql 서버를 직접 설치하여 구성해도 상관은 없다. 하지만 application server와 db server의 자원을 분리하여 application에 대한 정확한 성능 테스트를 하기 위해 DB server도 분리하였다.

NCP에서는 MySQL, MSSQL, PostgreSQL, Redis, MongoDB를 Cloud로 지원한다. 이외에도 서버 이미지로 직접 구축해서 사용하면 MariaDB, Tibero 등도 사용할 수 있다.

NCP에서 지원하는 Cloud DB는 다음 링크에서 확인할 수 있듯이 db 최적화, auto failover, master-slave 읽기 쿼리 분산, 자동 백업 및 복원, 모니터링 등의 기능을 제공한다. https://www.ncloud.com/product/database/cloudDbMysql

읽기 쿼리 분산은 ncp에서 제공하는 load balancer를 신청하고 추가로 ACG 설정을 해주어야 한다.

자세한 설치는 다음 링크에서 확인할 수 있다. https://guide.ncloud-docs.com/docs/database-database-5-2

 

MySQL server 생성

콘솔에서 Services - Database - Cloud DB for MySQL에 들어와서 'DB Server 생성'을 할 수 있다.

 

DB 엔진 버전을 선택하고 DB Server 타입과 스펙을 선택한다. Standard, High Memory, High CPU 타입 중 기본적으로 standard 타입을 선택하였다. 계산 cost가 높다면 High CPU, 메모리를 많이 써야 한다면 High Memory를 필요에 따라 선택하면 된다. 고가용성을 선택하면 Master DB와 Standby-Master DB 2개의 서버가 생성되는데, 하나의 DB 서버가 다운되면 DNS 방식 이중화를 통해 Standby 중인 Master DB로 전환하여 failover 된다.

DB Server 이름을 설정하면 slave server 생성 시 자동으로 sequence가 증가하게 된다. DB 서비스 이름은 각 서버들을 역할별로 그룹핑 할 수 있는 기능을 제공한다.

 

이후 DB 설정을 한다. 관리자용 사용자의 ID를 설정하고(root로 설정하였다), DB에 접근 가능한 호스트의 IP를 넣는다. '%'를 넣으면 모든 호스트가 접근 가능하고, x.x.x.x 형식으로 특정 호스트만 접근하게 할 수도 있다. 1.1.1.% 방식으로 선택하면 특정 대역의 네트워크를 가진 호스트만 접근하게도 할 수 있다.

DB에 접속할 수 있는 port(mysql은 기본 3306)를 설정하고, 기본적으로 생성될 DB명을 입력한다.

 

최종 등록 후 몇 분 기다리면 다음과 같이 서버가 생성이 완료된다.

 

DB 서버 접속

서버 접속은 다음의 링크에서 확인할 수 있다. https://guide.ncloud-docs.com/docs/database-database-5-10

여러 방법이 있지만 이 중에서 가장 익숙한 Public 도메인을 활용해 MySQL workbench에서 접속하는 방법을 선택하였다.

우선 아래와 같이 Public 도메인을 신청한다.

 

해당 서버에 접속할 수 있는 포트를 설정해주어야 하는데, DB는 ACG가 기본적으로 하나 설정되어 있다. 3306 포트에 대해 특정 도메인에서 접근할 수 있게 되어 있는데, 서버 접속을 할 호스트 IP를 명시해서 3306 포트에 추가 맵핑시켜주면 된다. 현재 네트워크에서만 접근할 것이기 때문에 우선은 내 local public IP를 설정하였고, 추후 애플리케이션 서버에서도 접근할 것이기 때문에 ACG에 해당 서버의 public IP도 할당해주었다.

 

이제 MySQL Workbench를 실행해 connection name, hostname(public 도메인), port, username을 입력하고 접속하면 비밀번호를 입력한 뒤 정상적으로 DB 서버에 접속할 수 있다.