웹 서비스 MySQL 백업 및 복원
이 문서에서는 사전에 구성한 웹서비스의 MySQL 데이터베이스를 백업하고, 백업한 데이터를 이용하여 복원을 진행하는 방법을 소개합니다. 본 튜토리얼에서 생성된 리소스 이름과 설정은 튜토리얼 진행을 위해 임의로 생성한 값입니다.
- 예상 소요 시간: 15분
- 권장 운영 체제: MacOS, Ubuntu
- Region: kr-central-2
- 사전 준비 사항 - VM 기반의 웹 서비스 구성
사전 작업
본 튜토리얼을 시작하기 전에 Virtual Machine 기반의 웹 서비스가 준비되어 있어야 합니다. 웹 서비스 환경을 구축하는 방법은 VM 기반의 웹 서비스 구성 문서를 참고하시기 바랍니다.
작업 순서
Step 1. MySQL 수동 백업
MySQL 데이터베이스를 수동으로 백업합니다. 자동 백업 설정에 대한 자세한 정보는 MySQL 자동 백업 설정 문서를 참고하시기 바랍니다.
-
카카오클라우드 콘솔에서 Data Store > MySQL 메뉴로 이동합니다.
-
VM 기반의 웹 서비스 구성 문서에서 생성한 tutorial-mysql 데이터베이스의 상세 페이지로 이동합니다.
-
MySQL 상세 정보 상단의 백업 메뉴를 선택합니다.
-
백업 메뉴에 서 [백업 만들기] 버튼을 클릭하고, 필요한 정보를 입력합니다.
항목 설정값 선택한 인스턴스 그룹 이름 tutorial-mysql 백업 이름 tutorial-mysql-backup-manual-1 -
백업 목록에서 생성된 백업의 상태가
Succeeded
인지 확인합니다.
Step 2. 백업 데이터를 이용한 MySQL 복원
복원 단계에서는 백업한 데이터를 사용하여 MySQL 데이터베이스를 복원합니다.
-
백업 목록에서 Step 1에서 생성한 tutorial-mysql-backup-manual-1의 [더 보기] 아이콘을 클릭 후, 복원을 선택합니다.
-
복원을 위한 세부 정보를 입력하고, [만들기] 버튼을 클릭합니다.
구분 항목 설정/입력값 기본 설정 인스턴스 그룹 이름 tutorial-mysql-01 설명 (선택) MySQL 설정 엔진 버전 8.0.34 MySQL 사용자 이름 admin MySQL 비밀번호 root1234 인스턴스 가용성 단일 (Primary 인스턴스) 인스턴스 유형 m2a.large 기본 스토리지 타입/크기 SSD 100GB 로그 스토리지 타입/크기 SSD 100GB 네트워크 설정 VPC tutorial Subnet tutorial_{VPC_ID}_sn_5
자동 백업 자동 백업 옵션 미사용 -
복원이 완료되면, 생성된 인스턴스 그룹의 상태가
Available
인지 확인합니다.
Step 3. Application 서버 업데이트
복원된 MySQL 데이터베이스를 사용하도록 애플리케이션 서버를 업데이트합니다.
-
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🖌︎ Virtual Machine > 인스턴스 메뉴에서 생성해 둔 `Bastion` 인스턴스 클릭 후, Network 탭에서 확인 가능 -
프로젝트가 위치한 경로로 이동합니다.
cd ~/kakaocloud-tutorials
-
아래 명령어를 이용하여 실행 중인 애플리케 이션 서버를 정지하고 제거합니다.
sudo docker stop kakaocloud-library-server
sudo docker rm kakaocloud-library-server -
환경 변수에 복원한 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_ENDPOINT | MySQL 호스트의 주소, MySQL > Instance Group 탭에서 복원한 `tutorial-mysql-01` 인스턴스 그룹을 클릭 후, 상단 엔드포인트에서 확인 가능 |
DB_USERNAME🖌︎ | admin | 데이터베이스 사용자 이름 |
DB_PASSWORD🖌︎ | root1234 | 데이터베이스 사용자 패스워드 |
- 띄워진 2개의 애플리케이션 서버에 Step 3 과정을 각각 진행합니다.
Step 4. 서비스 접속 확인
서비스가 정상적으로 작동할 경우, '카카오클라우드 도서관' 서비스 화면이 표시됩니다.
서비스 접속 확인