High Availability

agnusdei·2025년 11월 2일

🚀 고가용성 (High Availability, HA) 개요

고가용성(HA)은 서버, 네트워크, 애플리케이션 등 정보 시스템의 구성 요소에 장애가 발생하더라도 서비스의 중단 시간을 최소화하고, 사전에 정의된 수준의 서비스 연속성을 보장하는 특성 및 목표를 의미합니다. 즉, 시스템이 오랜 기간 동안 지속적으로 정상 운영될 수 있는 능력을 극대화하는 것을 목표로 합니다.

1. 정의 및 목표

구분내용
정의정보 시스템이 장애 상황에서도 중단 없이 지속적으로 서비스를 제공할 수 있는 능력
핵심 목표다운타임(Downtime) 최소화를 통한 비즈니스 연속성(Business Continuity) 확보
관련 개념내결함성(Fault Tolerance): 시스템의 일부 구성 요소에 장애가 발생하더라도 기능을 중단 없이 지속할 수 있는 능력 (더 강력한 HA 개념)
재해 복구(Disaster Recovery, DR): 광범위한 재해(자연재해, 데이터센터 전체 마비 등) 발생 시 서비스를 복구하는 전략 (HA는 국소적/부분적 장애에 대응)

2. 가용성 측정 지표 (Nines of Availability)

가용성(Availability)은 시스템이 정상적으로 작동한 시간을 전체 시간으로 나눈 백분율로 측정하며, 일반적으로 '9'의 개수로 표현됩니다.

가용성 (%)=총 가동 시간 (Uptime)총 시간 (Uptime+Downtime)×100\text{가용성 (\%)} = \frac{\text{총 가동 시간 (Uptime)}}{\text{총 시간 (Uptime} + \text{Downtime)}} \times 100

가용성다운타임/년 (Downtime per year)
99% (2-Nines)3.65일 (87.6시간)
99.9% (3-Nines)8.76시간
99.99% (4-Nines)52.6분
99.999% (5-Nines)5분 15초 (일반적인 고가용성 시스템의 목표)

🏗️ 고가용성 구현 아키텍처 (HA 클러스터)

HA는 주로 클러스터링(Clustering) 기술을 통해 구현되며, 여러 개의 서버(노드)를 논리적으로 묶어 하나의 시스템처럼 동작하게 합니다.

1. HA 클러스터 구성 방식

HA 클러스터는 서비스 중단 없이 장애를 극복(Failover)하고 트래픽을 처리하는 방식에 따라 크게 두 가지로 나뉩니다.

A. Active-Standby (A-S)

  • 구성: 한 노드만 활성화(Active)되어 서비스 트래픽을 처리하고, 나머지 노드는 대기(Standby/Passive) 상태로 Active 노드의 상태와 데이터를 동기화합니다.
  • 장애 대응: Active 노드 장애 시, Standby 노드가 자동으로 Active 상태로 전환(Failover)되어 서비스를 인계합니다.
  • 장점: 구성이 단순하고, Standby 노드가 항상 자원을 100% 확보하고 있어 장애 시 즉각적인 서비스 복구가 가능합니다.
  • 단점: Standby 노드의 자원이 평소에 유휴 상태로 있어 자원 활용 효율이 낮습니다.

B. Active-Active (A-A)

  • 구성: 모든 노드가 활성화(Active)되어 동시에 서비스 트래픽을 부하 분산(Load Balancing)하여 처리합니다.
  • 장애 대응: 특정 노드 장애 시, 해당 노드의 워크로드를 남아있는 정상 노드들이 분담하여 서비스 연속성을 유지합니다.
  • 장점: 자원 활용 효율이 높고, 전체 시스템의 처리량(Throughput)이 증대됩니다.
  • 단점: A-S에 비해 구성 및 설정이 복잡하며, 장애 발생 시 남아있는 노드에 부하가 집중되어 성능 저하가 발생할 수 있습니다.

2. HA 구현을 위한 핵심 기술

HA 시스템을 구현하기 위해서는 다음과 같은 핵심 기술들이 필수적으로 적용됩니다.

기술 요소설명HA 역할
이중화/중복성 (Redundancy)서버, NIC(Network Interface Card), 전원 장치(Power Supply Unit, PSU), 스토리지 등 모든 구성 요소를 이중으로 준비SPOF(단일 장애점, Single Point of Failure) 제거
장애 감지 및 페일오버 (Failover)HeartbeatHealth Check를 통해 Active 노드의 상태를 실시간으로 모니터링하고, 장애 발생 시 대기 노드로 서비스 자동 전환서비스 중단 시간 최소화
데이터 복제 (Data Replication)Active 노드와 Standby 노드 간에 데이터를 실시간으로 동기화 (동기식/비동기식)데이터의 일관성(Consistency)무결성(Integrity) 보장
공유 스토리지 (Shared Storage)클러스터의 모든 노드가 접근 가능한 중앙 집중식 저장 공간 (SAN, NAS 등)노드 장애 시 데이터 손실 없이 즉시 서비스 인계 가능
로드 밸런싱 (Load Balancing, LB)다수의 서버에 트래픽을 균등하게 분산시켜 특정 서버 과부하 방지A-A 구성에서 필수적, 시스템 확장성 확보

🛡️ HA의 한계점 및 고려사항

HA는 높은 가용성을 제공하지만, 다음과 같은 한계와 고려사항을 가집니다.

  • 비용 및 복잡성: 이중화된 하드웨어, 전문 솔루션(HA 클러스터 솔루션), 복잡한 설정 및 관리가 필요하여 구축 비용 및 운영 복잡성이 증가합니다.
  • 스토리지/네트워크 제약: 공유 스토리지가 HA 구성의 SPOF가 될 수 있으며, 데이터 복제로 인한 네트워크 대역폭 부담 및 성능 오버헤드가 발생할 수 있습니다.
  • HA 범주: HA는 주로 부분적인 서버/컴포넌트 장애에 대응하며, 지진/화재와 같은 대규모 재해(DR)논리적 오류(데이터 손상, 인적 오류)에는 대응하지 못할 수 있습니다.

따라서 실제 시스템 설계 시에는 요구되는 가용성 수준(SLA)과 예산, 기술적 제약을 종합적으로 고려하여 HA-DR 전략을 수립해야 합니다.

profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글