고가용성 (High Availability, HA)¶
1. 개요¶
고가용성(High Availability, HA)은 시스템, 네트워크, 서비스 등이 상당히 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질을 의미한다. 단순히 "고장나지 않음"을 넘어서, 장애가 발생하더라도 즉시 복구하거나 대체 시스템이 작동하여 서비스 중단을 최소화하는 것을 목표로 한다.
2. 핵심 목표¶
HA의 궁극적인 목표는 가동 시간(Uptime)을 최대화하고 다운타임(Downtime)을 최소화하는 것이다. 이를 위해 단일 실패 지점(SPOF, Single Point of Failure)을 제거하고, 시스템의 이중화 및 다중화를 구현해야 한다.
3. 가용성 측정 (The Nines)¶
가용성은 주로 퍼센트(%)로 표현하며, "9가 몇 개인지"에 따라 등급을 나눈다.
| 가용성 (Availability) | 연간 다운타임 (Downtime / Year) | 설명 |
|---|---|---|
| 99% (2 Nines) | 약 3.65일 | 일반적인 서비스 수준 |
| 99.9% (3 Nines) | 약 8.76시간 | 업무용 시스템, 웹 서비스 |
| 99.99% (4 Nines) | 약 52.6분 | 엔터프라이즈급 서비스 (중요) |
| 99.999% (5 Nines) | 약 5.26분 | 통신, 금융, 의료 등 치명적 시스템 |
4. 고가용성을 위한 핵심 전략¶
4.1. 이중화 (Redundancy)¶
시스템의 부품이나 기능을 여분으로 두어, 하나가 고장 나더라도 전체 시스템은 멈추지 않도록 하는 설계 기법이다.
- Active-Active 구조:
- 두 개 이상의 인스턴스가 동시에 가동되며 부하를 분산 처리한다.
- 하나가 죽어도 나머지 노드들이 트래픽을 감당하므로 중단이 없다.
- 처리량(Throughput)이 높다.
- Active-Passive (Standby) 구조:
- 메인(Active) 노드만 트래픽을 처리하고, 대기(Passive) 노드는 평소에 대기한다.
- 메인 노드 장애 시 대기 노드가 메인으로 승격(Failover)된다.
- 데이터 동기화 이슈가 Active-Active보다 적을 수 있다.
4.2. 장애 조치 (Failover)¶
시스템 감시 도구가 장애를 감지하면, 자동으로 예비 시스템으로 제어권을 넘기는 과정이다.
- Heartbeat: 서버 간에 주기적으로 신호를 주고받아 상대방의 생존 여부를 확인한다.
- VIP (Virtual IP): 클라이언트는 하나의 가상 IP를 바라보고, 상황에 따라 실제 연결되는 서버(Active Node)를 변경한다.
4.3. 로드 밸런싱 (Load Balancing)¶
트래픽이 한 곳에 몰리지 않도록 여러 서버로 분산시켜주는 기술이다. 특정 서버에 장애가 발생하면 로드 밸런서가 이를 감지하여 해당 서버로의 트래픽을 차단(Health Check)함으로써 가용성을 유지한다.
4.4. 클러스터링 (Clustering)¶
여러 대의 컴퓨터를 연결하여 하나의 시스템처럼 동작하게 만드는 기술이다. HA 클러스터는 노드 장애 발생 시 다른 노드에서 서비스를 이어받도록 구성된다.
5. 단일 실패 지점 (SPOF) 제거¶
시스템 구성 요소 중 동작하지 않으면 전체 시스템이 중단되는 요소를 SPOF라고 한다. HA를 달성하기 위해서는 모든 계층(하드웨어, 네트워크, 데이터베이스, 애플리케이션 등)에서 SPOF를 찾아내고 이중화해야 한다.
6. 결론¶
고가용성은 완벽한 무장애를 의미하는 것이 아니라, 장애를 허용하고(Fault Tolerance) 신속하게 복구하는 능력(Resilience)을 갖추는 것이다. 비즈니스의 중요도에 따라 적절한 수준의 SLA(Service Level Agreement)를 설정하고 이에 맞는 아키텍처를 설계하는 것이 중요하다.