티스토리 뷰
Replication이란?
Replication은 데이터베이스의 데이터를 다른 데이터베이스에 복제하는 기술입니다. 데이터베이스에서 고가용성(HA), 부하 분산(Load Balancing), 장애 복구(Fail Over)를 위해 자주 사용됩니다.
고가용성이란?
시스템, 서비스, 또는 애플리케이션이 지속적으로 운영될 수 있도록 하는 기술과 개념을 의미
장애가 발생하더라도 최소한의 다운타임(서비스 중단)으로 운영이 가능하도록 하는 것이 목표이다.
Replication이 필요한 이유
하나의 데이터베이스만 사용할 경우 다음과 같은 문제점이 발생할 수 있습니다.
- 속도 문제 - 사용자가 많아지면 데이터베이스의 응답 속도가 느려집니다.
- 장애 발생 위험 - 데이터베이스 서버가 다운되면 데이터에 접근할 수 없습니다.
- 백업 필요 - 데이터를 안전하게 보관하려면 주기적인 백업이 필요합니다.
Replication을 사용하면?
속도 개선 - 여러 데이터베이스에서 동시에 데이터베이스 관련 요청을 처리할 수 있어 빠릅니다.
장애 대비 - 하나의 데이터베이스가 문제가 생겨도 다른 데이터베이스를 사용할 수 있습니다.
백업 효과 - 데이터를 여러 곳에 보관하므로 데이터 백업에 유용합니다.
Replication의 기본 개념
기본 구성 요소
- Master 데이터베이스 - 원본 데이터베이스가 저장되는 곳
- Slave 데이터베이스 - Master 데이터베이스의 데이터를 복제하는 곳
Replication 종류
1. Master-Slave Replication(가장 많이 사용)
- Master DB 에서 데이터를 수정하면 Slave DB에 자동으로 복제됩니다.
- Slave DB는 읽기(SELECT)전용으로 사용됩니다.
📌 SNS 서비스(예: 트위터, 인스타그램)
Master DB → 새로운 게시글이 올라올 때만 저장
Slave DB → 사용자 피드에서 수백만 건의 게시글을 조회할 때 사용
2. Multi-Master Replication
- 여러개의 Master DB가 동시에 데이터를 변경하고 서로 동기화됩니다.
- 충돌 관리가 필요하므로 설정이 복잡하지만 쓰기(Writing) 성능이 향상됩니다.
📌 (예: 글로벌 은행 시스템)
Master DB (한국) → 한국 고객의 입출금 데이터 기록
Master DB (미국) → 미국 고객의 입출금 데이터 기록
두 Master DB가 서로 데이터를 복제하며 동기화
3. Synchronous vs. Asynchronous Replication
동기식(Synchronous)
- Master의 데이터가 완전히 복제된 후 데이터베이스 작업이 완료됩니다.
- 데이터의 정합성을 보장하나 속도가 느립니다.비동기식(Asynchronous)
- Master 데이터베이스가 변경된 후 일정 시간 후에 Slave 데이터베이스로 데이터가 복제됩니다.
- 성능이 좋으나 Slave로 복제되는 시점에 장애가 발생하면 데이터 불일치 현상이 발생할 수 있습니다.
Replication의 장점과 단점
장점
- 읽기 성능 향상 : 여러 Slave DB에서 조회 요청을 분산 처리하여 성능 향상
- 장애 대비 : Master DB가 다운되면 Slave DB 중 한대를 Master로 승격하여 장애 복구 가능
- 데이터 백업 : 실시간 복제가 되므로 데이터 백업 효과
단점
- 데이터 일관성 문제 : 비동기 복제 사용 시 Master와 Slave의 데이터가 일치하지 않을 수 있음
- 쓰기 부하 분산 불가 : Master DB가 모든 쓰기 작업을 처리해야 하므로 성능 한계 발생
'데이터베이스' 카테고리의 다른 글
| 캐싱, 간단할 줄 알았다. 그런데... (0) | 2026.03.29 |
|---|---|
| 서브쿼리 이해하기: 인라인뷰, 스칼라 서브쿼리, 상관·비상관 쿼리 (1) | 2025.12.01 |
| SQL을 입력하면, DB 안에서는 무슨 일이 벌어질까? (0) | 2025.08.17 |
| 인덱스 미활용 안티 쿼리 패턴 (0) | 2025.08.17 |
| 인덱스 개념 정리 (B+Tree 중심) (0) | 2025.05.18 |
