본문으로 건너뛰기

웹 서비스 MySQL 백업 및 복원

카카오클라우드 MySQL 데이터베이스를 백업하고, 백업 데이터를 이용해 복원하는 방법을 안내합니다.

기본 정보

시나리오 소개​

이 시나리오에서는 사전에 설정된 웹 서비스의 MySQL 데이터베이스를 백업하고, 이를 복원하는 절차를 안내합니다. 이를 통해 MySQL 데이터베이스의 백업 및 복원 방법을 익히고, 복원된 데이터베이스를 애플리케이션 서버와 연결하여 정상적인 서비스 환경을 복구할 수 있습니다.

시작하기 전에​

본 튜토리얼을 시작하기 전에 Virtual Machine 기반의 웹 서비스가 준비되어 있어야 합니다. 웹 서비스 환경을 구축하는 방법은 VM 기반의 웹 서비스 구성 문서를 참고하시기 바랍니다.

시작하기​

Step 1. MySQL 수동 백업​

MySQL 데이터베이스를 수동으로 백업합니다. 자동 백업 설정에 대한 자세한 정보는 MySQL 자동 백업 설정 문서를 참고하시기 바랍니다.

  1. 카카오클라우드 콘솔에서 Data Store > MySQL 메뉴로 이동합니다.

  2. VM 기반의 웹 서비스 구성 문서에서 생성한 tutorial-mysql 데이터베이스의 상세 페이지로 이동합니다.

  3. MySQL 상세 정보 상단의 백업 메뉴를 선택합니다.

  4. 백업 메뉴에서 [백업 생성] 버튼을 클릭하고, 필요한 정보를 입력합니다.

    항목설정값
    선택한 인스턴스 그룹 이름tutorial-mysql
    백업 이름tutorial-mysql-backup-manual-1
  5. 백업 목록에서 생성된 백업의 상태가 Succeeded인지 확인합니다.

Step 2. 백업 데이터를 이용한 MySQL 복원​

복원 단계에서는 백업한 데이터를 사용하여 MySQL 데이터베이스를 복원합니다.

  1. 백업 목록에서 Step 1에서 생성한 tutorial-mysql-backup-manual-1의 [⋮] 버튼을 클릭한 뒤 복원을 선택합니다.

  2. 복원을 위한 세부 정보를 입력하고, [생성] 버튼을 클릭합니다.

    구분항목설정/입력값
    기본 설정인스턴스 그룹 이름tutorial-mysql-01
    설명(선택)
    MySQL 설정엔진 버전8.0.34
    MySQL 사용자 이름admin
    MySQL 비밀번호root1234
    인스턴스 가용성단일 (Primary 인스턴스)
    인스턴스 유형m2a.large
    기본 스토리지 유형/크기SSD100GB
    로그 스토리지 유형/크기SSD100GB
    네트워크 설정VPCtutorial
    서브넷tutorial_{VPC_ID}_sn_5
    자동 백업자동 백업 옵션미사용
  3. 복원이 완료되면, 생성된 인스턴스 그룹의 상태가 Available인지 확인합니다.

Step 3. Application 서버 업데이트​

복원된 MySQL 데이터베이스를 사용하도록 애플리케이션 서버를 업데이트합니다.

  1. VM 기반의 웹 서비스 구성에서 Bastion 호스트에 설정한 포트에 맞게 매핑해 둔 애플리케이션 서버로 접속합니다.

    # tutorial-app-1
    ssh -i ${PRIVATE_KEY}.pem ubuntu@${BASTION_PUBLIC_IP} -p 10002

    # tutorial-app-2

    ssh -i ${PRIVATE_KEY}.pem ubuntu@${BASTION_PUBLIC_IP} -p 10003

    환경 변수설명
    PRIVATE_KEY🖌︎키 파일 이름
    BASTION_PUBLIC_IP🖌︎Bastion 인스턴스의 퍼블릭 IP
  2. 프로젝트가 위치한 경로로 이동합니다.

    cd ~/kakaocloud-tutorials
  3. 아래 명령어를 이용하여 실행 중인 애플리케이션 서버를 정지하고 제거합니다.

    sudo docker stop kakaocloud-library-server
    sudo docker rm kakaocloud-library-server
  4. 환경 변수에 복원한 MySQL의 엔드포인트 및 관리자 계정과 패스워드를 입력하여 애플리케이션 서버를 다시 시작합니다.

    sudo docker run -it \
    -e MYSQL_HOST=${MYSQL_HOST} \
    -e DB_USERNAME=${DB_USERNAME} \
    -e DB_PASSWORD=${DB_PASSWORD} \
    -p 8080:8080 \
    --name kakaocloud-library-server -d \
    $(sudo docker build -q -f ./server/deploy/Dockerfile ./server)
    환경 변수설정값설명
    MYSQL_HOST🖌︎MYSQL_ENDPOINTMySQL 호스트의 주소, MySQL > Instance Group 탭에서 복원한 `tutorial-mysql-01` 인스턴스 그룹을 클릭한 뒤 상단 엔드포인트에서 확인
    DB_USERNAME🖌︎admin데이터베이스 사용자 이름
    DB_PASSWORD🖌︎root1234데이터베이스 사용자 패스워드
  5. 띄워진 2개의 애플리케이션 서버에 Step 3 과정을 각각 진행합니다.

Step 4. 서비스 접속 확인​

서비스가 정상적으로 작동할 경우, '카카오클라우드 도서관' 서비스 화면이 표시됩니다.

카카오클라우드 도서관 서비스 접속 확인