Azure Cosmos DB에서 정기적인 백업 및 복원
적용 대상: NoSQL MongoDB Cassandra Gremlin 테이블
Azure Cosmos DB는 자동으로 데이터의 백업을 정기적으로 수행합니다. 자동 백업은 데이터베이스 작업의 성능 또는 가용성에 영향을 주지 않고 수행됩니다. 모든 백업은 스토리지 서비스에서 개별적으로 저장되고 이러한 백업은 지역 재해에 대비한 복원을 위해 전역적으로 복제됩니다. Azure Cosmos DB를 사용하면 데이터뿐만 아니라 데이터의 백업도 지역 재해에 대해 중복성 및 복원력이 뛰어납니다.
Azure Cosmos DB가 데이터 백업을 수행하는 방법
다음 단계에서는 Azure Cosmos DB가 데이터 백업을 수행하는 방법을 보여줍니다.
Azure Cosmos DB는 4시간마다 데이터베이스의 전체 백업을 자동으로 수행하며 기본적으로 항상 2개의 최신 백업만 저장됩니다. 기본 간격이 워크로드에 충분하지 않은 경우 Azure Portal에서 백업 간격과 보존 기간을 변경할 수 있습니다. Azure Cosmos DB 계정을 만드는 동안 또는 만든 후에 백업 구성을 변경할 수 있습니다. 컨테이너 또는 데이터베이스가 삭제되면 Azure Cosmos DB는 지정된 프로비전된 처리량 컨테이너 또는 공유 처리량 데이터베이스의 기존 스냅샷을 30일 동안 유지합니다. 처리량이 데이터베이스 수준에서 프로비전되는 경우 백업 및 복원 프로세스는 전체 데이터베이스 범위에서 발생합니다.
Azure Cosmos DB에서 실제 데이터는 Azure Cosmos DB 내에 로컬로 상주하는 반면, 이러한 백업은 Azure Blob Storage에 저장됩니다.
낮은 대기 시간을 보장하기 위해 백업 스냅샷이 현재 쓰기 지역(또는 다중 지역 쓰기 구성이 있는 경우 쓰기 지역 중 한 곳)과 동일한 지역에 있는 Azure Blob Storage에 저장됩니다. 지역적 재해에 대비한 복구를 위해 Azure Blob Storage에 있는 백업 데이터의 각 스냅샷은 GRS(지역 중복 스토리지)를 통해 다른 지역으로 다시 복제됩니다. 백업이 복제되는 지역은 원본 지역 및 원본 지역에 연결된 지역 쌍을 기반으로 합니다. 자세한 내용은 Azure 지역의 지역 중복 쌍 목록 문서를 참조하세요. 이 백업에 직접 액세스할 수 없습니다. Azure Cosmos DB 팀은 지원 요청을 통해 요청할 때 백업을 복원합니다.
다음 이미지는 미국 서부에 있는 3개의 기본 실제 파티션이 모두 있는 Azure Cosmos DB 컨테이너를 보여 줍니다. 컨테이너는 미국 서부의 원격 Azure Blob Storage 계정에 백업된 다음 미국 동부로 복제됩니다.
백업은 애플리케이션의 성능이나 가용성에 영향을 주지 않고 수행됩니다. Azure Cosmos DB는 추가로 프로비전된 처리량(RU)을 사용하지 않으며 데이터베이스의 성능 및 가용성에 영향을 주지 않고 백그라운드에서 데이터 백업을 수행합니다.
정기적인 백업 모드를 사용하면 백업은 Azure Cosmos DB 계정의 쓰기 지역에서만 수행됩니다. 복원 작업은 항상 원본 계정의 쓰기 지역에 있는 새 계정으로 데이터를 복원합니다.
새 계정으로 복원되는 항목은 무엇인가요?
- 프로비저닝된 처리량 컨테이너, 공유 처리량 데이터베이스 또는 전체 계정 조합을 복원하도록 선택할 수 있습니다.
- 복원 작업을 수행하면 모든 데이터 및 해당 인덱스 속성이 새 계정으로 복원됩니다.
- 복원 기간은 복원해야 하는 데이터의 양에 따라 달라집니다.
- 새로 복원된 데이터베이스 계정의 일관성 설정은 원본 데이터베이스 계정의 일관성 설정과 동일합니다.
복원되지 않는 것은 무엇인가요?
특정 시점 복원 후에는 다음 구성이 복원되지 않습니다.
- 공유 처리량 데이터베이스 아래의 컨테이너 하위 집합은 복원할 수 없습니다. 전체 데이터베이스를 전체적으로 복원할 수 있습니다.
- 데이터베이스 계정 키 복원된 계정은 새 데이터베이스 계정 키를 사용하여 생성됩니다.
- 방화벽, VNET, 데이터 평면 RBAC 또는 프라이빗 엔드포인트 설정.
- 지역. 복원된 계정은 원본 계정의 쓰기 지역인 단일 지역 계정만 됩니다.
- 저장 프로시저, 트리거 및 UDF.
- 역할 기반 액세스 제어 할당. 이러한 항목은 다시 할당해야 합니다.
- 만료된 TTL로 인해 삭제된 문서입니다.
- synapse 링크를 사용하는 경우의 분석 데이터입니다.
- 구체화된 보기
복원이 완료된 후에 이러한 구성 중 일부를 복원된 계정에 추가할 수 있습니다.
Azure Synapse Link를 사용한 Azure Cosmos DB 백업
Azure Synapse Link 사용 계정의 경우 분석 저장소 데이터는 백업 및 복원에 포함되지 않습니다. Azure Synapse Link를 사용하도록 설정하면 Azure Cosmos DB는 예약된 백업 간격에 따라 컨테이너의 트랜잭션 저장소에 있는 데이터를 자동으로 계속 백업합니다. 현재, 분석 저장소의 데이터 자동 백업 및 복원이 지원되지 않습니다.
백업 비용 이해
2개의 백업이 무료로 제공되며 백업 스토리지 가격 책정에 설명된 백업 스토리지에 대한 지역 기반 가격 책정에 따라 추가 백업 요금이 청구됩니다.
예를 들어, 백업 보존이 240시간(또는 10일)으로 구성되고 백업 간격이 24시간으로 구성된 시나리오를 생각해 보세요. 이 구성은 백업 데이터 사본이 10개 있음을 의미합니다. Azure 미국 서부 지역에 1TB의 데이터가 있는 경우 해당 월의 백업 스토리지 비용은 0.12 * 1000 * 8
입니다.
보존 또는 복원 관리에 필요한 권한
CosmosdbBackupOperator, 소유자 또는 기여자 역할의 일부인 주체는 복원을 요청하거나 보존 기간을 변경할 수 있습니다.
Azure Cosmos DB에서 주기적 백업을 수동으로 관리
Azure Cosmos DB API for NoSQL 계정을 사용하면 다음 방법 중 하나를 사용하여 고유한 백업을 유지할 수도 있습니다.
Azure Data Factory
Azure Data Factory를 사용하여 선택한 스토리지 솔루션으로 주기적으로 데이터를 이동합니다.
Azure Cosmos DB 변경 피드
Azure Cosmos DB 변경 피드를 사용하여 증분 변경 또는 전체 백업에 대한 데이터를 정기적으로 읽고, 사용자 고유의 스토리지에 저장합니다.