Spanner 백업 및 복원을 사용하면 Spanner 데이터베이스 백업을 한 인스턴스에서 다른 리전 또는 프로젝트의 다른 인스턴스로 복사하여 추가 데이터 보호 및 규정 준수 기능을 제공할 수 있습니다. 복사된 백업에는 원본 백업과 동일한 주요 기능이 있습니다. 또한 복사된 백업과 동일한 인스턴스에서 복사된 백업을 복원하여 리전 간 및 프로젝트 간 백업 및 복원 사용 사례를 지원할 수 있습니다.
다음 방법으로 백업을 복사할 수 있습니다.
- Google Cloud 콘솔 사용
- gcloud CLI 사용
- 클라이언트 라이브러리 사용
- REST 또는 RPC API 사용
백업 및 복원 개요는 백업 및 복원 소개를 참조하세요.
일반적인 리전 간 사용 사례
백업 복사를 위한 몇 가지 일반적인 리전 간 사용 사례는 다음과 같습니다.
규정 준수 및 규제 요건을 위해 다른 리전에서 백업을 유지합니다.
예를 들어 규정 준수 요구사항을 충족하기 위해 프로덕션 데이터와 멀리 떨어져 있는 리전의 인스턴스에 데이터베이스 백업을 복사할 수 있습니다.
재해 복구 및 비즈니스 연속성을 위해 별도의 리전에 백업을 유지합니다.
예를 들어 0이 아닌 복구 시간 목표(RTO) 및 복구 지점 목표(RPO)를 사용하여 재해 복구 목적으로 백업 데이터베이스를 대상 인스턴스에 복사할 수 있습니다. 그런 다음 필요한 경우 대상 인스턴스의 복사된 백업에서 데이터베이스를 복원할 수 있습니다. (애플리케이션에 0-RTO 및 0-RPO 요구사항이 있는 경우 재해 복구 계획에 대한 Spanner 멀티 리전 구성을 사용하는 것이 좋습니다.)
일반적인 프로젝트 간 사용 사례
백업 복사를 위한 일반적인 프로젝트 간 사용 사례는 다음과 같습니다.
- 운영, 보안, 규정 준수 요구사항을 충족하기 위해 별도의 프로젝트에 백업 사본을 유지하세요.
개발, 테스트, 프로덕션 프로젝트 간에 데이터를 복사하고 이동합니다.
예를 들어 프로덕션 프로젝트에서 테스트 프로젝트로 데이터를 이동하려면 프로덕션 데이터의 백업을 만든 다음 백업을 테스트 프로젝트에 복사하면 됩니다. 복사 작업이 완료되면 복사된 백업을 테스트 프로젝트의 인스턴스로 복원할 수 있습니다.
한 프로젝트에서 다른 프로젝트로 데이터베이스를 이동합니다(마이그레이션 중에 다운타임이 발생할 수 있음).
복사 백업 작동 방식
소스 백업 생성 시간에서 최대 1년까지 소스 백업, 대상 백업 및 만료 날짜를 지정하여 다른 지역 또는 프로젝트의 대상 인스턴스에 백업을 복사할 수 있습니다. 즉, expiration_date
값은 현재 복사 요청이 처리된 후 최소 6시간, 소스 백업 create_time
이후 최대 366일이어야 합니다.
백업 복사 요청을 시작할 때 Spanner는 백업 리소스 및 장기 실행 백업 작업을 만들어 백업 진행 상태를 추적합니다. 백업이 대상 인스턴스의 모든 읽기-쓰기 및 읽기 전용 영역에 복사됩니다. 영역을 일시적으로 사용할 수 없게 되면 영역이 다시 온라인 상태가 될 때까지 백업 복사가 완료되지 않습니다. 복사 중에는 대상 인스턴스를 삭제할 수 없습니다. 백업 복사 작업의 진행률과 완료 상태를 추적하려면 백업 진행률 표시의 단계를 따르세요.
복사가 완료된 후 더 이상 필요하지 않은 경우 소스 백업을 삭제할 수 있습니다. 복사가 완료되면 복사된 백업과 함께 GetBackup
, UpdateBackup
, DeleteBackup
과 같은 작업을 사용할 수 있습니다.
백업 복사 시작 단계 기본 요건
다른 리전 또는 프로젝트의 인스턴스에 백업을 복사하는 경우 먼저 대상 인스턴스를 설정하고 구성해야 합니다. 대상 인스턴스는 백업 사본이 있는 인스턴스입니다. 최소 100개의 처리 단위로 구성될 수 있으며, 소스 인스턴스(소스 백업이 있는 인스턴스)와 동일한 인스턴스 구성이 필요하지 않습니다. 복원하기 전에 대상 인스턴스에 노드당 4TB 스토리지 한도에 따라 데이터베이스 크기를 지원할 수 있는 충분한 노드 또는 처리 장치가 프로비저닝되었는지 확인합니다(예: 8TB를 복원하려면 2개 이상의 노드가 필요함). 새 대상 인스턴스를 만들려면 인스턴스 만들기 및 관리를 참조하세요.
추가 고려 사항
추가 고려사항은 다음과 같습니다.
- 백업을 소스 인스턴스에서 대상 인스턴스로 복사할 때는 복사된 백업이 소스 백업과 독립적으로 존재합니다. 복사 작업이 완료되면 소스 인스턴스에 백업 1개가 있고 대상 인스턴스에 백업 1개가 있습니다. 소스 인스턴스에 더 이상 백업이 필요하지 않으면 삭제할 수 있습니다.
- 백업을 리전 인스턴스에 복사하면 백업 데이터가 대상 인스턴스의 세 가지 읽기-쓰기 영역 각각에 복사됩니다.
- 멀티 리전 인스턴스에 백업을 복사하면 읽기-쓰기 또는 읽기 전용 복제본이 포함된 인스턴스의 각 영역에 백업 데이터가 복사됩니다.
- 여러 백업을 동시에 복사할 수 있습니다.
- 복사 프로세스가 진행되는 동안 대상 백업을 업데이트하거나 삭제할 수 있습니다. 대상 백업을 삭제하면 진행 중인 복사 작업이 취소됩니다.
- 복사 작업이 진행되는 동안 소스 인스턴스에서 백업을 복원할 수 있습니다.
- 복사 작업이 완료되기 전에 취소할 수 있습니다.
복사 프로세스 중에는 다음 작업이 허용되지 않습니다.
- 복사 작업이 진행되는 동안에는 소스 백업을 삭제할 수 없습니다.
- 복사가 진행되는 동안에는 대상 복사된 백업에 대해 새 복사 또는 복원을 시작할 수 없습니다. 복사가 완료되면 다시 복사하거나 복원할 수 있습니다.
암호화
기본적으로 복사된 백업은 Google 관리나 고객 관리(CMEK)인 경우 소스 백업 암호화와 동일한 암호화 구성을 사용합니다. 백업을 복사할 때 다른 암호화 구성을 지정하여 이 동작을 재정의할 수 있습니다. 리전 간에 복사할 때 복사된 백업을 CMEK로 암호화하려면 대상 리전에 해당하는 KMS 키를 지정합니다.
시간 및 성능 복사
백업을 복사하는 데 걸리는 시간은 소스 백업 크기 및 복사된 백업에 대해 선택된 대상 리전과 같은 요소에 따라 달라집니다. 일반적으로 대부분의 복사는 1~4시간 안에 완료됩니다. 일부 사본은 백업 크기와 대상 리전에 따라 더 오래 걸릴 수 있습니다. 백업을 복사해도 소스 인스턴스 또는 데이터베이스의 성능은 영향을 받지 않습니다. 성능에 영향을 주지 않고 다른 리전의 인스턴스에 소스 백업의 여러 복사본을 동시에 만들 수 있습니다.
액세스 제어(IAM)
백업을 복사하려면 소스 백업에 대한 spanner.backups.copy
권한과 대상 인스턴스에 대한 spanner.backups.create
권한이 있어야 합니다.
이러한 권한은 spanner.backupAdmin
및 spanner.backupWriter
역할에 포함되므로 소스 인스턴스에 spanner.backupAdmin
또는 spanner.backupWriter
역할이 있는 경우 소스 백업에 대한 백업 복사 요청을 호출할 수 있습니다.
가격 책정
백업 사본에는 원래 백업과 동일한 스토리지 비용이 적용됩니다. 백업 복사가 완료되면 대상 인스턴스에서 백업 스토리지에 대한 비용이 청구됩니다. 서로 다른 리전에 있는 두 인스턴스 간에 복사본을 만드는 경우 데이터 전송 비용이 적용됩니다.
예를 들어 데이터베이스를 소스 멀티 리전 인스턴스 구성 nam7
에서 대상 멀티 리전 인스턴스 구성 nam-eur-asia3
로 복사할 경우 다음 요금이 적용됩니다.
us-central1
리전 중복에 요금이 부과되지 않음us-central2
리전에 요금이 부과되지 않음- 대륙 간 데이터 전송 요금은 신 대륙(유럽 및 아시아)마다 한 번씩 두 번 적용됩니다.
- 동일한 대륙 내 리전 간 데이터 전송 요금은
us-east1
에 한 번 적용됩니다. - 동일한 대륙 내 리전 간 데이터 전송 요금은 유럽에서 한 번 적용됩니다.
Spanner는 리전 간 전송 수를 최소화하기 위해 복사 프로세스를 최적화합니다. 이렇게 하면 빠른 복사 백업 환경을 제공하는 동시에 데이터 전송 비용을 최소화할 수 있습니다.
다음 단계
백업 및 복원 자세히 알아보기
Google Cloud Console을 사용한 백업 작업에 대해 알아보기
Google Cloud CLI를 사용한 백업 작업에 대해 알아보기
클라이언트 라이브러리를 사용한 백업 작업에 대해 알아보기