콘텐츠로 이동하기
데이터베이스

Cloud Spanner의 point-in-time recovery 기능 출시

2021년 4월 20일
Cagdas Aydin

Program Manager, Google

Vaibhav Govil

Group Product Manager, Google

* 본 아티클의 원문은 2021년 3월 18일 Google Cloud 블로그(영문)에 게재되었습니다.  

Cloud Spanner는 수평 확장이 가능한 관계형 데이터베이스로서 최근에는 사용자 오류로 인한 의도치 않은 데이터 삭제 및 업데이트로부터 완벽한 데이터 보호를 제공하는 point-in-time recovery(PITR) 기능을 출시했습니다. Spanner는 백업 또는 내보내기가 실행된 마지막 상태로 데이터베이스를 복구하는 백업 및 복원, 가져오기/내보내기 기능을 이미 제공하고 있습니다. 이제는 PITR 기능을 통해 마이크로초 단위로 이전 데이터를 복구하는 기능과 더불어 지속적인 데이터 보호 기능을 제공할 수 있습니다. 이 기능을 통해 기업은 데이터 손상을 빠르게 해결하여 비즈니스의 위험성과 손실을 감소시키고 고객 경험에 미치는 영향을 최소화할 수 있습니다.

PITR은 사용하기에 간편하고 유연하며 더 세부적으로 제어 가능한 데이터 보호 기능을 제공합니다. 데이터와 스키마의 모든 버전을 최소 1시간에서 최대 7일까지 보관하도록 데이터베이스의 버전 보관 기간을 설정하기만 하면 Spanner가 나머지 작업을 알아서 처리해줍니다. 논리적인 데이터 손상이 발생한 경우에는 상황에 따라 데이터베이스를 완전히 복구하거나 데이터베이스의 특정 부분만 복구(전체 데이터베이스를 복구할 필요가 없는 경우)하도록 선택하여 소중한 시간과 리소스를 절약할 수 있습니다.

실제 일반적으로 발생할 수 있는 두 가지 예를 살펴보겠습니다. 첫째, 다국적 금융 회사의 데이터베이스 관리자인 존은 실수로 프로덕션 단계에서 실시간 테이블을 삭제했고 하루 뒤에 고객 불만을 통해 이 실수를 알게 되었습니다. 둘째, 국내 온라인 소매업체의 사이트 안정성 엔지니어인 김은 새 결제 대행 엔진을 적용하면서 여러 개의 스키마 변경을 시도하여 소비자 결제 데이터베이스를 손상시킵니다. Spanner의 PITR 기능에 버전 보관 기간이 올바르게 설정되어 있다면 존과 김은 이런 문제를 피할 수 있습니다. 존은 이전의 쿼리 조건과 타임스탬프를 지정하여 비활성 읽기를 수행한 다음 그 결과를 실시간 데이터베이스에 기록하여 테이블을 복구할 수 있으며 김은 이전의 타임스탬프를 지정하여 백업 또는 내보내기 기능을 사용하여 전체 데이터베이스를 각각 백업 또는 내보내기한 후 새로운 데이터베이스로 복원 또는 가져올 수 있습니다.

PITR로 전체 데이터베이스 설정 및 복구

버전 보관 기간은 데이터베이스 수준에서 설정 가능하므로 새로운 보관 기간을 설정하기 위해서는 먼저 원하는 데이터베이스 세부정보 페이지로 이동해야 합니다. 기본적으로는 데이터베이스가 생성될 때마다 1시간으로 설정됩니다. PITR 기능 덕분에 이제 이 기간을 분, 시간, 일 단위로 최대 7일까지 설정할 수 있습니다.

아래의 그림은 UI 콘솔에서 데이터베이스의 보관 기간을 설정하는 방법을 보여줍니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/set_a_databases_retention_period.max-2000x2000.jpg
확대하려면 클릭

인스턴스에서 각 데이터베이스의 보관 기간을 설정할 수 있습니다. 이제 UI에서 과거의 특정 시점(버전 시간)에 백업을 만들고 해당 백업에서 복원하는 방법을 살펴보겠습니다. 아래 그림은 UI에서 백업 생성 방법을 보여줍니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/cloud_spanner_demo.max-900x900.jpg
확대하려면 클릭

UI에서 데이터베이스의 백업을 나열해 보면 버전 시간이 백업 생성 시간과 다른 것을 볼 수 있는데, 이를 통해 해당 백업 데이터가 과거 특정 시점 데이터베이스 버전의 데이터임을 알 수 있습니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/database_details.max-1900x1900.jpg
확대하려면 클릭

이제 데이터베이스를 복원하여 동일한 인스턴스 내에서 혹은 Spanner를 사용 중인 동일한 리전 또는 멀티 리전의 다른 인스턴스에서 전체 데이터베이스를 복구할 수 있습니다.

복원된 데이터베이스는 백업 생성 시점의 원본 데이터베이스와 같은 버전 보관 기간을 포함하게 되며 기본값인 1시간으로 설정되지 않습니다.

PITR의 데이터 보관 기간인 최대 7일이 충분하지 않은 경우 Spanner는 백업(최대 1년의 보관 기간)과 내보내기 기능을 통해 더 긴 보관 기간으로 데이터 보호 옵션을 계속해서 제공할 수 있습니다. 데이터를 CSV 혹은 Avro 파일 형식으로 내보내 원하는 기간만큼 데이터를 보관할 수 있습니다.

자세히 알아보기 

PITR은 이제 Google이 관리하는 모든 리전에서 전 세계적으로 사용할 수 있습니다. 버전 보관 기간 동안 키의 모든 버전을 저장하는 데 사용되는 추가 스토리지에 대한 요금이 부과됩니다. 데이터를 복구하기 위해 백업/복원 혹은 가져오기/복원 기능을 사용하도록 선택하면 선택한 기능의 가격에 따라 요금이 부과됩니다.  

게시 위치