액티브-액티브 이중화

2024. 10. 31. 17:12매일의 성장 기록/IT 지식

액티브-액티브 엔진 이중화

개념 액티브-액티브 엔진 이중화는 여러 리모트 엔진이 동시에 활성화되어 트래픽을 처리하는 방식입니다. 이 구성은 시스템의 성능과 가용성을 최대화하기 위해 설계되었으며, 로드 밸런서를 통해 트래픽이 여러 엔진으로 균등하게 분산되어 각 엔진이 동시에 요청을 처리합니다. 이를 통해 단일 장애 지점을 제거하고, 부하를 효율적으로 분산하여 시스템 전체의 안정성을 높입니다.

특징

  • 동시 처리: 여러 엔진이 동시에 트래픽을 처리하여 시스템의 처리 능력을 극대화합니다.
  • 부하 분산: 로드 밸런서를 통해 트래픽이 균등하게 분산되어 각 엔진의 부하를 줄입니다.
  • 장애 대응성: 하나의 엔진에 장애가 발생하더라도 다른 엔진이 계속해서 트래픽을 처리하여 서비스 중단을 방지합니다.

구성 요소

  • 리모트 엔진: 주요 트래픽을 모니터링하고 분석하는 구성 요소로 여러 대의 엔진이 동시에 동작합니다.
  • 로드 밸런서: 클라이언트에서 들어오는 트래픽을 여러 리모트 엔진으로 분산합니다.

동작 방식

  • 로드 밸런서는 클라이언트의 요청을 라운드 로빈, 최소 연결 등 다양한 분산 방식으로 트래픽을 모든 리모트 엔진으로 분산시킵니다.
  • 모든 엔진이 동시에 트래픽을 처리하며 시스템의 성능과 부하 분산 효과가 극대화됩니다.
  • 만약 한 리모트 엔진에 장애가 발생하면 로드 밸런서가 자동으로 나머지 엔진으로 트래픽을 전환하여 서비스 중단 없이 운영됩니다.

데이터 일관성 유지 방식

  • 멀티마스터 복제를 통해 데이터 일관성을 유지합니다. 각 리모트 엔진에서 데이터 변경 사항이 발생할 경우, 모든 데이터베이스에 실시간으로 동기화되며, 이를 통해 시스템 내 모든 엔진이 최신 데이터를 공유할 수 있도록 보장합니다. 멀티마스터 복제는 높은 가용성을 제공하지만, 동시에 발생하는 쓰기 작업에 대한 충돌 관리가 필요합니다.

장점

  • 높은 성능: 여러 엔진이 동시에 동작하여 시스템의 처리 속도가 높아집니다.
  • 높은 가용성: 한 엔진에 문제가 발생해도 나머지 엔진이 트래픽을 처리하므로 서비스가 중단되지 않습니다.

단점

  • 자원 사용량 증가: 여러 엔진이 동시에 활성화되어 자원 사용량이 증가합니다.
  • 복잡한 구성: 모든 엔진 간의 동기화와 부하 분산 설정이 필요해 시스템 구성이 복잡해질 수 있습니다.

액티브-액티브 엔진 이중화에서 DB 동기화 방법

여러 리모트 엔진이 동시에 트래픽을 받아서 처리하고 데이터베이스 동기화 방식은 다음과 같습니다.

  1. 마스터-슬레이브 구조: 한쪽 데이터베이스(마스터)에서 데이터를 전부 복제하고 해당 마스터 데이터베이스의 데이터를 슬레이브 데이터베이스로 복제합니다. 리모트 엔진은 주로 슬레이브 DB에서 데이터를 읽어옵니다.
  2. 멀티마스터 방식: 여러 데이터베이스가 동시에 읽기 및 쓰기 작업을 처리하며, 서로의 변경 사항을 실시간으로 동기화합니다(주기 설정 필요). 동시에 쓰기 작업이 발생할 수 있어 데이터 충돌이 발생할 수 있으며, 추가적인 충돌 해결 메커니즘이 필요합니다.

액티브-액티브 풀 이중화

개념 액티브-액티브 풀 이중화는 엔진뿐만 아니라 시스템의 모든 주요 구성 요소(예: 관리 서버, 데이터베이스 등)를 전부 동일하게 이중화하여 주요 구성 요소가 동시에 활성 상태로 유지되는 방식입니다. 이 방식은 내부망과 DR망의 구성 요소가 모두 동시에 동작하면서 데이터를 공유하고 트래픽을 분산 처리하여 시스템의 가용성과 성능을 극대화하는 데 목적이 있습니다.

