본문 바로가기

AWS Design Pattern/관계 데이터베이스 패턴

Sharding Write - 쓰기 효율화

ㅁ  풀어야 할 문제

RDBMS의 읽기에 대한 고속화는 매우 중요하고 난이도가 높은 문제다. 스케일 업으로 낼 수 있는 이상의 성능을 내는 것은 당연히 여러 대의 데이터베이스 서버를 이용하면 되지만, 어떻게 해야 하는지는 언제나 고민이다.

 

  해결/패턴

여러 대의 데이터베이스 서버에 쓰기 성능을 높이는 방법으로 [샤딩]이 있다. 기본적으로 같은 구조의 데이터베이스를 만들어 테이블의 컬럼을 키로 사용해 분할하여 쓰기 처리를 분산한다.

 

  구현

AWS RDBMS 서비스인 [RDS]를 샤딩 백엔드 데이터베이스로 이용하면 가용성과 운영 효율을 높일 수 있다.

-       Spider 스토리지 엔진을 가지고 있는 MySQL 서버 등의 샤딩 소프트웨어를 EC2에 설치한다.

-       여러 대의 RDS를 준비하여 샤딩 백엔드 데이터베이스로 만든다.

-       RDS를 여러 지역으로 분산 시킬 수 있다.

  장점

샤딩 백엔드 데이터베이스로 RDS(Multi-AZ)를 이용하면 높은 가용성을 구현할 수 있다.

백엔드 데이터베이스를 여러 지역으로 분산하면 각 지역의 시스템 성능 향상을 도모할 수 있다.