MariaDB 설치형 서비스 소개

네이버 클라우드 MariaDB 설치형 서비스의 개념과 기본 구조를 설명합니다.

"MariaDB"는 MySQL과 동일한 소스코드를 기반으로 한 오픈소스 관계형 데이터베이스(RDBMS)인 MariaDB를 이용하고 있습니다.

MariaDB

MariaDB는 MySQL 개발자들이 만든 세계에서 널리 사용되는 관계형 데이터베이스입니다. MariaDB는 스토리지 엔진, 플로그인 및 기타 여러 도구를 제공하며, 빠르고 확장 가능한 구조로 되어있어 다양한 용도로 사용할 수 있습니다.

네이버 클라우드 MariaDB 설치형 서비스 구성

설치형 서비스

네이버클라우드에서 지원하는 MariaDB 설치형 서비스의 경우 DB 설치에 대해 원활한 운영표준을 제시하는 환경파일을 제공합니다. 이에 관련하여 DB 설치 이외 부분에 대해서는 기술 지원하지 않고 있습니다.

RPM/APT

MariaDB 설치 방법에는 Source Compile 설치 방법, RPM/APT 설치 방법, Binary 설치 방법이 있으며, 네이버 클라우드에서는 Normal Install 방법인 RPM(APT) 설치이미지를 제공합니다. RPM(APT)에서 사용하는 .repo 파일은 MariaDB에서 공식적으로 제공하는 파일을 사용하여 설치를 진행하며 Repo에서 제공하는 Latest Version을 기본으로 하여 서버 이미지에 포함하여 제공합니다.

RPM Install

CentOS 7.x with MariaDB에서 사용하는 RPM 설치되는 패키지입니다.

APT Install

Ubuntu 16.X with MariaDB에서 사용하는 APT로 설치되는 패키지입니다.

Recommanded Parameters

네이버 클라우드내의 MariaDB 설치형 이미지에서 표준화하여 Recommanded Parameter는 아래와 같이 구성됩니다.

  • innodb_file_per_table
  • innodb_log_file_size = 512M
  • innodb_log_files_in_group = 2
  • default_storage_engine=InnoDB
  • query_cache_type = ON
  • query_cache_size = 0M
  • sysdate-is-now
innodb_file_per_table

테이블스페이스로 사용하는 경우 테이블 Drop시 이미 늘어난 물리 크기는 줄어들지 않기 때문에 테이블 삭제 시 물리 크기 확보를 위해 옵션을 사용합니다.

Innodb_log_file_size / innodb_log_files_in_group

Heavy Traffic을 들어오는 경우 CheckPoint를 위한 병목현상을 방지하기 위해 innodb_log_file_size 옵션을 늘려주어 설정합니다.
해당 Variables을 조정하기 위해서는 DB Restart가 필요합니다.

default_storage_engine

Online-DDL및 Transction 사용이 가능한 InnoDB로 표준 지정합니다.

query_cache_type / query_cache_size

DB기동후 query_cache를 사용자가 동적으로 ON/OFF할수 있도록 ON / 0으로 설정합니다. 이후 서비스 상황에 맞도록 조정합니다.

sysdate-is-now

sysdate를 사용하는 경우 Replication 구성에서 Master-Slave간의 데이터처리시간이 다를 경우 Time Type 데이터가 다를수 있어 sysdate의 경우 자동으로 now를 replace 해줍니다.

MariaDB 설치형 서비스 관리

MariaDB 설치형 서비스에서 관련되는 관리 방법을 설명합니다.

MariaDB 이미지 서버 생성

MariaDB가 설치된 인스턴스 서버를 생성하면 아래와 같이 네이버 클라우드에 표준화된 my.cnf의 환경을 가진 MariaDB Daemon이 Startup되어 생성된 후 Daemon 기동까지 완료된 후 제공됩니다.

my.cnf

my.cnf의 Parameter설명은 아래와 같습니다.

속성 설명
expire_logs_days = 7 log-bin으로 설정된 로그크기가 커지는것을 방지하기 위해 7일간 저장하도록 합니다.
innodb_file_per_table 테이블스페이스로 사용하는 경우 테이블 Drop시 이미 늘어난 물리 크기는 줄어들지 않기 때문에 테이블 삭제지 물리크기 확보를 위해 옵션을 사용합니다.
innodb_log_file_size Heavy Traffic을 들어오는 경우 CheckPoint를 위한 병목을 방지하기 위해 innodb_log_file_size 옵션을 늘려주어 설정합니다.
Variables을 조정하기 위해서는 DB Restart가 필요함.
iinnodb_log_files_in_group innodb_log_file의 갯수를 지정합니다. Rotation을 위해 2개이상을 권고합니다.
default_storage_engine Online-DDL및 Transction사용이 가능한 InnoDB로 표준지정합니다.
query_cache_type

query_cache_size
DB기동후 query_cache를 사용자가 동적으로 ON/OFF할수 있도록 ON / 0으로 설정합니다. 이후 서비스 상황에 맞도록 조정합니다.
sysdate-is-now sysdate를 사용하는 경우 Replication구성에서 Master-Slave간의 데이터처리 시간이 다를 경우 Time Type 데이터가 다를수 있어 sysdate의 경우 자동으로 now를 replace 해줍니다.

MariaDB가 설치된 디렉토리는 아래와 같습니다.

