데이터베이스 부하분산 처리를 위해 복제(Replication)와 샤딩(Sharding) 등 여러 가지 기술이 있습니다.
복제(Replication)의 정의와 AWS Read Replica 구성에 대해 알아보도록 하겠습니다.
1. 복제(Replication) 정의
하나의 데이터베이스의 내용을 다른 하나 이상의 데이터베이스로 복사하는 프로세스 입니다.
로드 분산 및 데이터 백업에 활용하여 데이터의 가용성, 안정성 및 성능을 향상시킬 수 있습니다.
복제구조는 일반적으로 마스터-슬레이브(Master-Slave) 구조를 사용합니다.
a. 마스터(Master)데이터베이스
- 쓰기 작업(write operations) 처리
- SQL - INSERT, UPDATE, DELETE 구문
b. 슬레이브(Slave) 데이터베이스
- 마스터로부터 데이터를 복제하여 읽기 작업(read operations)을 처리
- SQL - SELECT 구문
2. Read Replica 분석
프로젝트에서 Staging 환경에서 부하분산 처리를 위해 AWS RDS Read Replica 구성을 적용하였습니다.
Amazon 에서는 다양한 RDS에 대해 Read Replica를 지원하지만 Aurora mysql를 선택하였습니다.
그 이유는 클라우드 비용 때문입니다.
동일한 인스턴스 성능과 스토리지 용량 기준으로 RDS 클라우드 한 달 사용료를 비교해 보겠습니다.
- 인스턴스 유형 (t4g.medium), 스토리지 100GB, I/0 비용 제외
2-1. Amazon RDS for MySQL
- 한 달 비용 $259.62 예상
- Read Replica 별 스토리지 비용이 청구되기 때문에 소규모 서비스에 유리함
https://aws.amazon.com/ko/rds/mysql/pricing/
비용구분 | master | slave-1 | slave-2 |
인스턴스 | $73.44 | $73.44 | $73.44 |
스토리지 | $13.1 | $13.1 | $13.1 |
합계 | $86.54 | $86.54 | $86.54 |
2-2. Amazon Aurora
- 한 달 비용 $256.68 예상
- Read Replica 스토리지 비용이 청구되지 않으므로 엔터프라이즈 서비스에 유리함
https://aws.amazon.com/ko/rds/aurora/pricing/?pg=pr&loc=1
비용구분 | master | slave-1 | slave-2 |
인스턴스 | $81.56 | $81.56 | $81.56 |
스토리지 | $12 | $0 | $0 |
합계 | $93.56 | $81.56 | $81.56 |
회사 서비스에 맞는 RDS를 선택하여 클라우드 비용을 줄이는 노력이 필요해보입니다.
SPRING에 RDS Read Replica 적용 예시는 다음 포스팅에서 정리하도록 하겠습니다.
읽어주셔서 감사합니다.
최근댓글