샤드
이 페이지의 내용
샤드에는 샤딩된 클러스터에 대한 샤딩된 데이터의 하위 세트가 포함되어 있습니다. 클러스터의 샤드는 클러스터의 전체 데이터세트를 함께 보유합니다.
중복성과 고가용성을 제공하기 위해 샤드는 복제본 세트로 배포되어야 합니다.
중요
샤딩된 클러스터는 많은 내부 작업에 "majority"
쓰기 고려를 사용합니다. PSA 복제본 세트의 성능 문제로 인해 샤딩된 클러스터에서 중재자를 사용하는 것은 권장되지 않습니다.
경고
일반적으로 샤드에서 직접 작업을 수행하면 데이터 손상이나 데이터 손실이 발생할 수 있으므로 직접 수행하지 마세요. 사용자, 클라이언트 또는 애플리케이션은 로컬 관리 또는 유지 관리 작업을 수행하기 위해서만 샤드에 직접 연결해야 합니다.
단일 샤드에 대해 쿼리를 수행하면 데이터의 하위 집합만 반환됩니다. 읽기 또는 쓰기 작업을 포함한 클러스터 수준 작업을 수행하려면 mongos
에 연결하세요.
중요
MongoDB는 인접한 두 개의 청크가 하나의 샤드에 존재한다고 보장하지 않습니다.
프라이머리 샤드
샤딩된 클러스터의 각 데이터베이스에는 해당 데이터베이스에 대한 모든 비 샤드형 컬렉션을 보유하는 프라이머리 샤드가 있습니다. 각 데이터베이스에는 고유한 프라이머리 샤드가 있습니다. 프라이머리 샤드는 복제본 세트의 프라이머리 샤드와 관련이 없습니다.
mongos
은(는) 클러스터에서 데이터 양이 가장 적은 샤드를 선택하여 새 데이터베이스를 생성할 때 기본 분할된 데이터베이스를 선택합니다. mongos
은(는) totalSize
명령에서 반환된 필드를 listDatabases
선택 기준의 일부로 사용합니다.
데이터베이스의 프라이머리 샤드를 변경하려면 movePrimary
명령을 사용합니다. 기본 샤드의 마이그레이션 프로세스는 완료하는 데 상당한 시간이 걸릴 수 있으므로 완료될 때까지 데이터베이스와 관련된 컬렉션에 액세스하지 않아야 합니다. 마이그레이션되는 데이터의 양에 따라 마이그레이션은 전체 클러스터 작업에 영향을 미칠 수 있습니다. 프라이머리 샤드를 변경하기 전에 클러스터 작업 및 네트워크 로드에 미치는 영향을 고려하십시오.
이전에 복제본 세트로 사용되었던 샤드를 사용하여 새 샤딩된 클러스터를 배포하는 경우, 모든 기존 데이터베이스는 원래의 복제본 세트에 계속 상주합니다. 이후에 생성된 데이터베이스는 클러스터의 모든 샤드에 상주할 수 있습니다.
샤드 상태
mongosh
의 sh.status()
메서드를 사용하여 클러스터의 개요를 볼 수 있습니다. 이 보고서에는 데이터베이스의 프라이머리 샤드와 샤드의 청크 분포가 포함됩니다. 자세한 내용은 sh.status()
메서드를 참조하세요.
샤딩된 클러스터 보안
자체 관리형 내부/멤버십 인증을 사용하여 클러스터 내 보안을 시행하고 권한이 없는 클러스터 구성 요소가 클러스터에 액세스하지 못하도록 합니다. 내부 인증을 시행하려면 클러스터의 각 mongod
를 적절한 보안 설정으로 시작해야 합니다.
MongoDB 5.3부터는 SCRAM-SHA-1을 클러스터 내 인증에 사용할 수 없습니다. SCRAM-SHA-256만 지원됩니다.
이전 MongoDB 버전에서는 SCRAM이 명시적으로 활성화되어 있지 않더라도 SCRAM-SHA-1과 SCRAM-SHA-256을 모두 클러스터 내 인증에 사용할 수 있습니다.
자체 관리형 샤딩된 클러스터 배포에 대한 튜토리얼은 키파일 인증을 사용하여 클러스터 배포하기를 참조하세요.
샤드 로컬 사용자
각 샤드는 샤드 데이터 및 작업에 대한 무단 액세스를 제한하기 위해 셀프 관리형 배포의 역할 기반 액세스 제어(RBAC)를 지원합니다. mongod
옵션으로 복제본 세트의 각 --auth
를 시작하여 RBAC를 시행합니다. 또는 클러스터 내부 보안을 위해 자체 관리형 내부/멤버십 인증을 시행하면 RBAC를 통해 사용자 액세스를 제어할 수도 있습니다.
MongoDB 5.3부터는 SCRAM-SHA-1을 클러스터 내 인증에 사용할 수 없습니다. SCRAM-SHA-256만 지원됩니다.
이전 MongoDB 버전에서는 SCRAM이 명시적으로 활성화되어 있지 않더라도 SCRAM-SHA-1과 SCRAM-SHA-256을 모두 클러스터 내 인증에 사용할 수 있습니다.
각 샤드에는 자체 샤드 로컬 사용자가 있습니다. 이러한 사용자는 다른 샤드에서 사용할 수 없으며 mongos
를 통해 클러스터에 연결하는 데 사용할 수 없습니다.
RBAC가 활성화된 MongoDB 배포에 사용자를 추가하는 방법에 대한 튜토리얼은 자체 관리 배포에서 액세스 제어 활성화를 참조하세요.