특징

  • 최대 가용성: 모든 주요 구성 요소가 동시에 동작하므로 장애 발생 시에도 시스템 가용성을 최대한 유지할 수 있습니다.
  • 부하 분산: 내부망과 DR망의 구성 요소가 동시에 활성화되어 트래픽과 데이터를 나눠 처리하므로 전체적인 시스템 부하가 분산됩니다.
  • 복잡한 관리: 모든 시스템이 동시에 활성화되어 동기화와 충돌 방지 관리를 철저히 해야 하므로 관리가 복잡합니다.

구성 요소

  • Remote Engine (내부망 & DR망): 내부망과 DR망에 설치된 모든 Remote Engine이 동시에 활성화되어 트래픽을 처리합니다.
  • 관리 서버 (내부망 & DR망): 내부망과 DR망의 관리 서버가 동시에 동작하여 시스템 상태를 모니터링하고 관리합니다.
  • 데이터베이스 (내부망 & DR망): 내부망과 DR망의 데이터베이스가 동기적 또는 비동기적 방식으로 데이터 동기화를 유지하면서 동시에 데이터 처리를 수행합니다.
  • 로드 밸런서 (내부망 & DR망): 각각의 로드 밸런서가 트래픽을 내부망과 DR망으로 분산시켜 전체 시스템의 부하를 나누어 처리합니다.

동작 방식

  • 내부망과 DR망의 모든 구성 요소가 동시에 활성화되어 트래픽과 데이터를 처리합니다.
  • 부하 분산: 로드 밸런서는 클라이언트 요청을 내부망과 DR망의 구성 요소로 분산하여, 두 망이 균등하게 부하를 처리하도록 합니다.
  • 데이터 동기화: 데이터베이스 간 동기적 또는 비동기적 복제를 통해 일관성을 유지하며, 두 시스템 간 실시간 동기화가 이루어집니다.

데이터 일관성 유지 방식

  • 멀티마스터 복제와 데이터 파티셔닝을 사용하여 데이터 일관성을 유지합니다. 멀티마스터 복제를 통해 내부망과 DR망의 데이터베이스가 실시간으로 서로의 변경 사항을 반영하며, 데이터 파티셔닝을 적용하여 특정 데이터는 한쪽 노드에서만 수정되도록 규칙을 설정합니다. 이를 통해 데이터 충돌을 줄이고 일관성을 유지할 수 있습니다.

액티브-액티브 풀 이중화 DB 동기화 방법

내부망과 DR망의 두 데이터베이스가 모두 동시에 데이터를 처리하기 때문에, 데이터의 일관성을 유지하려면 다음과 같은 동기화 기법이 필요합니다. 충돌 방지와 일관성 유지 전략이 필요합니다.

    1. 멀티마스터 복제: 내부망의 DB와 DR망의 DB가 모두 활성 상태로 데이터를 읽고 쓰는 구조로, 각 DB에서 발생한 변경 사항이 다른 DB로 실시간으로 복제됩니다. 높은 가용성과 데이터 처리 부하 분산이 가능하지만, 설정이 매우 복잡하고 두 DB에서 동시에 같은 데이터에 대해 다른 업데이트가 발생하면 데이터 충돌이 발생할 수 있습니다.
    2. 데이터 충돌 방지와 일관성 유지: 예를 들어 타임스탬프 기반으로 마지막에 변경된 데이터를 우선하거나 우선순위 노드를 설정하여 특정 노드의 변경이 항상 우선되도록 할 수 있습니다.
    3. 충돌 최소화 전략:
      • 데이터 파티셔닝: 특정 데이터는 한쪽 노드에서만 수정하도록 규칙을 설정하여 충돌 발생 가능성을 줄일 수 있습니다. 예를 들어 특정 유형의 요청을 내부망 DB에서 처리하고, 다른 유형의 요청은 DR망 DB에서만 처리하도록 나눌 수 있습니다.
      • 글로벌 트랜잭션 ID 사용: 각 트랜잭션에 고유 ID를 부여하여 데이터 변경 사항이 두 데이터베이스에 중복 적용되지 않도록 합니다.
    4. 네트워크 지연과 데이터 일관성:
      • 네트워크 레이턴시로 인해 데이터 동기화에 지연이 발생할 수 있습니다. 이를 보완하기 위해 네트워크 최적화 기술과 압축된 데이터 전송을 사용하여 동기화 속도를 높입니다.
      • 큐 기반 비동기 처리: 네트워크 지연이 있을 때는 메시지 큐를 사용하여 트랜잭션을 비동기적으로 처리하고 동기화 상태를 유지합니다. 이를 통해 네트워크 지연에 따른 데이터 불일치를 최소화하며, 시스템 안정성을 높입니다