1. HA(High Availability, 고가용성)의 정의
HA는 시스템이 장애가 발생해도 서비스 중단 없이 운영될 수 있는 능력을 뜻한다. 단순히 "서버가 켜져 있다"를 넘어, 사용자가 언제든 서비스를 이용할 수 있도록 보장하는 가동률(Availability)이 핵심이다. 보통 연간 중단 시간을 계산하여 99.9% (Three Nines) 이상의 수치를 목표로 한다.
2. HA 구현을 위한 주요 구성 방식
시스템을 이중화할 때 자원을 어떻게 활용하느냐에 따라 두 가지로 나뉜다.
- Active-Active (활동-활동)
- 두 대 이상의 시스템이 모두 가동 중인 상태로 트래픽을 분산 처리한다.
- 자원 효율성이 높고 처리 용량이 늘어나는 장점이 있으나, 한 쪽 장애 시 남은 서버가 전체 부하를 견딜 수 있도록 설계해야 한다.
- Active-Standby (활동-대기)
- 하나의 시스템은 서비스를 수행(Active)하고, 나머지는 장애를 대비해 대기(Standby)한다.
- 구성 및 데이터 동기화가 상대적으로 단순하지만, 평상시에는 대기 장비의 자원을 사용하지 못한다는 단점이 있다.
3. Failover (장애 극복)
HA 환경에서 가장 중요한 메커니즘이 바로 Failover다.
- 개념: 운영 중인 시스템(Active)에 장애가 발생했을 때, 대기 중인 시스템(Standby)이나 다른 가동 장비가 그 기능을 즉시 넘겨받아 서비스를 유지하는 과정을 말한다.
- 작동 원리:
- Heartbeat (박동 감지): 서버 간에 주기적으로 신호를 주고받으며 서로의 생존 여부를 확인한다.
- 장애 감지: 특정 횟수 이상 응답이 없으면 장애로 판단한다.
- 전환: 가상 IP(VIP)를 넘겨받거나 데이터베이스 권한을 승계하여 서비스를 재개한다.
- 반대 개념 (Failback): 장애가 발생했던 원래 시스템을 복구하여 다시 서비스를 돌려놓는 과정을 의미한다.
4. L4 및 L7 로드밸런싱 방식
로드밸런서는 트래픽을 여러 서버로 분산하여 HA를 완성하는 장치다. OSI 7계층 중 어느 정보를 기준으로 나누느냐에 따라 차이가 크다.
L4 (Layer 4 - 전송 계층) 로드밸런싱
- 분산 기준: TCP/UDP 포트 번호, IP 주소.
- 특징: 데이터의 내용(HTTP 메시지 등)을 확인하지 않고 패킷 레벨에서 바로 전달한다.
- 장점: 내용 분석이 없어서 처리 속도가 매우 빠르고 효율적이다.
- 단점: 사용자가 구체적으로 무엇을 요청했는지 알 수 없으므로, 섬세한 라우팅이 불가능하다.
L7 (Layer 7 - 응용 계층) 로드밸런싱
- 분산 기준: HTTP URL, 쿠키(Cookie), HTTP 헤더, 데이터 본문 내용.
- 특징: 패킷의 내용을 열어보고 사용자가 요청한 '콘텐츠'에 따라 적절한 서버로 보내준다.
- 장점:
- 콘텐츠 기반 스위칭: 이미지 요청은 이미지 서버로, 로그인 요청은 인증 서버로 정교하게 보낼 수 있다.
- 보안 강화: 특정 패턴의 악의적인 요청을 필터링하거나 비정상적인 트래픽을 차단할 수 있다.
- 단점: 패킷 내용을 분석하는 과정에서 L4보다 더 많은 CPU/메모리 자원을 소모하며 지연 시간이 조금 더 길 수 있다.