서버 고가용성(HA, High Avaliability)을 위한 이중화

YOUNRONG JEONG·2023년 12월 20일

이중화란?

시스템의 가용성을 높이기 위해 장비를 다중화 시키는 방법을 말한다.
이중화 구성은 가용성을 높여주기 때문에 고가용성을 뜻하는 HA(High Avaliability)라는 용어와 혼재하여 사용하기도 한다.

가용성이란 쉽게 말해 하나의 서버 장비가 문제가 생겨도 다른 장비에서 서비스가 될 수 있도록 구현하는 것을 말한다.

AWS는 이중화를 위해 물리적으로 떨어져있는 영역인, Avaliability Zone, 줄여서 AZ라고 불리는 개념이 존재한다.
AZ를 통해 일반적으로 같은 데이터 센터에 서버만 여러 개 구성하는 이중화보다 더욱 더 높은 가용성을 구현할 수 있게 되는 것이다.

한국에는 현재 총 4개의 Zone이 있으며, 이를 논리적인 단위 AZ-a, AZ-b, AZ-c, AZ-d로 구분한다.

참고로 AZ의 구분은 특정 데이터 센터를 a, b, c, d로 지칭하는 것이 아닌 논리 구분이기 때문에 VPC(Virtual Private Cloud)가 다를 경우 같은 AZ-a라고 해도 실제 데이터 센터는 다를 수 있다.

이중화의 종류

이중화는 다중화한 장비를 모두 가동할 것인지, 아니면 한쪽 장비에 장애가 날 때만 가동할 것인지에 따라서 2가지 종류로 나뉘게 된다.

Active-Active

  • 다중화된 장비가 모두 가동되는 방식을 말한다.
  • 두대를 모두 사용하기 때문에 처리율이 높다.
  • 하지만 구성이 복잡해지는데, 사용자 세션 관리는 어떻게 할 것인지 부하에 대한 분산 처리는 어떤 방식으로 할 것인지 등을 고려해야 한다.

Active-Standby

  • 우리가 흔히 HA를 말할때 이 형태의 구성을 말한다.
  • 두 대 중 하나는 가동이 되고, 하나는 장애 상황의 경우를 대비해서 말 그대로 준비 상태로 대기시키는 것을 말한다.

장애가 발생하여 Active 장비가 죽게되면 Standby 장비가 Active 상태가 되어 서비스에 문제가 없도록 처리하게 된다.
이 과정을 failover라고 하며 Standby 상태가 Active상태로 되는 시간동안은 서비스가 불가능 할 것이므로 이를 인지하고 있어야 한다.

AWS의 RDS를 사용하면 Active-Standby형태의 HA구성을 쉽게 할 수 있다.
Multi-AZ 기능을 사용하면 동기(sync)방식으로 다른 AZ에 standby 서버와 데이터를 동기화한다.

동기방식이란 데이터의 정합성을 보장하는 것을 말한다.
쉽게 말하면 A가 B한테 데이터를 보내는 것으로 끝나는 것이 아닌, B에게서 잘받았다 라고 응답까지 받아야 데이터 복제가 끝나는 방식이다.
그렇기 때문에 복제되는 속도는 비교적 느리다.

Active-Standby방식은 크게 3타입으로 구분할 수 있다.
Hot이 failover 시간이 가장 짧으며 Warm, Cold순으로 짧다.

  • Hot Standby : Standby 장비가 가동되었을 때 즉시 사용가능
  • Warm Standy : Standby 장비가 가동되었을 때 설정에 대한 준비가 필요함
  • Cold Standby: Standby 장비를 평소에는 정지시켜두며 필요에 따라서 직접 켜서 구성을 함
profile
안녕하세요. 개발을 공부하고 있습니다.

0개의 댓글