Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

독립형 자체 관리 mongod를 복제본 세트로 변환

독립형 mongod 인스턴스는 테스트 및 개발에 유용합니다. 독립형 인스턴스는 단일 실패 지점이 될 수 있으므로 프로덕션 배포에는 적합하지 않습니다. 클러스터라고도 하는 복제본 세트는 중복성과 가용성을 제공합니다. 항상 프로덕션 환경에서 복제본 세트를 사용하세요.

프로덕션에서 사용하려는 데이터 포함 독립형 서버가 있는 경우, 먼저 독립형 서버를 복제본 세트로 변환합니다.

중요

프로덕션에서 사용하기 위해 개발 서버를 복제본 세트로 변환하는 경우, 클러스터를 인터넷에 노출하기 전에 보안 체크리스트를 참조하세요.

독립형 서버 에서 MongoDB Atlas 클러스터 로 쉽게 마이그레이션 할 수 있습니다. MongoDB Atlas 는 cloud 에서의 MongoDB 배포를 위한 완전 managed 서비스입니다. 학습 내용은 MongoDB Atlas 설명서에서 데이터 마이그레이션 또는 가져오기 를 참조하세요.

독립형 인스턴스를 변환하기 전에 복제본 세트샤딩된 클러스터 중 어느 것이 워크로드에 더 적합한지 고려하세요.

샤딩된 클러스터는 특별한 종류의 클러스터입니다. 샤딩된 클러스터는 중복성과 가용성을 제공하며, 샤드 간에 데이터를 분산시킵니다. 샤드는 일반적으로 여러 서버에서 호스팅되며 수평 확장이 가능합니다.

복제본 세트에 권한 부여를 사용하려면 X.509를 사용하도록 복제본 세트 멤버를 구성하거나, 인증서 또는 키 파일을 하여 내부 인증도 수행해야 합니다.

자세한 내용은 다음을 참조하세요.

1

mongosh(을)를 사용하여 mongod 인스턴스에 연결합니다.

mongosh

admin 데이터베이스로 전환하고 shutdown을 실행합니다.

use admin
db.adminCommand(
{
shutdown: 1,
comment: "Convert to cluster"
}
)
2

각 서버의 구성 파일을 업데이트하고 replSetName 설정을 지정합니다.

replication:
replSetName: "rs0"
3

복제본 세트의 각 서버에 대한 멤버 인증을 구성합니다.

복제본 세트가 내부 멤버 인증을 위해 X.509 인증서를 사용하도록 구성합니다.

설정
옵션
설명

인증에 사용할 TLS 모드를 설정합니다. X.509 인증서 인증을 요구하도록 서버를 구성하려면 이 옵션을 requireTLS로 설정합니다.

클라이언트 연결을 위한 TLS 인증서가 포함된 .pem 파일의 경로를 설정합니다.

인증 기관(CA)의 루트 인증서 체인이 포함된 파일의 경로를 설정합니다.

클러스터 멤버 연결을 위한 TLS 인증서가 포함된 .pem 파일의 경로를 설정합니다.

클러스터 멤버를 인증하는 데 사용되는 모드를 설정합니다. X.509 인증을 사용하려면 이 옵션을 x509로 설정하세요.

예를 들면 다음과 같습니다.

replication:
replSetName: "rs0"
security:
clusterAuthMode: x509
net:
tls:
mode: requireTLS
certificateKeyFile: /etc/mongodb/client.pem
CAFile: /etc/mongodb/ca.pem
clusterFile: /etc/mongodb/member.pem

내부 멤버 인증에 키 파일을 사용하도록 복제본 세트를 구성합니다. 인증을 위해서는 각 멤버가 동일한 키 파일의 사본을 가지고 있어야 합니다.

설정
옵션
설명

복제본 세트 키 파일의 경로를 설정합니다.

예를 들면 다음과 같습니다.

replication:
replSetName: "rs0"
security:
keyFile: /etc/mongodb/keyfile

권한 부여 없이 복제본 세트를 구성합니다.

경고

네트워크를 통해 접근할 수 없는 내부 복제본 세트에만 이 구성을 사용해야 합니다.

설정
옵션
설명

MongoDB가 클라이언트 연결을 수신하는 호스트 이름이나 IP 주소를 설정합니다. 서버에 대한 네트워크 액세스를 차단하려면 이 옵션을 localhost로 설정하세요.

예를 들면 다음과 같습니다.

replication:
replSetName: "rs0"
net:
bindIp: localhost
4

각 멤버에 대해 mongod를 시작하세요.

5

복제본 세트를 초기화하려면 mongosh를 사용하여 서버 인스턴스에 다시 연결합니다. 그런 다음 rs.initiate()를 실행합니다.

rs.initiate()

복제본 세트는 한 번만 시작하면 됩니다.

복제본 세트 구성을 보려면 rs.conf()를 사용합니다.

복제본 세트의 상태를 확인하려면 rs.status()를 사용합니다.

6

새 복제본 세트에는 단일 프라이머리 노드가 있습니다. 다음 단계는 복제본 세트에 새 노드를 추가하는 것입니다. 노드를 추가하기 전에 클러스터에 대한 설명서를 검토하세요.

노드를 추가할 준비가 되면 rs.add()를 사용합니다.

7

mongod를 복제본 세트로 변환한 후에는 애플리케이션에서 사용하는 연결 문자열을 복제본 세트의 연결 문자열로 업데이트합니다. 그런 다음 애플리케이션을 다시 시작합니다.

돌아가기

복제본 세트