데이터베이스 샤딩 이해하기

yujin·2023년 11월 28일
0

TIL

목록 보기
18/48
post-thumbnail

데이터베이스 샤딩 이해하기


1. 데이터베이스 샤딩이란?

데이터베이스 샤딩은 대용량의 데이터를 처리하기 위해 터를 여러 데이터베이스에 분산 저장하는 기술. 이는 하나의 대용량 데이터베이스를 여러 개의 작은 크기의 데이터베이스로 분리하는 과정으로 이해할 수 있다. 이렇게 분리된 각각의 데이터베이스를 샤드(shard)라고 부른다.

2. 데이터베이스 샤딩의 목적

데이터베이스 샤딩의 주요 목적은 데이터베이스의 성능 향상, 데이터 관리의 효율성 증가, 서버 부하 감소 등이다. 샤딩을 통해 하나의 데이터베이스에서 발생하는 부하를 여러 데이터베이스로 분산시켜 처리 속도를 향상시키고, 데이터베이스의 크기를 줄임으로써 데이터 관리를 더 효율적으로 할 수 있다.

3. 데이터베이스 샤딩의 동작 원리

데이터베이스 샤딩은 데이터를 일정한 기준(예: 키의 해시값, 지리적 위치 등)에 따라 여러 데이터베이스에 분산 저장한다. 이를 통해 각 데이터베이스는 독립적으로 동작하므로, 서버의 부하를 분산시키고, 데이터베이스의 성능을 향상시킨다.

4. 데이터베이스 샤딩의 장점과 단점

장점

  • 성능 향상
    부하가 많은 테이블을 여러 데이터베이스에 분산시킴으로써 데이터베이스 성능을 향상시킬 수 있다. 각 샤드는 독립적으로 동작하므로, 한 데이터베이스에서 발생하는 부하를 여러 데이터베이스로 분산시키고, 이로 인해 처리 속도가 향상된다.
  • 확장성
    데이터베이스의 크기가 증가함에 따라 추가적으로 서버를 늘릴 수 있으므로 확장성이 좋다. 샤딩은 수평적 확장을 가능하게 하며, 이는 기존의 서버를 업그레이드하는 수직적 확장보다 비용 효율적이다.
  • 부하 분산
    각 샤드는 독립적으로 동작하므로 서버의 부하를 분산시킬 수 있다.

단점

  • 복잡성
    샤딩 구현은 복잡하며, 잘못 구현하면 데이터 불일치 등의 문제가 발생할 수 있다. 샤딩은 데이터베이스 설계, 구현, 관리 모두에 복잡성을 높인다.
  • 데이터 분포
    샤딩 키 선택이 중요하며, 잘못 선택하면 데이터가 한쪽으로 치우치게 되어 성능 저하를 일으킬 수 있다. 적절한 샤딩 키를 선택하는 것은 샤딩의 성공을 결정짓는 중요한 요소이다.

5. 데이터베이스 샤딩의 활용 사례

  • Google Bigtable
    구글의 Bigtable은 페타바이트 이상의 데이터를 저장하고 처리하는 데 샤딩을 사용한다. Bigtable은 구글의 핵심 서비스인 검색, 구글 맵, 유튜브 등에서 사용되며, 이를 통해 대규모 데이터를 효율적으로 관리한다.
  • Amazon DynamoDB
    Amazon의 DynamoDB는 데이터를 여러 서버에 분산하여 저장하고, 필요에 따라 샤드를 추가하거나 제거하여 확장성을 높인다. DynamoDB는 자동 샤딩과 복제 기능을 제공하여 사용자가 쉽게 대용량 데이터를 관리할 수 있게 해준다.

6. etc

오늘 특강에서 배운 내용인데 아직 반도 제대로 이해 못한거 같아서 TIL 적고 나서 따로 더 자세하게 찾아봐야할거 같다. 갈수록 어렵다 어려워

profile
고통 받는 코딩일기

0개의 댓글