[NCP] Cloud DB for MySQL 생성 & Timezone 변경 가이드

네이버클라우드의 데이터베이스 상품에 대해 알아보자

BrickMate
BrickMate Cloud

--

안녕하세요.
브릭메이트 Arnold 입니다.

오늘은 NCP에서 제공 하고 있는 완전 관리형 데이터 베이스 서비스인
Cloud DB for MySQLtimezone 변경에 대해 정리 해 보겠습니다.

MySQL을 이용한 완전 관리형 클라우드 데이터베이스

네이버클라우드의 최적화 설정을 통해 별도 작업 없이 MySQL 데이터베이스를 설치하고 운영할 수 있는 완성형 서비스입니다.

참고 : Cloud DB for MySQL 상품 소개 : https://www.ncloud.com/product/database/cloudDbMysql

Timezone 내용을 알아 가기 전에 먼저 Cloud DB for MySQL 부터 생성 합니다.

VPC-Subnet 생성

VPC 생성

VPC환경에서 작업할 것이므로 우선 VPC를 생성합니다.

Subnet 생성

Subnet 설정은 [Public]과 [일반]을 선택합니다.

Cloud DB for Mysql 생성

이전에 생성한 VPC & Subnet 을 선택 하고 DB Server 이름과 DB 명을 입력 해 줍니다.

user id 와 password 및 HostIP 를 “%” 로 설정 합니다.
(모든 Client IP 접속 허용)

최종 확인 후 DB 서버를 생성 합니다.

ACG 확인 & DB 접속

ACG 확인

  • DB 생성 시 자동으로 만들어진 ACG를 수정합니다.

Server > ACG > cloud-mysql-* > ACG 설정

Inbound rule > 접근소스 0.0.0.0 / 3306 port 추가 > 적용

DB 접속

Cloud DB for MySQL > DB 관리 > Public 도메인 관리 > Public 도메인 신청

ACG 수정이 완료 되었다면, 로컬에서 DB로 접속 하기 위한 Public 도메인을 신청 합니다.

Public 도메인 설정이 완료 되었다면, 해당 도메인 URL로 DB에 접속 해 봅시다.

저는 MySQL WorkBench 앱을 사용하여 접속 해 보겠습니다.

Hostname : Public 도메인 입력
Username : DB 생성시 설정한 User_id 입력
Password : DB 생성시 설정한 Password 입력

DB 정보들을 기입 후 OK를 누르고 생성된 Connection에 접속 합니다.

DB 접속을 완료 하였으니 이제 Timezone에 대해 알아 보겠습니다.

Timezone?

타임존이란 동일한 로컬 시간을 따르는 지역을 의미합니다.

  • 해당 국가에 의해 법적으로 지정되며, 국가별로 각자의 고유한 타임존을 사용합니다.
  • 면적이 넓은 나라인 경우 지역별로 다른 타임존을 사용하기도 합니다.

Timezone의 중요성

개발하고 있는 프로그램과 연동된 Database의 Timezone이 맞지 않을 경우, 스케줄링에 따라 데이터베이스 배치처리를 한다거나 할 때 시간이 다르기 때문에 동작이 안 될 수도 있습니다.

또한 이러한 문제는 EC2(리눅스) <-> 프로그램 간의 시간이 맞지 않을 때에도 많은 문제를 일으키기도 합니다.

왜냐하면 개발자의 의도에 따른 프로그래밍은 A라는 시간에 맞추어 놓았는데 B라는 시간을 가지고 사용하거나 비교하기 때문 입니다.

이러한 문제는 기존에 데이터베이스에 시간을 저장해 놓고 해당 시간 데이터들 만을 사용하여 연산한다면 문제가 없지만,

데이터베이스 서버에서의 함수로 시간을 가지고 와서 비교한다던지 할 때 문제가 발생합니다.

현재 Timezone 확인

MySQL Workbench에서 현재 접속한 DB의 Timezone을 확인 해 보겠습니다.

SELECT @@GLOBAL.time_zone, @@SESSION.time_zone, @@system_time_zone;

현재 timezone은 UTC +09:00 (KST)로 한국 표준시로 확인 됩니다.

그럼, 저희는 현재 KST인 timezone 값을 협정 세계시 UTC +00:00으로 바꿔 보겠습니다.

Timezone 변경 하기

AWS의 완전 관리형 데이터베이스 서비스인 RDS 같은 경우에는
파라미터 그룹”의 timezone 값을 추가하면 되지만

NCP의 Cloud DB for Mysql 서비스는 “Database Config” 를 추가 해줘야 합니다.

Cloud DB > DB Config 관리 > default-time-zone 의 값 추가 > 저장

default-time-zoneconfig 값합정 세계시인 +00:00 으로 추가 후 저장 합니다.

DB 설정 적용이 완료 되었으면 Timezone 확인을 위해 다시 WorkBench 에서 SQL을 실행 해 봅니다.

SELECT @@GLOBAL.time_zone, @@SESSION.time_zone, @@system_time_zone;

SQL 실행 후 global timezone과 session timezone이 +00:00으로 바뀐 것을 확인 할 수 있습니다.

system timezone 값은 KST(한국)로 확인이 되지만 실제 global / session timezone(UTC+00:00) 설정에 영향을 주지는 않습니다.

이렇게 Cloud DB for MySQL 생성 및 Timezone 설정하는 법에 대해 알아 보았습니다.

감사합니다.

#브릭메이트 #Brickmate #NCP #DB #Cloud DB for MySQL #Timezone
#네이버클라우드 #Ncloud #Nclouder

--

--