Cloud DB를 주기적으로 Object Storage에 백업하기

NAVER CLOUD PLATFORM
NAVER CLOUD PLATFORM
5 min readJul 1, 2019

안녕하세요, 네이버 클라우드 플랫폼입니다.

“Object Storage를 활용하여 DB 백업 데이터 저장소 만들기” 를 통해

데이터를 주기적으로 백업 받고 백업 파일을 Object Storage에 저장하는 방법을 살펴보았습니다.

오늘은 설치형 DB가 아닌 Cloud DB를 사용하는 환경에서 DB 데이터를 백업 받고, 백업 파일을 Object Storage에 저장하는 방법을 살펴보고자 합니다.

기본적인 구성은 전편에서 설명드린 내용과 비슷하지만 Cloud DB를 사용하는 만큼 사용자 계정에 대한 정보와 호스트에 대한 정보를 추가하여야 합니다.

(1) Cloud DB for MySQL 생성​

Cloud DB for MySQL에서 다음과 같이 다양한 정보를 생성 시 입력하게 됩니다.

DB Server 이름은 service라고 주었습니다. 실제 DB 서버는 service-001로 생성됩니다. DB Service 이름은 my-service라 하였습니다.

DB 접속을 위한 사용자명은 naver라고 하였으며 모든 호스트에서 접속이 가능하도록 “%”로 허용하였습니다.

User 암호와 기본 DB 명도 빠짐없이 입력하였습니다. DB 서버가 생성되면 DB 서버 접속을 위한 Private 도메인을 확인하여야 합니다.

추가적으로 DB 서버에 접속해야 하는 서버들이 DB 서버에 접속할 수 있도록 ACG에서 허용하는 룰을 추가해야 하는 작업이 있습니다.

DB 서버인 service-001 서버의 정보를 보면 Private 도메인 항목이 있습니다.

이후 단계인 DB Dump 시 해당 접속 정보를 이용하여 서버에 접속하여야 합니다.

그리고 ACG에서 방금 만들어진 DB 서버가 속해 있는 ACG를 찾습니다. 그리고 설정에서 다음 그림과 같이 접속할 서버를 접근 소스로 하고 허용 포트에 3306 포트를 허용하여야 접근이 가능해집니다.

(2) 백업 스크립트 작성

Cloud DB for MySQL 생성이 완료되었기 때문에 백업 서버에서 백업을 주기적으로 백업하는 스크립트를 만들어 보겠습니다.

먼저 백업파일이 저장될 디렉토리를 생성합니다.

[root@master-data ~]# mkdir /backup

스크립트는 /bin/backup.sh라는 실행파일로 만들겠습니다. 중요한 점은 mysqldump 명령어를 이용하여 덤프를 생성할 때 Cloud DB는 반드시 사용자 정보와 패스워드를 입력해야 하는 만큼 명령어를 수행할 때 — password 옵션을 주어야 합니다.

#!/bin/bash

DATE=`date +”%Y%m%d”`

#DATE 변수에 날짜를 집어넣고

rm -rf /backup/*

# 기존에 /backup 디렉토리에 있는 파일들은 용량 확보를 위해 과감히 삭제

/usr/bin/mysqldump -u naver –-password=”I_love_you” naver > /backup/db_bakup_${DATE}.sql

#mysqldump 명령어를 이용해 /backup 디렉토리에 db_backup_날짜.sql 형태로 파일 생성

그리고 다음 명령어로 실행 가능하도록 퍼미션을 허용합니다.

[root@master-data ~]# chmod 755 /bin/backup.sh

마지막으로 crontab에 스크립트를 가장 한가한 시간인 매일 새벽 6시에 동작하도록 등록합니다.

[root@master-data ~]# crontab –e

아래 내용을 추가하면 매일 새벽 6시에 /bin/backup.sh 가 수행됩니다.

00 06 * * * /bin/backup.sh

글을 마무리하며…

여기까지 되셨다면, 거의 마무리 단계입니다. 다음은 CLI를 설치하고 Object Storage를 만드는 작업인데,

이 부분은 https://blog.naver.com/n_cloudplatform/221359124614 문서의 (3) CLI 구성과 (4) 오브젝트 스토리지 버킷 생성을 그대로 따라 하면 Cloud DB for MySQL 데이터를 백업하고 백업파일을 오브젝트 스토리지에 주기적으로 저장하게 됩니다.

추가적으로 오브젝트 스토리지의 Life Cycle Management를 이용하면 보다 효율적인 백업 시스템을 구축할 수 있게 됩니다.

오늘은 Cloud DB를 사용하는 환경에서 DB 데이터를 백업 받고, 백업 파일을 Object Storage에 저장하는 방법을 살펴보았습니다.

서비스 사용 및 구축 중에 이슈가 발생하신 경우, 네이버 클라우드 플랫폼 고객센터로 문의하시면 빠른 지원 받으실 수 있습니다. 앞으로도 네이버 클라우드 플랫폼에 많은 관심 부탁드립니다.

--

--

NAVER CLOUD PLATFORM
NAVER CLOUD PLATFORM

We provide cloud-based information technology services for industry leaders from startups to enterprises.