mongodb ,mongos, mongod 란

개발새발·2022년 7월 3일
0

db

목록 보기
6/10

mongos, mongod에 대한 차이를 잘 모르겠어서, 저번에 mongodb 에 대한 이해가 부족했던 것 같아서 다시 한번 찾아보았다. 일단 mongodb 에 대한 개념은 https://velog.io/@wjdgkrud/MongoDB-vs-PostgreSQL ← 여기에 잘 설명을 해놓은 것 같아서 mongod, mongos 등에 대해서 알아보도록 하겠다.

Mongod

몽고디비를 위한 데몬(멀티태스킹 운영 체제에서 사용자가 직접적으로 접근하지 않고, 백그라운드에서 여러 작업을 수행하는 프로그램)서버라고 볼 수 있다. 데이타 요청, 접근에 대해 핸들링/관리를 진행하고, 백그라운드 관리 작업을 수행해준다. 위에서 설명했듯이 사용자가 직접적으로 접근하지 않기 떄문에 mongoShell을 통해 요청문(쿼리 등)을 통해 접근하거나 몽고에서 제공하는 다른 방법들을 통해 접근이 가능하다.

Mongos

DB데이터는 가지고 있지 않고 단순히 샤드에 접근할 수 있도록 하는 프록시역할을 한다. 샤드정보찾기위해 config server 라는 것을 두어 metadata 를 cache로 저장해둔다.

  • shard란?
    실제 데이터가 저장되는 저장소
    샤드 갯수를 scaling을 통해 늘리고 줄일 수 있다. 보통 3개의 샤드를 구성한다.
    샤드를 여러개 갖고 있을 때 사용자 입장에서는 어떤 샤드가 어떤 데이터를 가지고 있는지 알 수 없다. 이때 필요한 것이 config server이다.
  • config server
    어떤 샤드가 어떤 데이터를 가지고 있는지, data chunk들을 어떻게 분산해서 저장하여 관리할지에 대한 정보를 가지고 있다. 이를 통해 데이터 분산과 분산 데이터를 저장하는 단계가 가능하다. 이것을 사용할 수 있도록 해주는 것이 바로 mongos이다.

Mongo & Mongosh

몽고디비 서버(mongod)와 상호작용하기 위한 쉘들이다. 기존에는 Mongo 로 사용되었으나 2020년 7월 mongosh 로 새로 바뀌어 나왔다. 어떤 것을 사용해도 상관없으나 새로운 쉘 기능들을 사용하기 위해서는 mongosh 를 사용하는 것이 좋다.

FLOW

참고: https://velog.io/@sunnysideup0w0/MongoDB-Mongod
https://www.helenjoscott.com/2022/01/29/mongod-mongo-mongosh-mongos-what-now/
https://spidyweb.tistory.com/166

profile
발새발개

0개의 댓글