데이터베이스(DB) 이중화는 하나의 DB를 여러 개로 복제하여 장애에 대비하고 서비스의 안정성과 가용성을 높이는 기술입니다. 주로 액티브-스탠바이와 액티브-액티브 방식으로 나뉩니다.
DB 이중화의 필요성
DB는 시스템의 핵심이므로, DB에 장애가 발생하면 전체 서비스가 중단될 수 있습니다. DB 이중화는 다음과 같은 목적을 위해 필요합니다.
- 고가용성(High Availability): 주 DB에 문제가 생겨도 다른 DB가 즉시 서비스를 대신하여 중단 없는 서비스를 제공합니다.
- 재해 복구(Disaster Recovery): 지리적으로 떨어진 다른 곳에 DB를 복제하여 자연재해나 대규모 장애에 대비합니다.
- 부하 분산: 여러 DB에 요청을 분산시켜 시스템의 성능을 향상시킵니다.
1. 액티브-스탠바이 (Active-Standby)
이 방식은 하나의 DB만 활성화(Active)되고, 다른 DB는 대기(Standby) 상태로 있다가 주 DB에 장애가 발생하면 활성화되는 방식입니다.
- 동작 방식: 주(Primary) DB에서 발생한 모든 변경 사항이 실시간으로 대기(Standby) DB로 복제됩니다.
- 장점:
- 데이터 일관성 유지: 한쪽만 쓰기 작업을 하므로 데이터 충돌이 발생하지 않아 일관성을 유지하기 쉽습니다.
- 구현 용이성: 액티브-액티브에 비해 구조가 단순하여 구현과 관리가 비교적 쉽습니다.
- 단점:
- 자원 낭비: 스탠바이 DB는 평소에 아무 역할도 하지 않으므로 컴퓨팅 자원이 낭비됩니다.
- 서비스 중단: 장애 발생 시 스탠바이 DB로 전환하는 짧은 시간 동안 서비스가 중단될 수 있습니다.
- 예시: A 지점의 DB 서버가 주 DB 역할을 하고, B 지점의 DB 서버가 대기 상태로 A의 데이터를 실시간으로 복제합니다. A 서버에 장애가 발생하면, B 서버가 즉시 액티브로 전환하여 서비스를 이어갑니다.
2. 액티브-액티브 (Active-Active)
이 방식은 두 개 이상의 DB가 동시에 활성화되어 요청을 처리하는 방식입니다.
- 동작 방식: 모든 DB가 읽기/쓰기 작업을 동시에 수행하며, 각 DB에서 발생한 변경 사항을 서로에게 실시간으로 복제합니다.
- 장점:
- 자원 활용 극대화: 모든 DB가 동시에 사용되므로 자원 낭비가 없습니다.
- 높은 성능: 부하를 여러 DB에 분산시켜 성능을 향상시킵니다.
- 무중단 서비스: 한쪽에 장애가 발생해도 다른 DB가 이미 활성화되어 있어 서비스 중단이 발생하지 않습니다.
- 단점:
- 데이터 충돌: 여러 DB에서 동시에 쓰기 작업을 할 때 데이터 충돌(예: 동일한 데이터에 동시에 쓰기)이 발생할 수 있어, 이를 해결하기 위한 복잡한 로직이 필요합니다.
- 복잡한 관리: 시스템 구성 및 데이터 동기화 관리가 매우 복잡하고 어렵습니다.
- 예시: 서울과 부산의 두 DB 서버가 모두 활성화되어 사용자 요청을 분산 처리합니다. 서울 서버에 장애가 발생해도, 부산 서버가 이미 요청을 처리하고 있었으므로 서비스는 중단되지 않습니다.
선택 기준
- 액티브-스탠바이는 데이터 일관성이 가장 중요하고, 짧은 시간의 다운타임을 허용할 수 있는 시스템에 적합합니다 (예: 금융 시스템, 내부 업무 시스템).
- 액티브-액티브는 높은 성능과 무중단 서비스가 최우선인 시스템에 적합합니다 (예: 대규모 온라인 서비스, 게임 서버).
'기타' 카테고리의 다른 글
| 23. 가상화(cache miss와 경합) (0) | 2025.08.30 |
|---|---|
| 22. 서버 가상화 기술 (0) | 2025.08.30 |
| 11. MW 이중화 (0) | 2025.08.30 |
| 12. 네트워크 (0) | 2025.08.30 |
| 11. OSI (0) | 2025.08.30 |