애플리케이션 데이터베이스는 Ops Manager 설정, 작업 기록 및 백업 메타데이터 저장합니다. 애플리케이션 데이터베이스를 외부 애플리케이션 데이터베이스로 배포 경우, Kubernetes Operator는 이를 표준 MongoDB 사용자 지정 리소스 로 관리하므로 Ops Manager Kubernetes Operator가 관리하는 다른 MongoDB deployment 와 마찬가지로 백업 및 복원 할 수 있습니다.
외부 애플리케이션 데이터베이스를 배포 하려면 다음 절차를 참조하세요.
애플리케이션 데이터베이스를 백업해야 하는 이유
내부적으로 managed 애플리케이션 데이터베이스를 사용하는 Ops Manager 배포서버 표준 백업 도구로는 연결할 수 없는 Ops Manager 사용자 지정 리소스 내에 애플리케이션 데이터베이스를 저장합니다. Ops Manager 자체에 장애가 발생하면 관리하는 배포에 대한 제어력을 잃을 수 있습니다.
외부 애플리케이션 데이터베이스를 백업하면 다음과 같은 요구 사항이 해결됩니다.
재해 복구. 데이터 손실, 데이터 손상 또는 구성 변경 실패 후 애플리케이션 데이터베이스를 복원합니다.
운영적 안전망. 잘못된 대량 쓰기 (write)를 발생하기 직전으로 롤백합니다.
복구 목표를 낮춥니다. 지속적인 oplog 캡처는 주기적인 스냅샷만 기반으로 하는 전략보다 낮은 복구 점 및 복구 시간 목표를 지원합니다.
애플리케이션 데이터베이스 백업이 제공하는 기능
MongoDB Ops Manager는 애플리케이션 데이터베이스 데이터의 사본과 oplog 엔트리의 연속 스트림을 유지하므로 다음을 수행할 수 있습니다.
애플리케이션 데이터베이스의 전체 스냅샷 새 배포 또는 기존 배포서버 로 복원합니다.
선택한 타임스탬프로 oplog를 재생하여, 스냅샷 사이의 원하는 시점으로 애플리케이션 데이터베이스를 복원할 수 있습니다.
복원하지 않고 백업 스냅샷을 쿼리합니다. 자세히 알아보려면 Ops Manager 리소스에 대한 쿼리 가능 백업 구성을 참조하세요.
선택적으로 변경할 수 없는 스냅샷을 사용하여 보존 및 컴플라이언스 요구 사항을 충족합니다.
아키텍처
외부 애플리케이션 데이터베이스 배포는 다음 리소스를 사용합니다:
Resource | 설명 |
|---|---|
관리 MongoDB Ops Manager | 고유의 내부 managed 된 애플리케이션 데이터베이스를 가진 MongoDB Ops Manager 리소스. 관리 MongoDB Ops Manager 인스턴스는 데이터베이스를 관리하지 않습니다. 이것은 외부 애플리케이션 데이터베이스를 포함하는 프로젝트를 관리하며, 프라이머리 MongoDB Ops Manager 인스턴스를 일은 경우 복구 엔진의 역할을 합니다. 별도의 장애 도메인(예: 다른 가용영역)에 배포하세요. |
외부 애플리케이션 데이터베이스 |
|
프라이머리 MongoDB Ops Manager | 데이터베이스를 관리하는 Ops Manager 리소스 . |
새 MongoDB Ops Manager 인스턴스는 애플리케이션 데이터베이스 없이는 시작할 수 없기 때문에, spec.role이 AppDB (으)로 설정된 MongoDB 리소스는 사용 가능한 MongoDB Ops Manager 인스턴스 없이는 조화할 수 없기 때문에, 관리 MongoDB Ops Manager 인스턴스는 외부 애플리케이션 데이터베이스의 전제 조건입니다. 외부 애플리케이션 데이터베이스를 배포하기 전에 그것을 배포하십시오.
프라이머리 MongoDB Ops Manager 인스턴스가 손실되는 경우 관리 MongoDB Ops Manager 인스턴스를 사용하여 외부 애플리케이션 데이터베이스를 복원한 다음 복원된 애플리케이션 데이터베이스를 대상으로 프라이머리 MongoDB Ops Manager 인스턴스를 다시 생성하고 MongoDB 워크로드를 복원합니다.
백업 및 외부 애플리케이션 데이터베이스
Ops Manager 애플리케이션 데이터베이스에 백업 메타데이터 저장하고, Ops Manager 애플리케이션 과 백업 디먼 모두 애플리케이션 데이터베이스에 연결합니다.spec.externalApplicationDatabaseRef를 사용하여 외부 애플리케이션 데이터베이스를 참조하면 Kubernetes Operator가 이 연결을 자동으로 처리합니다.
Kubernetes Operator는 참조된 MongoDB 리소스 의 TLS 구성 및 CA를 확인하고 이를 Ops Manager StatefulSet와 백업 디먼 StatefulSet 모두에 적용합니다. 백업 디먼 내부적으로 managed 애플리케이션 데이터베이스를 신뢰하는 것과 같은 방식으로 TLS가 활성화된 외부 애플리케이션 데이터베이스를 신뢰합니다.
백업 디먼은 Kubernetes 연산자가 MongoDB Ops Manager 애플리케이션용으로 계산하는 동일한 연결 문자열을 사용하여 연결됩니다.
백업 활성화는 변경되지 않습니다. 내부적으로 managed 애플리케이션 데이터베이스에 대해 설정하는 것처럼 프라이머리 Ops Manager 리소스 에 spec.backup.enabled를 설정하다 . 유일한 차이점은 애플리케이션 데이터베이스가 실행되는 위치입니다.
외부 애플리케이션 데이터베이스 자체를 백업하려면 관리 MongoDB Ops Manager 인스턴스가 managed 프로젝트에서 이를 나타내는 MongoDB 리소스에서 백업을 활성화합니다. 자세한 내용은 MongoDB 데이터베이스 백업 구성을 참조하세요.
마이그레이션 주석
내부에서 managed 애플리케이션 데이터베이스와 외부 애플리케이션 데이터베이스 간의 마이그레이션 동안, Kubernetes 연산자는 애플리케이션 데이터베이스 StatefulSet에 annotation을 설정하여 StatefulSet이 소유자를 변경할 준비가 되었음을 기록합니다. Kubernetes 연산자가 이러한 주석을 설정하고 읽습니다. 직접 설정하지 마세요.
주석 | 설명 |
|---|---|
| Ops Manager 리소스 MongoDB 리소스 소유권을 가질 수 있도록 StatefulSet를 릴리스했습니다. Kubernetes Operator는 내부적으로 managed 애플리케이션 데이터베이스에서 외부 애플리케이션 데이터베이스로 마이그레이션 때 이 주석을 설정합니다. 자세한 학습 은 애플리케이션 데이터베이스를 외부 배포로 마이그레이션을 참조하세요. |
| MongoDB 리소스 Ops Manager 리소스 회수할 수 있도록 StatefulSet를 릴리스했습니다. Kubernetes Operator는 외부 애플리케이션 데이터베이스를 내부 관리 로 반환할 때 이 어노테이션을 설정합니다. 자세한 학습 은 Ops Manager 로 외부 애플리케이션 데이터베이스 반환을 참조하세요. |
요구 사항:
외부 애플리케이션 데이터베이스를 백업하기 전에 다음 작업을 완료하세요.
프라이머리 Ops Manager 리소스 에 대한 외부 애플리케이션 데이터베이스를 구성합니다. 자세한 학습 은 외부 애플리케이션 데이터베이스를 사용하여 Ops Manager 배포 또는 애플리케이션 데이터베이스를 외부 배포로 마이그레이션을 참조하세요.
MongoDB Ops Manager 리소스용으로 Kubernetes 연산자가 생성하는 암호화 키 보안 비밀을 백업합니다. Kubernetes 연산자는 이 시크릿의 이름을
<om-resource-name>-gen-key로 지정합니다. 그리고 MongoDB Ops Manager는 이 시크릿 없이는 애플리케이션 데이터베이스를 읽을 수 없습니다. 자세한 내용은 암호화 키를 참조하세요.관리 MongoDB Ops Manager 인스턴스에 대한 스냅샷 저장 구성. 자세한 학습은 Kubernetes Operator로 파일 시스템 백업 저장소 구성을 참조하세요.
제한 사항
외부 애플리케이션 데이터베이스 백업 에는 다음과 같은 제한 사항이 있습니다.
외부 애플리케이션 데이터베이스는 단일 Kubernetes 클러스터 의 MongoDB 리소스 여야 합니다. Kubernetes Operator는 멀티 클러스터 토폴로지 사용하는 MongoDBMultiCluster 리소스 및 MongoDB 리소스를 거부합니다. 다중 클러스터 지원 이후 출시하다 에서 제공될 예정입니다.
이 기능은 애플리케이션 데이터베이스를 리전 간이나 Kubernetes 클러스터 간에서 복제하지 않습니다.
이 기능 애플리케이션 데이터베이스 자체 이외의 Ops Manager 상태 백업하거나 복원 하지 않습니다.
이 기능 Ops Manager 로 관리 MongoDB 배포를 백업 또는 복원 방법을 변경하지 않습니다.
Kubernetes 연산자는 MongoDB 리소스에 해당 설정이 없으므로 외부 애플리케이션 데이터베이스에 대한
automationConfig재정의를 지원하지 않습니다.Kubernetes 연산자는 외부 애플리케이션 데이터베이스로 마이그레이션 중
spec.applicationDatabase.passwordSecretKeyRef을 지원하지 않습니다. Kubernetes 연산자는 새 비밀번호를 생성하고 제공한 모든 비밀번호를 로테이션합니다.기존 MongoDB 배포서버를 외부 애플리케이션 데이터베이스로 참조할 때, 당신이 해당 배포서버의 일상 관리에 대한 책임을 매게 됩니다. Kubernetes 연산자는 MongoDB 리소스 구성과 내부적으로 managed 된 애플리케이션 데이터베이스 구성을 일치시키는 도구를 제공하지 않습니다. 해당 구성을 직접 지정해야 합니다.