https://docs.mongodb.com/manual/sharding/

샤드
어플리케이션의 데이터를 저장하는 노드mongos 라우터
샤드 클러스터의 메타데이터를 이용하여 올바른 샤드에 작업을 라우팅하거나 데이터를 샤딩한다설정 서버
샤드 클러스터의 메타데이터를 담고 있다. (어떤 샤으다 어떤 데이터를 가지고 있을지에 대한 정보 등)샤드는 단일 mongod 서버이거나 어플리케이션 데이터의 파티션을 저장하는 복제세트다. 즉, 샤드는 데이터가 저장되는 노드다.
샤드는 단일 mongod 서버일수도 있지만, 운영 환경에서는 복제세트로 구성하는 것이 좋다. 자체적인 복제 메커니즘을 가지며 자동으로 장애조치를 수행한다.
개별 샤드에 직접 접속할수 있지만, 해당 샤드에 저장된 데이터만 조회가 가능하다.
각 샤드에는 클러스터 데이터의 일부만 들어있기 때문에, 쿼리 요청은 데이터가 존재하는 샤드로 적절히 라우팅 되어야한다. mongos 라우터는 연산 요청을 데이터가 존재하는 적절한 샤드로 보내는 라우터다.
인터페이스는 일단 비-샤드 클러스터와 동일한 인터페이스를 제공한다. 따라서 클라이언트 드라이버는 샤드 클러스터든 아니든 상관없이 동일한 인터페이스를 사용할 수 있다.
mongos는 샤드 클러스터의 설정 메타데이터를 캐시하고 있다.
설정 서버는 샤드 클러스터의 설정정보(메타데이터)를 저장하고 있다. 이 메타데이터에는 클러스터의 설정사항, 컬렉션, 각 범위의 데이터 위치 등을 담고 있다.
설정서버는 여러 개가 존재할 수 있는데, 설정 서버들 사이의 정보는 2단계 커밋을 사용하여 일관성을 보장한다.