이 페이지에서는 여러 리전에서 Cassandra를 복구 또는 복원하는 방법을 설명합니다.
멀티 리전 배포에서 Apigee Hybrid는 여러 데이터 센터의 여러 지리적 위치에 배포됩니다. 하나 이상의 리전이 실패했지만 정상 리전이 남아 있는 경우 정상 리전을 사용하여 실패한 Cassandra 리전을 최신 데이터로 복구할 수 있습니다.
모든 Hybrid 리전에 치명적인 오류가 발생하면 Cassandra를 복원할 수 있습니다. 배포에 Apigee 조직이 여러 개 있는 경우 복원 프로세스에서 모든 조직의 데이터를 복원한다는 점에 유의하세요. 멀티 조직 설정에서 특정 조직만 복원하는 기능은 지원되지 않습니다.
이 주제에서는 실패한 리전을 복구하는 두 가지 방법을 설명합니다.
- 실패한 리전 복구 - 정상 리전을 기준으로 실패한 리전을 복구하기 위한 단계에 대해 설명합니다.
- 실패한 리전 복원 - 백업에서 실패한 리전을 복원하는 단계를 설명합니다. 이 방식은 모든 하이브리드 리전이 영향을 받는 경우에만 필요합니다.
실패한 리전 복구
정상 상태 리전에서 실패한 리전을 복구하려면 다음 단계를 수행합니다.
- 영향을 받는 리전에서 정상 작동하는 리전으로 API 트래픽을 리디렉션합니다. 실패한 리전에서 변경된 트래픽을 지원할 수 있도록 용량을 계획합니다.
- 영향을 받는 리전을 사용 중단합니다. 영향을 받는 각 리전에 대해 하이브리드 리전 해제에 설명된 단계를 따르세요. 사용 중단이 완료될 때까지 기다린 후 다음 단계로 이동합니다.
- 영향을 받는 리전을 복원합니다. 복원하려면 GKE, GKE On-Prem, AKS의 멀티 리전 배포에 설명된 대로 새 리전을 만듭니다.
백업에서 복원
Cassandra 백업은 구성에 따라 Cloud Storage 또는 원격 서버에 저장될 수 있습니다. 백업에서 Cassandra를 복원하려면 다음 단계를 수행합니다.
- 복원할 리전의 재정의 파일을 엽니다.
cassandra:hostNetwork
를false
로 설정합니다.- 재정의 파일을 적용합니다.
Helm
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ -f OVERRIDES_FILE
apigeectl
$APIGEECTL_HOME/apigeectl apply -f YOUR_OVERRIDES_FILE.yaml
- 계속하기 전에
hostNetwork
가false
로 설정되었는지 확인합니다.kubectl -n apigee get apigeeds -o=jsonpath='{.items[].spec.components.cassandra.hostNetwork}'
- 복원 중인 리전에서 하이브리드를 삭제합니다.
Helm
helm delete DATASTORE_RELEASE_NAME \ --namespace apigee
여기서 DATASTORE_RELEASE_NAME은 리전에 Cassandra를 설치한 Datastore의 출시 이름입니다(예:
datastore-region1
).apigeectl
$APIGEECTL_HOME/apigeectl delete -f YOUR_OVERRIDES_FILE.yaml
-
백업에서 원하는 리전을 복원합니다. 자세한 내용은 백업에서 리전 복원을 참조하세요.
- 삭제된 리전 참조를 삭제하고
KeySpaces
메타데이터에서 복원된 리전 참조를 추가합니다. nodetool status
옵션을 사용하여 Cassandra 데이터 센터 이름을 가져옵니다.kubectl exec -n apigee -it apigee-cassandra-default-0 -- bash nodetool -u APIGEE_JMX_USER -pw APIGEE_JMX_PASSWORD status |grep -i Datacenter
각 항목의 의미는 다음과 같습니다.
- APIGEE_JMX_USER는 Cassandra JMX 작업 사용자의 사용자 이름입니다. Cassandra JMX 인터페이스로 인증하고 통신하는 데 사용됩니다.
cassandra:auth:jmx:username
을 참조하세요. - APIGEE_JMX_PASSWORD는 Cassandra JMX 작업 사용자의 비밀번호입니다.
cassandra:auth:jmx:password
를 참조하세요.
- APIGEE_JMX_USER는 Cassandra JMX 작업 사용자의 사용자 이름입니다. Cassandra JMX 인터페이스로 인증하고 통신하는 데 사용됩니다.
KeySpaces
복제를 업데이트합니다.- 클라이언트 컨테이너를 만들고 CQL 인터페이스를 통해 Cassandra 클러스터에 연결합니다.
- CQL 인터페이스에서 사용자 키스페이스 목록을 가져옵니다.
cqlsh CASSANDRA_SEED_HOST -u APIGEE_DDL_USER -p APIGEE_DDL_PASSWORD --ssl -e "select keyspace_name from system_schema.keyspaces;"|grep -v system
각 매개변수는 다음과 같습니다.
- CASSANDRA_SEED_HOST는 Cassandra 멀티 리전 시드 호스트입니다. 대부분의 멀티 리전 설치에서는 첫 번째 리전의 호스트 IP 주소를 사용합니다. 멀티 리전에 Apigee Hybrid 구성 및
cassandra:externalSeedHost
를 참조하세요. - APIGEE_DDL_USER 및 APIGEE_DDL_PASSWORD는 Cassandra 데이터 정의 언어(DDL) 사용자의 관리자 사용자 이름과 비밀번호입니다. 기본값은 '
ddl_user
' 및 'iloveapis123
'입니다.구성 속성 참조의
cassandra.auth.ddl.password
와 Apache Cassandra cqlsh 문서의 명령줄 옵션을 참조하세요.
- CASSANDRA_SEED_HOST는 Cassandra 멀티 리전 시드 호스트입니다. 대부분의 멀티 리전 설치에서는 첫 번째 리전의 호스트 IP 주소를 사용합니다. 멀티 리전에 Apigee Hybrid 구성 및
- 키스페이스마다 CQL 인터페이스에서 다음 명령어를 실행하여 복제 설정을 업데이트합니다.
ALTER KEYSPACE KEYSPACE_NAME WITH replication = {'class': 'NetworkTopologyStrategy', 'DATACENTER_NAME':3};
각 항목의 의미는 다음과 같습니다.
- KEYSPACE_NAME은 이전 단계 출력에 나열된 키스페이스의 이름입니다.
- DATACENTER_NAME은 8단계에서
nodetool status
옵션으로 가져온 Cassandra 데이터 센터의 이름입니다.