속성 설명
DATADIR /var/lib/mysql/
SLOW_LOG /var/lib/mysql/*slow.log
my.cnf /etc/my.cnf - CentOS
/etc/mysql/my.cnf - Ubuntu.
  • MariaDB의 Error Log는 기본값인 empty로 제공됩니다. 설정이 필요할 경우 my.cnf에서 아래와 같이 추가 후 MariaDB daemon을 재시작해주시면 됩니다.
    log_error=mysqld.err

서버생성 절차

MariaDB 서버생성 과정은 아래와 같습니다.

www.ncloud.com 접속 및 Login

① 우측 상단 콘솔을 선택하여 콘솔에 접속합니다.

② 콘솔 화면에서 서버생성 선택을 합니다.

서버생성

Step 1. 서버 이미지 선택

① OS Version에 해당하는 MariaDB Version을 체크한후 하단의 다음버튼을 선택합니다.

Step 2. 서버 설정

① 아래와 같이 서버타입과 원하는 요금제를 선택합니다.

Step 3. 인증키 설정

① 사용자의 인증키를 선택합니다.

Step 4. 방화벽 설정

① 보유하고 있는 ACG를 선택하거나 신규로 생성합니다.

Step 5. 최종확인

① 선택한 내용을 확인한 후에 MariaDB가 설치된 서버를 생성합니다

서버접속 설정 및 확인

포트 포워딩 설정

① 서버생성이후 상단의 [포트 포워딩 설정] 버튼을 선택합니다.

① 아래 화면의 포트 포워딩 설정에서 ssh접속을 위한 외부포트를 등록합니다.

② 외부포트 등록 후 [추가]를 선택합니다.

③ [적용]을 클릭합니다.

관리자 비밀번호 확인

① 포트 포워딩 설정이후 상단의 [서버관리 및 설정변경] 버튼을 선택합니다.

② 이후 팝업메뉴에 [관리자 비밀번호 확인]을 선택합니다.

③ 관리자 비밀번호 확인창에서 [파일선택]으로 인증키 파일을 선택합니다.

④ [비밀번호 확인] 버튼을 클릭합니다.

⑤ 이후 화면에 나온 비밀번호를 인지합니다.

터미널을 통한 서버접속

터미널프로그램을 사용하여 아래와 같이 접속합니다.

  • PORT : 포트포워딩으로 설정한 포트번호
  • 공인IP : 포트포워딩화면에 안내된 서버 접속용 공인IP
  • 패스워드 : 관리자 비밀번호에 출력된 패스워드(초기 패스워드는 반드시 변경합니다.)
    ssh -p [PORT] root@[공인IP]
    

서버 이미지 생성이후

  1. 서버생성이후 바로 사용하지 않을 경우 보안위험을 예방하기 위해 MariaDB Daemon을 ShutDown합니다.

  2. 생성된 MariaDB의 경우 패스워드가 설정되지 않았기 때문에 반드시 패스워드 설정을 합니다.

MariaDB 기동/정지및 접속 절차

  • MariaDB Daemon기동및 정지는 아래와 같은 명령어로 실행합니다.

    • CentOS
      shell> /sbin/service mysqld start
      shell> /sbin/service mysqld stop
      
    • Ubuntu
      Shell> /usr/sbin/service mysql start
      Shell> /usr/sbin/service mysql stop
      
  • MariaDB Daemon구동 유무는 아래와 같은 명령어로 확인합니다.

    Shell> ps -ef | grep mysqld
    
    • 결과: MySQLd / mysqld 프로세스가 보여야 합니다.
  • 네이버 클라우드에서 생성한 MySQL은 아래명령어로 접속합니다.

    Shell> mysql -uroot
    
  • MariaDB Password정책에 따라 초기 패스워드는 지정되지 않습니다.

  • root Password의 경우 설정하지 않으므로 보안 침해 방지를 위해 최초 접속시 반드시 패스워드 변경을 합니다.

  • root 패스워드는 아래 명령어를 사용하여 변경합니다.

    mysql> set password=password('패스워드');
    
  • 권장하는 패스워드 기본정책은 아래와 같습니다.
    • 최소길이 8자이상
    • 특수문자 1개이상
    • 숫자 1개이상
    • 대소문자조합 1개이상

MariaDB 이미지 서버 반납

네이버 클라우드에서 MariaDB이 생성된 서버 반납 시 아래와 같은 절차 이후 반납하기를 권장합니다.

  1. MariaDB에서 저장한 데이터 백업

    • 백업된 데이터의 경우 Download이후 별도 보관
  2. MariaDB Daemon 정지

  3. MariaDB 저장된 Data Directory 삭제

    • 예: rm ‐rf /var/lib/mysql
  4. 네이버클라우드 콘솔에서 [정지]->[반납] 순서로 선택하여 반납을 진행합니다.

MariaDB 외부접속 허용

Ubuntu에서 MariaDB을 사용하는 경우 Default Parameter로 인해 Localhost에서만 접속이 가능합니다.
이에 외부접속이 가능하도록 아래와 같은 예로 가이드 합니다.

  1. MariaDB DB 접속

  2. 계정 권한 부여

    예: GRANT ALL PRIVILEGES ON *.* to '계정명'@'%' IDENTIFIED BY '비밀번호';

  3. 환경파일 수정

    예: sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

  4. bind-address 주석처리

  5. MariaDB 재시작

연관 정보 바로가기

아래 가이드에서 연관 정보를 확인할 수 있습니다.

""에 대한 건이 검색되었습니다.

    ""에 대한 검색 결과가 없습니다.

    처리중...