샤딩(Sharding)이란? 하나의 DB를 여러 개로 쪼개는 이유

샤딩(Sharding)이란?

서비스가 커지면 하나의 데이터베이스 서버로는 감당하기 힘든 순간이 옵니다. 사용자가 많아지고 데이터가 쌓일수록 조회 속도는 느려지고, 서버 하나에 걸리는 부하는 점점 커집니다. 이때 등장하는 개념이 바로 샤딩(Sharding)입니다. 샤딩은 하나의 큰 데이터베이스를 여러 개의 작은 데이터베이스, 즉 샤드(Shard)로 물리적으로 분산시켜 저장하는 기술입니다. 쉽게 말해 수백만 권의 책을 한 건물에 다 쌓아두는 대신, 여러 지점 건물에 나눠서 보관하는 것과 비슷합니다. 각 지점(샤드)은 전체 책의 일부만 가지고 있지만, 필요한 책이 어느 지점에 있는지만 알면 훨씬 빠르게 찾을 수 있습니다.

샤딩은 어떻게 동작할까

샤딩의 핵심은 데이터를 어떤 기준으로 나눌지 정하는 샤드 키(Shard Key)입니다. 예를 들어 사용자 ID를 기준으로 나눈다면, ID가 1~100만인 사용자는 샤드 A에, 100만~200만인 사용자는 샤드 B에 저장하는 식입니다. 애플리케이션은 요청이 들어오면 샤드 키를 확인해 어느 서버로 쿼리를 보낼지 결정합니다.

  • Range 기반 샤딩: ID나 날짜 범위로 나누

댓글 남기기