본문 바로가기
금융IT/Architecture

서버 이중화

by 윤루트 2023. 10. 26.

금융권과 같이 대규모 회사의 IT 설계를 할 때는 안정적인 운영이 필수이다.

서비스가 24시간 365일 중단되지 않고 안정적으로 운영되는 것을 항상 목표로 한다.

이렇게 서비스(서버, 네트워크, 프로그램 등)를 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질을 고가용성 (HA, High Availability) 라고 한다.

높은 고가용성을 보장하기 위해서는 서버 이중화가 필수이다. 이때, 서버 이중화에 대한 정의와 구조에 대해 알아보도록 하자.

 


서버 이중화란?

  • 인프라 설계 시 서비스의 안정성을 위해 서버를 이중으로 구성
  • 하나의 서비스 장애 발생 시 다른 서버를 통해 서비스를 지속 가능하게 함.
    • Active / Standby 구조
      • 장애가 발생한 Active 서버를 내리고 대기하고 있던 Standby 서버를 올리는 것을 failover 라고 함.
      • Active 서버에 할당된 가상IP 주소를 Standby 서버로 재할당
      • ⇒ 클라이언트는 동일 IP주소로 통신 가능
      • Standby 서버는 Active 서버를 항상 감시해야 한다.
        • Active 장애 발생 시 즉시 전환 위함
  • 기본적으로 양 서버는 무결성을 보장해야 한다.
    • 양 서버의 데이터가 항상 일치해야 한다. - 데이터 복제 필요

구조

  • Active-Active 구조
    • L4스위치 등의 Load Balancing(부하 분산)을 통해 트래픽을 나누어 처리하도록 구성된 구조
    • A서버 장애 시 별도 전환 필요 없이 살아있는 B서버에서만 처리 - Down Time 존재X
  • Active-Standby 구조
    • 즉각적인 failover 목적
      • failover? - 서버 전환 (Active 서버 장애 발생 시 Active 서버 내리고 Standby 서버 올리는 것)
    • 지속적으로 Active 서버 장애 발생 여부 확인해야 함.
      • Active-Standby 간 heartbeat를 주고받으며 health check 함.

Active-Active vs Active-Standby

  • 가용성 : Active-Active Win
    • 이미 2개 서버 모두 Active이기 때문에 failover가 필요하지 않으므로 서버 전환 시 발생하는 작업 시간인 down time이 발생하지 않는다.
  • 비용 : Active-Active Win
    • Active-Active : 비용 = 200
      • 각 서버는 평소 50:50 트래픽을 받고 있을 것이다.
      • 서버는 보통 평소 트래픽의 1.5~2배의 스펙을 가지고 있으므로
      • 각 서버는 75~100은 감당할 수 있는 수준의 스펙을 가지고 있을 것이다.
    • Active-Standby : 비용 = 250~300
      • 한 서버는 평소 100의 트래픽을 받고 있을 것이다.
      • 위와 마찬가지 이유로 150~200의 스펙을 가지고 있을 것이다.
      • failover 시 Standby 서버는 최소 100이 되어야 한다.
    • 추가로 서버 인메모리 캐시 등 Warm-up이 필요한 경우에도 Standby 서버는 아무 정보도 없으므로 처음부터 warm-up 작업이 필요하다.
      • 단, 지속적으로 Active-Standby 를 전환해주어 해결 가능
  • 그럼에도 Active-Standby를 사용하는 이유?
    • 네트워크 측면에서 구성이 단순
      • 두 서버간의 Load Balancing 필요하지 않으므로 Load Balancer 가 필요 없다.
        • 실제로는 장애 인지 및 트래픽 전환의 용이성 위해 로드밸런싱 두고 사용하는 경우 다수.
      • 트래픽이 분산되어 전달되지 않으므로 네트워크 문제 추적 시 더욱 간다.
    • 동시성 이슈
      • Active-Active 구조의 경우 서버가 동시에 요청 처리하므로 동시성 이슈가 발생할 수 있다.
      • Active-Standby는 근본적으로 해결 가
    •  

댓글