백업 및 복원 개요

Spanner 백업 및 복원을 사용하면 필요에 따라 Spanner 데이터베이스 백업을 만들고 이를 복원하여 연산자 및 애플리케이션 오류로 인한 논리적 데이터 손상으로부터 보호할 수 있습니다. 백업은 가용성이 높고 암호화되며, 생성된 시점으로부터 최대 1년까지 보관할 수 있습니다. 백업을 만들 때 백업은 소스 데이터베이스와 동일한 인스턴스, 리전 및 프로젝트에 있습니다. 규정 준수 또는 비즈니스 연속성 이유로 다른 리전 또는 프로젝트의 백업에서 복원해야 하는 경우 별도의 리전 또는 프로젝트의 인스턴스에 백업을 복사할 수 있습니다. 1년 이상 백업을 유지하려면 데이터베이스를 내보내는 것이 좋습니다. 논리적 데이터 손상으로부터 보호하기 위해 Spanner는 point-in-time recovery도 제공합니다. 또한 데이터베이스 삭제 보호를 사용 설정하여 데이터베이스가 실수로 삭제되지 않도록 할 수 있습니다.

백업 및 복원은 다음 방식으로 수행할 수 있습니다.

주요 특징

  • 데이터 일관성: 백업은 백업의 version_time 시점에 트랜잭션별 및 external consistency를 갖는 Spanner 데이터베이스 사본입니다.

  • 복제: 소스 데이터베이스와 동일한 인스턴스에 있는 백업은 동일한 지리적 위치에서 복제됩니다. 리전별 인스턴스의 경우 백업은 3개의 각 읽기-쓰기 영역에 저장됩니다. 멀티 리전별 인스턴스의 경우 읽기-쓰기 또는 읽기 전용 복제본을 포함하는 모든 영역에 백업이 저장됩니다. 데이터베이스의 백업을 다른 리전 또는 프로젝트에 저장해야 하는 경우 완료된 백업을 소스 인스턴스에서 다른 리전 또는 프로젝트에 있는 대상 인스턴스로 복사할 수 있습니다. 자세한 내용은 백업 복사를 참조하세요.

  • 자동 만료: 모든 백업에는 자동으로 삭제되는 시점을 결정하는 사용자 지정 만료 날짜가 포함됩니다. Spanner는 만료된 백업을 비동기적으로 삭제합니다. 따라서 백업이 만료되는 시점과 실제로 삭제되는 시점 사이에 지연이 발생할 수 있습니다.

다음 표에서는 몇 가지 데이터 복구 계획, 계획을 구현하는 데 권장되는 방법, 제안된 방법의 최대 보관 기간을 설명합니다.

데이터 복구 계획권장 방법제안된 방법의 최대 보관 기간
데이터베이스 백업을 소스 데이터베이스와 동일한 인스턴스, 리전, 프로젝트에 저장 백업 만들기 1년
데이터베이스의 백업을 소스 데이터베이스와 다른 인스턴스, 리전 또는 프로젝트에 저장(리전 간 또는 프로젝트 간 백업) 백업을 만든 후 다른 리전 또는 프로젝트의 인스턴스로 복사합니다. 1년
Cloud Storage에 백업 저장 데이터베이스를 Cloud Storage 버킷으로 내보냅니다. 백업과 내보내기에 대한 자세한 비교는 백업 및 복원 또는 가져오기 및 내보내기 중에서 선택을 참조하세요. 무제한(삭제까지 유지)
특정 시점 복구(PITR) 과거의 특정 시점에서 데이터를 복구하려면 PITR을 선택합니다. 데이터베이스 version_retention_period를 기본 1시간에서 최대 7일로 변경할 수 있습니다. 7일

Identity and Access Management(IAM) 정책으로 액세스 제어

IAM을 사용하면 백업 및 복원된 데이터베이스를 포함하는 Spanner 리소스에 대한 액세스를 제어할 수 있습니다. IAM, 역할, 권한을 처음 접하는 경우에는 IAM 개요에서 자세한 내용을 참조하세요.

백업 리소스는 Spanner 리소스 계층 구조에서 인스턴스 아래에 저장됩니다. 프로젝트 수준 또는 인스턴스 수준에서 IAM 정책을 적용하는 것이 좋습니다. 더 세밀한 제어가 필요한 경우 백업 및 데이터베이스 수준에서도 IAM 정책을 적용할 수 있지만, 복잡하기 때문에 권장되지 않습니다. 백업은 IAM 정책과 같은 데이터베이스 메타데이터를 포함하지 않습니다. 따라서 데이터베이스를 복원할 때 데이터베이스는 처음에 해당 상위 인스턴스로부터 정책을 상속 받습니다.

이 섹션에서는 백업 및 복원에 액세스할 수 있는 미리 정의된 역할에 대해 설명합니다.

다음 역할은 특별히 백업 및 복원을 위해 디자인되었습니다.

  • spanner.backupAdmin: 백업 만들기, 보기, 업데이트, 복사, 삭제를 수행할 수 있는 액세스 권한을 갖습니다. 이 역할은 백업의 IAM 정책을 보고 관리할 수도 있습니다. 이 역할은 백업에서 데이터베이스를 복원할 수 없습니다.
  • spanner.restoreAdmin: 백업에서 데이터베이스를 복원하기 위한 액세스 권한을 갖습니다. 백업을 다른 인스턴스로 복원해야 하는 경우 프로젝트 수준에서 또는 두 인스턴스 모두에 이 역할을 적용합니다. 이 역할은 백업을 만들 수 없습니다.
  • spanner.backupWriter: 백업 만들기 및 복사 액세스 권한을 갖지만, 이를 업데이트하거나 삭제할 수 없습니다. 이 역할은 백업 만들기를 자동화하는 스크립트에 사용됩니다.

다음 역할도 백업 및 복원을 위한 액세스 권한을 갖습니다.

  • spanner.admin: 백업 및 복원에 대한 전체 액세스 권한을 갖습니다. 이 역할에는 모든 Spanner 리소스에 대한 전체 액세스 권한이 포함됩니다.
  • owner: 백업 및 복원에 대한 전체 액세스 권한을 갖습니다.
  • editor: 백업 및 복원에 대한 전체 액세스 권한을 갖습니다.
  • viewer: 백업, 백업 작업, 복원 작업 보기를 위한 액세스 권한을 갖습니다. 이 역할은 백업을 만들거나, 업데이트, 삭제, 복사 또는 복원할 수 없습니다.

자세한 내용은 Spanner IAM을 참조하세요.

가격 책정

백업에 사용되는 단위 시간별 스토리지 사용량을 기준으로 청구됩니다. 청구는 백업 작업이 완료된 다음부터 시작되며 백업이 삭제되기 전까지 계속됩니다. 완료된 백업은 최소 24시간 단위로 청구됩니다. 백업을 만들고 나서 완료 후 1분만에 삭제하더라도 24시간에 대한 비용이 청구됩니다.

백업 사본에는 원래 백업과 동일한 스토리지 비용이 적용됩니다. 서로 다른 리전을 사용하는 두 인스턴스 간에 복사본을 만드는 경우 아웃바운드 데이터 전송 비용이 적용됩니다.

백업에서 복원할 때는 요금이 부과되지 않습니다.

백업은 개별적으로 저장되고 청구됩니다. 백업 스토리지는 데이터베이스 스토리지 청구 또는 데이터베이스 스토리지 한도에 영향을 주지 않습니다. 자세한 내용은 스토리지 사용량 측정항목도 참조하세요.

백업 비용에 대한 자세한 내용은 Spanner 가격 책정을 참조하세요.

다음 단계