Cassandra 백업 개요

Apigee Hybrid 백업 및 복원 기능을 사용하면 하이브리드 데이터 백업을 만들고 재해 발생 시 데이터를 이전 작업 스냅샷으로 복원할 수 있습니다. 백업 가용성과 보관은 개발자가 제공하는 백업 인프라를 기반으로 합니다.

Apigee Hybrid의 일반적인 설치는 다음 구성요소로 구성됩니다.

  • MART(관리자 서비스)
  • 컨트롤러 및 감시자(Kubernetes 객체 관리)
  • Istio(인그레스 관리)
  • 런타임, 동기화, UDCA(환경당 하나)
  • 원격 분석(모니터링 및 로깅)
  • 인증서 관리자(인증서 관리)
  • Datastore(Cassandra 및 Redis 데이터베이스)

Cassandra를 제외한 모든 구성요소는 스테이트리스(Stateless)이며 어떠한 데이터도 유지되지 않습니다. 이러한 구성요소에는 백업 및 복원이 필요하지 않습니다. 복구 중에는 기존 재정의를 사용하여 구성요소를 다시 설치하는 것으로 충분합니다.

Cassandra를 백업하는 이유

백업은 재해 시나리오에 대비할 수 있는 중요한 보호 수단입니다. 각 백업은 백업이 생성될 때 존재하는 Cassandra 데이터의 일관된 스냅샷 역할을 합니다. Cassandra 데이터 외에도 이 스냅샷에는 Cassandra 클러스터 내의 스키마와 메타데이터가 포함됩니다. 재해가 발생할 경우 백업을 사용하면 하이브리드 인스턴스를 이전 작동 상태로 복원할 수 있습니다. 하이브리드 인스턴스의 크기에 따라 단일 백업 세트에 하나 이상의 백업 파일이 포함될 수 있습니다.

Cassandra 백업에 대해 알아야 할 사항

Cassandra는 각 리전 또는 데이터 센터에 데이터 복사본이 최소 3개 이상 있도록 구성된 복제된 데이터베이스입니다. Cassandra는 스트리밍 복제 및 읽기 복구를 사용하여 특정 시점에 각 리전 또는 데이터 센터의 데이터 복제본을 유지합니다.

하이브리드에서 Cassandra 백업은 기본적으로 사용 설정되지 않습니다. 치명적인 오류로 인해 데이터가 손실된 경우에 대비하여 Cassandra 백업을 사용 설정하는 것이 좋습니다. Cassandra 백업은 재해 복구 시 사용하기 위한 것이며 실수로 삭제하여 손실된 데이터를 복원하기 위한 것이 아닙니다.

백업은 overrides.yaml 파일에 설정된 일정에 따라 생성됩니다. 백업 일정이 하이브리드 클러스터에 적용되면 일정에 따라 Kubernetes 백업 작업이 실행됩니다. 이 작업은 하이브리드 클러스터의 각 Cassandra 노드에서 노드의 모든 데이터를 수집하고, 데이터의 보관 파일을 만들고, Cloud Storage 또는 원격 서버의 디렉터리로 보관 파일을 보내는 백업 스크립트를 트리거합니다.

백업되는 항목

하이브리드 예약 백업은 백업 시 Apigee의 Cassandra에 저장된 지속 런타임 데이터의 전체 백업입니다. 백업 시간 이후에는 백업에서 데이터를 수정할 수 없습니다. 예약 백업은 다음 항목으로 구성됩니다.

  • 사용자 스키마를 포함한 Cassandra 스키마(Apigee 키스페이스 정의)
  • 클러스터의 Cassandra 노드당 Cassandra 파티션 토큰 정보입니다.
  • Cassandra 데이터의 스냅샷

백업 데이터가 저장되는 위치

백업 데이터 위치는 백업 방법에 따라 다릅니다. Apigee Hybrid에서는 다음과 같은 백업 방법을 지원합니다.

  • Cloud Storage에서 백업: 백업은 Google Cloud 프로젝트에 구성된 Cloud Storage 버킷에 저장됩니다.
  • 원격 서버에서 백업: 백업은 개발자가 지정한 원격 서버의 디렉터리에 저장됩니다.

데이터 보호 방법

백업에 Cloud Storage를 사용하는 경우 기본적으로 백업 데이터가 암호화됩니다. 백업이 Cloud Storage에 없으면 백업 데이터는 원격 서버로 전송되는 중에 암호화됩니다. 그러나 전송 후에는 백업 데이터가 원격 서버에서 암호화되었는지 확인해야 합니다.

백업을 수행하는 방법

백업을 cron 작업으로 예약해야 합니다. cronjob은 개발자가 구성한 overrides.yaml 파일에서 구성을 읽습니다. 복구 프로세스 중에 다시 사용할 수 있도록 overrides.yaml 파일의 복사본을 만드는 것이 좋습니다.

다음 섹션에서는 Cloud Storage 및 원격 서버에서 백업을 예약하는 방법을 자세히 설명합니다.