Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ /

구성 샤드로 샤드 클러스터 시작

이 페이지의 내용

  • 이 작업에 대하여
  • 단계
  • 자세히 알아보기

MongoDB 8.0 부터는 일반적인 샤딩된 클러스터 메타데이터 외에 애플리케이션 데이터를 저장 하도록 config 서버 를 구성할 수 있습니다. config 서버 와 샤드 서버 기능을 모두 제공하는 mongod 노드 를 config 샤드 라고 합니다. 샤드 서버 기능 없이 독립형 --configsvr 로 실행되는 mongod 노드 를 전용 config 서버 라고 합니다.

클러스터 에 3개 이하의 샤드가 있는 경우 config 샤드 사용을 고려할 수 있습니다.

자세한 내용은 구성 샤드 사용 사례를 참조하세요.

다음 환경에서 호스팅되는 배포에서 이 작업 을 수행할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

참고

이 작업 은 Atlas 공유 계층 또는 Atlas 서버리스에서는 사용할 수 없습니다.

1

프로덕션 배포의 경우, 최소 세 멤버를 갖는 config 서버 복제 세트를 배포하세요.

참고

config 서버 복제본 세트는 샤드 복제본 세트와 동일한 이름을 사용하면 안 됩니다.

이 튜토리얼에서 config 서버 복제본 세트 멤버은 다음 호스트와 연결됩니다.

config 서버 복제본 집합 멤버
호스트 이름
회원 0
cfg1.example.net
회원 1
cfg2.example.net
멤버 2
cfg3.example.net
  1. 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.dbPathnet.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 참조 페이지를 참조하세요.

  2. mongosh 를 config 서버 멤버 중 하나에 연결합니다.

    mongosh --host <hostname> --port <port>
  3. 복제본 세트를 시작합니다.

    mongosh 에서 rs.initiate() 메서드를 실행 합니다.

    rs.initiate() 선택 사항인 복제본 세트 구성 문서 를 받을 수 있습니다. 복제본 세트 구성 문서 에 다음을 포함합니다.

    • _idreplication.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" }
    ]
    }
    )

    복제본 세트 구성 문서에 대한 자세한 내용은 자체 관리형 복제본 세트 구성 을 참조하세요.

2

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 을(를) 사용하여 샤딩된 클러스터 에 연결할 수 있습니다.

3

mongoshmongos 에 연결합니다. mongos 가 실행 hostport 를 지정합니다.

mongosh --host <hostname> --port <port>
4

이 예시 에서는 config 샤드 로 실행 전용 config 서버 를 구성합니다.

db.adminCommand( {
transitionFromDedicatedConfigServer: 1
} )
5

이제 샤드 샤딩된 클러스터 가 config 샤드 를 사용하는지 확인하려면 serverStatus 명령을 실행 하여 configServerInShardCache 상태가 true 을 반환하는지 확인합니다.

db.adminCommand( {
serverStatus: 1,
} ).shardingStatistics.configServerInShardCache
true

돌아가기

내장된 구성 서버를 사용하여 복제본 세트를 샤드 클러스터로 변환