데이터베이스(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

+ Recent posts