사전 지식
백업 방법
필요에 따라 아래 내용을 주기적으로 백업한다.
- 특정 DB 백업
- 테이블 백업
- 모든 데이터 베이스 백업
백업 VS 내보내기
- 보관정책
- 백업
- Cloud SQL에서 관리되며 Cloud SQL 인스턴스와 별도로 저장
- 전체 데이터베이스를 포괄
- 내보내기
- Cloud Storage에서 관리
- 특정 콘텐츠 선택 가능(table, database)
- SQL Dump
- 전체 인스턴스
- 인스턴스 안의 1개 이상의 데이터베이스
- CSV
SELECT * FROM table
쿼리를 이용하여 내보낼 데이터 지정
- 백업
리전 및 영역 가용성
- 리전 (선택 후 영역 선택)
- 영역 가용성
- 단일 영역: 서비스 중단이 발생할 경우 장애 조치가 없음
- 여러 영역: 선택한 리전 내의 다른 영역으로 자동으로 장애 조치 (product)
저장 용량
- 스토리지 유형
- 저장용량 자동 증가 사용 설정 (인스턴스 설정 정보)
About instance settings | Cloud SQL for MySQL | Google Cloud
연결
- 비공개 IP
- 공개 IP
- White List 기반
백업
- 백업 자동화
- 자동 백업 수: 1~365개
- point-in-time recovery
- 1초 미만의 단위로 데이터를 특정 시점으로 복구할 수 있습니다.
- 복제에 필요한 바이너리 로그가 사용 설정됩니다.
- 디스크 공간이 부족하지 않도록 스토리지가 충분한지, 스토리지 용량 자동 증가를 사용 설정했는지 확인하세요.
- point-in-time recovery 설정을 변경하려면 인스턴스를 다시 시작해야 합니다.
- 다시 시작하면 인스턴스가 모든 연결 항목, 열려 있는 파일, 실행 중인 작업과 함께 종료됩니다.
- 백업 만들기(수동)
- 필요한 상황(작업 전)에 백업을 수동으로 진행할 수 있다.
유지보수
- 일반적으로 주기는 수개월당 한 번
- 업데이트되는 동안 인스턴스가 다시 시작되어야 하므로 서비스가 잠시 중단될 수 있다.
플래그
- 매개변수 조정, 옵션 조정, 인스턴스 구성 및 조정을 포함한 여러 작업에 사용합니다.
- e.g. slow_query_log: on
https://cloud.google.com/sql/docs/postgres/flags
백업 저장 위치
- 멀티리전(default)
- 인스턴스에서 가까운 위치에 백업이 저장된다.
- 리전
복제본 → 읽기 복제본
- 복제를 사용하는 주된 이유는 성능 저하 없이 데이터베이스의 데이터 사용량을 늘리기 위해서입니다.
- 자동 백업 및 point-in-time recovery(바이너리 로깅)를 사용 설정 선행
- 인스턴스 재시작이 필요
- 7일 분량의 로그를 지원할 수 있는 저장용량
- 영약 가용성 → 단일 영역만 선택 가능
- 기존 Instance와 다른 머신 유형 선택 가능
- 원본 인스턴스가 손상되면 복제본을 승격할 수 있음
- 승격 후 기존 인스턴스처럼 사용 가능
- 원본 인스턴스와는 별개의 인스턴스가 됨
- 기존 인스턴스와 다른 IP를 가진다.
클론
- 기존 인스턴스와 다른 것, 안되는 것
- 백업 복사
- IP 유지
- 복제본은 복사안됨
- 복제본에서 클론 안됨
- 기존 인스턴스와 같은 것
- 인스턴스 구성 (플래그, 연결 옵션, 머신 유형, 스토리지, 메모리 설정)
- 다른 인스턴스에서 클론된 인스턴스를 클론할 수 있다.
- 클론할 인스턴스 상태 선택 가능
- 최신 / 이전 시점
버전 업그레이드
- Database Migration Service 를 사용하거나 데이터베이스를 새 Cloud SQL 인스턴스로 내보낸 후 가져오는것이 좋습니다.
백업을 이용한 데이터 복원 - Backup and Restore
백업
- 백업을 차단하는 작업(장기 실행 인스턴스 작업)이 있는 경우 백업 기간 중 여러번 시도
- 가져오기, 내보내기, 업데이트, 인스턴스 재시작
- 백업은 내보낼 수 없다. (GCP에서 관리)
Create TEST Data
백업 만들기
대상 Instance 생성
백업 데이터를 resotre할 Instance 생성
데이터 복원
From Instance: jm-han
To Instance: restore-from-backup
- 선택한 인스턴스에 데이터가 있으면 덮어쓴다.
- 복원할 수 있는 충분한 저장용량이 필요하다.
결과 - Cloud SQL Backup
- 작업시간: 7min
- 사용된 저장 용량 1GB
- 대상 인스턴스(Restore를 진행하는)의 IP 변하지 않음
- 사용자까지 복원 (root, 사용자 계정)
- 기존 데이터는 없어짐
내보내기를 이용한 데이터 복원 - Export and Import
내보내기
- Cloud Storage에서 관리
- SQL Dump
- 전체 인스턴스
- 인스턴스 안의 1개 이상의 데이터베이스
- CSV
SELECT * FROM table
쿼리를 이용하여 내보낼 데이터 지정.gz
확장자를 사용하여 데이터를 압축할 수 있다.(비용절감)
- 내보내기를 시작하면 데이터베이스가 느리게 응답하더라도 중지할 수 없습니다.
- 서버리스 내보내기를 사용하여 응답이 느려지지 않도록 할 수 있다.
- 서버리스 내보내기를 하면 오프로드할 별도의 임시 인스턴스를 만든다.
- 내보내기가 완료 되면 임시 인스턴스가 자동으로 삭제된다.
- 서버리스 내보내기를 사용하여 응답이 느려지지 않도록 할 수 있다.
Create TEST Data
새 버킷 만들기
데이터 내보내기 대상 위치 선정
- 생성한 bucket 선택
내보내기 생성
생성된 bucket 확인
- 작업시간: 45s
- 사용된 저장 용량 189B
가져오기
1. Instance: jm-han (기존 테이블)
- table: real_estate.grade2
- 기존의 grade2 table의 데이터를 변경 한 후 내보내기 한 데이터를 가져온다.
- AS-IS
- TO-BE(가져오기)
- 결과
- 작업시간: 10s
- 기존 존재하는 data에 추가된다.
2. Instance: restore-from-backup (새로운 테이블)
- table: real_estate.grade2
- 새로운 table 명 생성 후 가져오기 실행 (기존에 데이터 존재 X)
- AS-IS
- table: grade2은 존재하지 않는 상태
- TO-BE(가져오기)
- 가져오기 할 수 없음
- 새로운 DB에 새로운 table에는 가능한가? colume type이 다르다면?
- 가져와진다 그러나 0으로 채워짐
- type을 내보내기 했던것과 맞추고 다시 가져오기
결과 - Cloud SQL Export
- 내보내기는 csv, sql 두가지 방법으로 가능
- 가져오기하는 곳에 내보내기 했던 table명이 존재해야 하고 type도 맞아야 한다.
- 가져오기하는 table에 데이터가 있으면 덮어쓰는것이 아니라 추가된다.
- 주기적으로 내보내기를 설정하려면 Cloud Scheduler 작업을 이용한다.
가격 및 저장 위치
백업 시 멀티리전 선택 후 특정 리전 선택 불가능
인스턴스 생성시 → 리전 선택 후 여러 영역 선택(기본 영역 및 보조 영역 선택 가능, 임의로 할당도 가능)
가격
- 백업 만들기
- 가격
- 데이터 스토리지의 GB당 월 $0.08이 청구됩니다.
- 백업 스토리지 요금은 다른 유형의 인스턴스보다 요금이 낮습니다.
- 가격
- 전용 코어 인스턴스 (가격 참고)
- SQL CPU 및 메모리 가격에 따라 부과
- HA 가격 (가격 참고)
- HA 가격은 고가용성을 위해 구성된 인스턴스(리전 인스턴스라고도 함)에 적용됩니다.
- 인스턴스 가격
- 인스턴스 가격은 공유 코어 인스턴스에만 적용됩니다.
- 공유 코어 인스턴스: 머신 유형 중 하나 (공유 코어, 표준, 고성능 메모리)
- 인스턴스 가격은 공유 코어 인스턴스에만 적용됩니다.
- 네트워크 가격
- Compute Engine 인스턴스 및 Cloud SQL 리전 간 복제본
- 동일 리전: 무료
- Compute Engine 인스턴스 및 Cloud SQL 리전 간 복제본
- 서버리스 내보내기 가격: 위치한 리전에 따라 다름 (서버리스 내보내기 가격 참고)
- e.g. 서울(asis-northease3) → 서버리스 내보내기 가격 책정$0.013/GB
- 스토리지 (단일, HA)
- 읽기 복제본 및 장애 조치 복제본
- 독립 실행형 인스턴스와 동일한 요금
https://cloud.google.com/sql/docs/mysql/backup-recovery/backups
https://cloud.google.com/sql/docs/mysql/pricing?hl=ko#instance-pricing
https://cloud.google.com/sql/docs/mysql/import-export#standard-offload
'Cloud-computing > GCP' 카테고리의 다른 글
[GCP]How to use Cloud CDN (1) | 2022.07.19 |
---|---|
[GCP]CloudSQL Server-Client Certificate Configuration (0) | 2022.06.28 |
[GCP]How to Create Managed Instance Group (MIG) (0) | 2022.06.20 |
[GCP]How to create Firewall-rule (0) | 2022.06.07 |
[GCP]How to create VPC Network (0) | 2022.06.06 |