10.2 데이터베이스의 수평 확장
인증 서버는 부하가 분산되나, 데이터베이스 서버(이하 DB 서버)에는 여전히 과부하가 몰립니다.
▲ 그림 10-7 데이터베이스 서버에는 여전히 과부하 발생
그렇다면 DB 서버에 몰리는 질의 요청을 서로 다른 DB 서버로 분배해야 하겠죠. 이제 DB 서버를 여럿으로 나누어 봅시다. 앞서 언급했듯이 플레이어 간 상호 작용은 없다고 전제했으므로 데이터베이스 자체는 수평 확장하기가 쉽습니다.
플레이어 정보를 서로 다른 데이터베이스 샤드에 골고루 나누어 저장합시다. 클라이언트는 여러 인증 서버 중 하나에 접속하고, ID와 비밀번호를 보냅니다. 인증 서버는 입력받은 ID 문자열에서 어느 데이터베이스 샤드에 질의를 실행해야 할지 판단해야 합니다.