샤딩된 클러스터 구성 요소
MongoDB 샤딩된 클러스터는 다음 컴포넌트로 구성됩니다.
mongos:
mongos
는 클라이언트 애플리케이션과 샤딩된 클러스터 간의 인터페이스를 제공하는 쿼리 라우터 역할을 합니다.mongos
는 헤지된 읽기(hedged read)를 지원하여 지연 시간을 최소화할 수 있습니다.config 서버: config 서버는 클러스터에 대한 메타데이터와 구성 설정을 저장합니다. config 서버는 복제본 세트(CSRS)로 배포되어야 합니다.
프로덕션 구성
프로덕션 클러스터에서는 데이터가 중복되고 시스템의 가용성이 높은지 확인하십시오. 프로덕션 샤딩 클러스터 배포의 경우 다음 사항을 고려하세요.
복제본 세트 배포
가능한 경우, 각 복제본 집합의 한 멤버를 재해 복구 위치에 적합한 사이트에 배포하는 것이 좋습니다.
참고
두 개의 데이터 센터에 복제본 세트 구성원을 분산하면 단일 데이터 센터에 비해 이점이 있습니다. 두 개의 데이터 센터로 분산된 경우,
데이터 센터 중 하나가 다운되더라도 단일 데이터 센터 배포판과 달리 데이터를 읽을 수 있습니다.
소수의 구성원이 있는 데이터 센터가 다운되더라도 복제본 세트는 읽기 작업뿐만 아니라 쓰기 작업도 계속 수행할 수 있습니다.
그러나 대다수의 구성원이 있는 데이터 센터가 다운되면 복제본 세트는 읽기 전용이 됩니다.
가능하다면 최소 3개 이상의 데이터 센터에 구성원을 배포하세요. 구성 서버 복제본 세트(CSRS)의 경우 가장 좋은 방법은 3개(또는 구성원 수에 따라 그 이상) 센터에 배포하는 것입니다. 세 번째 데이터 센터의 비용이 부담스러운 경우, 회사 정책이 허용하는 경우 데이터 보유 멤버를 두 데이터 센터에 균등하게 분산하고 나머지 멤버는 클라우드에 저장하는 것도 한 가지 방법입니다.
샤드 개수
샤딩된 데이터를 배포하기 위해 최소 2개의 샤드가 필요합니다. 가까운 미래에 샤딩을 활성화할 계획이지만 배포 시에는 필요하지 않은 경우 단일 샤드로 샤딩된 클러스터가 유용할 수 있습니다.
mongos
수 및 분포
여러 개의 mongos
라우터를 배포하면 고가용성과 확장성이 지원됩니다. 프록시 또는 로드 밸런서가 애플리케이션과 mongos
라우터 사이에 있는 경우 클라이언트 선호도 에 맞게 구성해야 합니다. 클라이언트 선호도는 단일 클라이언트의 모든 연결이 동일한 mongos
에 도달할 수 있도록 합니다. 샤드 수준 고가용성의 경우 일반적인 패턴은 mongod
인스턴스가 이미 실행 중인 동일한 하드웨어에 mongos
인스턴스를 배치하는 것입니다. 또 다른 옵션은 애플리케이션 계층 인프라가 있는 mongos
라우터를 내장하는 것입니다.
한 배포서버에 가질 수 있는 mongos
라우터의 수에는 제한이 없습니다. 그러나 mongos
라우터는 config 서버와 자주 통신하므로 라우터 수를 늘리면서 config 서버 성능을 주의 깊게 모니터링합니다. 성능이 저하되는 경우 배포서버에서 mongos
라우터 수를 제한하는 것이 도움이 될 수 있습니다.
다음 다이어그램은 프로덕션에서 사용되는 일반적인 샤딩된 클러스터 아키텍처를 보여줍니다.
개발 구성
테스트 및 개발을 위해 최소한의 구성 요소로 샤딩된 클러스터를 배포할 수 있습니다. 이러한 비프로덕션 클러스터에는 다음과 같은 구성 요소가 있습니다.
다음 다이어그램은 개발용으로만 사용되는 샤딩된 클러스터 아키텍쳐를 보여줍니다.
경고
테스트 및 개발용으로만 테스트 클러스터 아키텍처를 사용하십시오.