실무 배치

샤딩은 어떤 샤드가 데이터를 맡는지 정하고, 레플리케이션은 그 샤드 안에서 읽기와 장애 대응을 맡습니다.

즉, 요청은 먼저 샤드 키로 한 샤드에 배정되고, 선택된 샤드 내부에서는 Primary가 쓰기를 받고 Replica들이 같은 데이터를 복제해 읽기 부하와 장애 상황을 흡수합니다.

한 줄 요약 여러 샤드의 Primary로 쓰기를 분산하고, 각 샤드의 Replica로 읽기와 가용성을 보강합니다.
1. 샤드 선택
라우터가 샤드 키로 대상 샤드 하나를 고른다
예: user_id 기준으로 어느 샤드가 이 데이터를 소유하는지 먼저 결정
Shard 1
user_id 1-1000
Primary 이 범위의 쓰기 요청을 처리하고 기준 데이터를 만든다
Replica 읽기 조회 분산
Replica 장애 시 대체 후보
Shard 2
user_id 1001-2000
Primary Shard 2 범위의 쓰기와 최신 상태를 책임진다
Replica 읽기 부하 흡수
Replica 복제본 유지
Shard 3
user_id 2001-3000
Primary 다른 샤드와 독립적으로 자기 범위의 쓰기를 처리한다
Replica 조회 응답 확장
Replica 가용성 보강
샤딩이 만든 효과

여러 샤드가 각자 Primary를 가지므로 쓰기 부하와 저장 용량이 한 서버에 몰리지 않습니다.

레플리케이션이 만든 효과

각 샤드의 Replica가 읽기 요청을 나누고, Primary 장애 시 복구와 승격의 기반이 됩니다.