고가용성 및 재해 복구 개요

고가용성(HA)은 IQ Bot 서비스나 서버에 장애가 발생했을 때 장애 조치 메커니즘을 제공합니다. 재해로 인해 전체 데이터 센터에 장애가 발생한 경우, 재해 복구(DR)를 통해 지리적으로 떨어진 거리에서 복구할 수 있습니다.

IQ Bot은 고가용성(High Availability)을 위해 클러스터에서 최소 3개에서 최대 5개의 노드를 사용합니다.

IQ Bot HA 및 DR 솔루션

IQ Bot의 맥락에서 고가용성(HA) 및 재해 복구(DR) 구현은 작동 중지 시간을 줄이고 Bot 활동에 대한 비즈니스의 연속성(CoB)을 유지합니다.

  • 고가용성(HA)—고가용성은 특정 실패 시나리오로부터 시스템을 보호하려는 시스템 아키텍처 디자인입니다. 즉 시스템 중 일부에 오류가 발생하더라도, 전체적으로는 여전히 가동 중이고 이용할 수 있는 상태라는 뜻입니다. 고가용성 솔루션은 일반적으로 특수한 시나리오를 방지합니다. 예를 들면 서버 장애, 단일 컴포넌트 오류, 종속성 오류, 변수 로드 증가, 종속적인 시스템 컴포넌트가 네트워크 상에서 접근 불가 상태에 빠지는 네트워크 단절 등의 시나리오가 있습니다.
  • 재해 복구(DR)—재해 복구는 자연 재해나 인재 발생 시 주요 인프라 및 시스템의 복구 또는 지속성을 가능하게 하는 일련의 정책과 절차를 포함합니다. 고가용성이 시스템에서 일반적으로 예측 가능한 소수의 장애 원인을 해결하는 반면, 재해 복구는 시스템에서 나타날 수 있는 여러 다른 실패 양상을 처리합니다. 재해 복구는 장애 조치에 그치지 않고, 사고 후 서비스를 다시 구축하는 데 중점을 둡니다. 시스템 복구 시나리오에는 서비스나 시스템의 재시작, 백업에서 구성 파일이나 데이터베이스의 복원 등이 있습니다.
IQ Bot 컴포넌트의 HA 및 DR 보호를 위해서는 기존 HA 및 DR 인프라, 로드 밸런싱 및 장애 조치 시스템의 구성에 IQ Bot 서버 및 서비스를 포함해야 합니다. 승인된 로컬 HA 및 DR 절차를 살펴보려면 데이터센터 관리자에게 문의하시기 바랍니다.

필수 HA 및 DR 인프라 요소

  • 분산 접근 방식 - IQ Bot 관련 데이터센터 컴포넌트의 클러스터링 외에도 여러 실제/가상 서버에 IQ Bot을 배포할 것을 권장합니다.
  • 로드 밸런싱— 로드 밸런서에서 수행되는 이 프로세스는 여러 서버에 앱/네트워크 트래픽을 분배하여 서비스 활동을 보호하고, 워크로드를 여러 서버 간 분배할 수 있습니다. 이렇게 하면 클러스터된 서버에서 Bot 활동이 계속됩니다.

  • 데이터베이스 - 데이터베이스는 자체 내장된 장애 조치를 활용하여 데이터를 보호합니다. 이렇게 하면 데이터베이스의 데이터 복구가 보장됩니다.

    • HA 클러스터 사이에서 동기식 데이터 센터의 기본(활성) 클러스터 및 보조(수동) 클러스터된 MS SQL Server 간 동기식 복제를 구성합니다. 이렇게 하면 데이터베이스 노드에 장애가 발생할 경우에도 일관성을 유지할 수 있습니다.

      필요한 HA 동기식 복제를 위해 다음 중 하나를 구성합니다.

      • SQL Server Always On 동기식-커밋 모드가용성 그룹에 대한 백업 복제본
      • 서버 데이터베이스 미러링에 대한 SQL
    • DR 사이트 간에 데이터베이스를 구성하여 DR 사이트를 기본(생산) DR 사이트에서 지리적으로 떨어진 위치에 있는 보조(복구) DR 사이트로 비동기식 복제본을 제공합니다.

샘플 시나리오

동일한 클러스터 내의 모든 IQ Bot 인스턴스는 동일한 데이터베이스 및 리포지토리 파일을 가리킵니다. 이는 여러 서버에서 데이터를 공유하고 클러스터 내 IQ Bot 서버에서 데이터 무결성을 유지하기 위해 필요합니다.

HA 및 DR 배포 모델

HA 및/또는 DR로 IQ Bot을 보호하려면 다음에서 설명하는 배포 모델에 따라 데이터 센터를 구성합니다.

HA 구현 요구 사항

  • 여러 서버에 IQ Bot을 설치합니다.
  • IQ Bot에 대한 액세스가 로드 밸런서를 통해 이루어집니다.
  • IQ Bot 서버 간에 RabbitMQ v3.8.18 동기화 포트를 엽니다.
  • Microsoft SQL Server를 고가용성 모드로 구성합니다.

설치 HA 및 DR 구성 요구 사항

  • IQ Bot 설치 프로그램은 클러스터 설치를 직접 지원하지 않습니다. 클러스터를 설정하려면 다음과 같이 합니다.
    • 각 애플리케이션 서버 노드에서 설치 프로그램을 실행합니다.
    • 액세스 역할 Everyone을 사용하여 output folder를 공유합니다.
    • 설치 후 적절한 커맨드 라인 인수를 사용하여 messagequeue_cluster_configuration.bat을 실행합니다.
  • IQ Bot을 고가용성 구성으로 구성합니다.
  • 개방형 방화벽 포트: 4369 및 25672.
  • 클러스터의 모든 IQ BotRabbitMQ v3.8.18를 설치합니다.

    IQ Bot이 먼저 설치된 노드가 기본 RabbitMQ v3.8.18 노드입니다. 기본 노드의 호스트 이름을 RabbitMQ v3.8.18 클러스터 구성 설정에 사용합니다.

  • 트래픽을 모든 IQ Bot 서버 노드로 분배하려면 로드 밸런서가 필요합니다.
  • 고가용성을 위해 Microsoft SQL Server을 구성합니다. Microsoft SQL Server Always On 옵션을 사용합니다.
  • RabbitMQ v3.8.18 특정 설치에 대해서는 RabbitMQ v3.8.18 문서를 참조하십시오.

HA 및 DR 알려진 제한 사항

  • IQ Bot 인스턴스의 가용성을 확인하기 위해 로드 밸런서는 주기적으로 ping을 보내거나, 연결을 시도하거나, 요청을 보내 IQ Bot 인스턴스를 테스트합니다. 이러한 테스트를 상태 점검이라고 합니다.
  • 상태 점검은 RabbitMQ v3.8.18 인스턴스의 가용성을 확인하지는 않습니다.