구성 샤드로 샤드 클러스터 시작
MongoDB 8.0 부터는 일반적인 샤딩된 클러스터 메타데이터 외에 애플리케이션 데이터를 저장 하도록 config 서버 를 구성할 수 있습니다. config 서버 와 샤드 서버 기능을 모두 제공하는 mongod
노드 를 config 샤드 라고 합니다. 샤드 서버 기능 없이 독립형 --configsvr
로 실행되는 mongod
노드 를 전용 config 서버 라고 합니다.
이 작업에 대하여
클러스터 에 3개 이하의 샤드가 있는 경우 config 샤드 사용을 고려할 수 있습니다.
자세한 내용은 구성 샤드 사용 사례를 참조하세요.
호환성
다음 환경에서 호스팅되는 배포에서 이 작업 을 수행할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
참고
이 작업 은 Atlas 공유 계층 또는 Atlas 서버리스에서는 사용할 수 없습니다.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
단계
Config 서버 복제본 세트를 생성합니다.
프로덕션 배포의 경우, 최소 세 멤버를 갖는 config 서버 복제 세트를 배포하세요.
참고
config 서버 복제본 세트는 샤드 복제본 세트와 동일한 이름을 사용하면 안 됩니다.
이 튜토리얼에서 config 서버 복제본 세트 멤버은 다음 호스트와 연결됩니다.
config 서버 복제본 집합 멤버 | 호스트 이름 |
---|---|
회원 0 | cfg1.example.net |
회원 1 | cfg2.example.net |
멤버 2 | cfg3.example.net |
config 서버 복제본 세트의 각 멤버를 시작합니다.
각
mongod
을(를) 시작할 때 구성 파일 이나 명령줄 을 사용하여mongod
설정을 지정합니다.구성 파일을 사용하는 경우 다음을 설정합니다.
sharding: clusterRole: configsvr replication: replSetName: <replica set name> net: bindIp: localhost,<hostname(s)|ip address(es)> sharding.clusterRole
~configsvr
.replication.replSetName
config 서버 복제본 세트 의 원하는 이름으로 변경합니다.net.bindIp
옵션을 다음 중 하나로 설정합니다.호스트 이름/IP 주소.
원격 클라이언트가 인스턴스 에 연결하는 데 사용할 수 있는 호스트 이름 또는 IP 주소의 쉼표로 구분된 목록입니다( config 서버 복제본 세트 의 다른 멤버와 샤딩된 클러스터 의 다른 멤버 포함).
경고
인스턴스를 공개적으로 접근 가능한 IP 주소에 바인딩하기 전에 무단 접근으로부터 클러스터를 보호해야 합니다. 보안 권장 사항의 전체 목록은 자체 관리 배포서버에 대한 보안 검사 목록을 참조하세요. 최소한 인증을 활성화하고 네트워크 인프라를 강화하는 것을 고려합니다.
배포서버에 적합한 추가 설정, 예를 들어
storage.dbPath
및net.port
. 구성 파일에 대한 자세한 내용은 구성 옵션을 참조하세요.
--config
옵션을 구성 파일 경로로 설정하다 하여mongod
를 시작합니다.mongod --config <path-to-config-file> 명령줄 옵션을 사용하는 경우
--configsvr
,--replSet
,--bind_ip
및 배포서버 에 적합한 기타 옵션을 사용하여mongod
를 시작합니다. 예를 예시 다음과 같습니다.mongod --configsvr --replSet <replica set name> --dbpath <path> --bind_ip localhost,<hostname(s)|ip address(es)> 경고
인스턴스를 공개적으로 접근 가능한 IP 주소에 바인딩하기 전에 무단 접근으로부터 클러스터를 보호해야 합니다. 보안 권장 사항의 전체 목록은 자체 관리 배포서버에 대한 보안 검사 목록을 참조하세요. 최소한 인증을 활성화하고 네트워크 인프라를 강화하는 것을 고려합니다.
시작 매개변수에 대한 자세한 내용은
mongod
참조 페이지를 참조하세요.mongosh 를 config 서버 멤버 중 하나에 연결합니다.
mongosh --host <hostname> --port <port> 복제본 세트를 시작합니다.
mongosh
에서rs.initiate()
메서드를 실행 합니다.rs.initiate()
선택 사항인 복제본 세트 구성 문서 를 받을 수 있습니다. 복제본 세트 구성 문서 에 다음을 포함합니다._id
는replication.replSetName
또는--replSet
옵션에 지정된 복제본 세트 이름으로 설정됩니다.config 서버 복제본 세트에 대해
configsvr
필드가true
로 설정.복제본 세트의 각 멤버에 대한 문서가 있는
members
배열.
중요
rs.initiate()
를 복제본 세트의 단일mongod
인스턴스에서만 실행합니다.rs.initiate( { _id: "myReplSet", configsvr: true, members: [ { _id : 0, host : "cfg1.example.net:27019" }, { _id : 1, host : "cfg2.example.net:27019" }, { _id : 2, host : "cfg3.example.net:27019" } ] } ) 복제본 세트 구성 문서에 대한 자세한 내용은 자체 관리형 복제본 세트 구성 을 참조하세요.
샤드 클러스터에 대한 mongos 를 시작합니다.
config 서버를 지정하기 위해 구성 파일이나 명령줄 매개변수를 사용하여mongos
를 시작합니다.
구성 파일을 사용하는 경우 sharding.configDB
를 config 서버 복제본 세트 이름으로 설정하고 복제본 세트의 멤버를 하나 이상 <replSetName>/<host:port>
형식으로 설정합니다.
경고
인스턴스를 공개적으로 접근 가능한 IP 주소에 바인딩하기 전에 무단 접근으로부터 클러스터를 보호해야 합니다. 보안 권장 사항의 전체 목록은 자체 관리 배포서버에 대한 보안 검사 목록을 참조하세요. 최소한 인증을 활성화하고 네트워크 인프라를 강화하는 것을 고려합니다.
sharding: configDB: <configReplSetName>/cfg1.example.net:27019,cfg2.example.net:27019 net: bindIp: localhost,<hostname(s)|ip address(es)>
--config
옵션과 구성 파일 경로를 지정하여 mongos
를 시작합니다.
mongos --config <path-to-config>
구성 파일에 대한 자세한 내용은 구성 옵션을 참조하세요.
명령줄 매개 변수를 사용하는 경우 mongos
를 시작하고 --configdb
, --bind_ip
및 배포서버 서버에 적합한 기타 옵션을 지정합니다. 예를 예시 다음과 같습니다.
경고
인스턴스를 공개적으로 접근 가능한 IP 주소에 바인딩하기 전에 무단 접근으로부터 클러스터를 보호해야 합니다. 보안 권장 사항의 전체 목록은 자체 관리 배포서버에 대한 보안 검사 목록을 참조하세요. 최소한 인증을 활성화하고 네트워크 인프라를 강화하는 것을 고려합니다.
mongos --configdb <configReplSetName>/cfg1.example.net:27019,cfg2.example.net:27019,cfg3.example.net:27019 --bind_ip localhost,<hostname(s)|ip address(es)>
배포서버에 적합한 다른 옵션을 포함할 수 있습니다.
이 점 에서 샤딩된 클러스터 는 mongos
및 config 서버로 구성됩니다. 이제 mongosh
을(를) 사용하여 샤딩된 클러스터 에 연결할 수 있습니다.
클러스터가 구성 샤드를 사용하는지 확인
이제 샤드 샤딩된 클러스터 가 config 샤드 를 사용하는지 serverStatus
확인하려면 명령을 실행 configServerInShardCache
하여 상태가 을 반환하는지 확인합니다.true
db.adminCommand( { serverStatus: 1, } ).shardingStatistics.configServerInShardCache
true