시스템이 장애 상황에서도 멈추지 않고 계속 동작하도록 만드는 설계 방식,
그것이 바로 고가용성(HA) 입니다.
현대의 웹 서비스는 24시간 365일 동작해야 합니다.
카카오톡이 10분 멈추면 뉴스에 나오고, 결제 시스템이 멈추면 기업 손해는 수천만 원에 달하죠.
✅ 그래서 고가용성(HA)은
“장애를 견디고, 사용자에게 영향을 주지 않는 시스템”을 만들기 위한 핵심 설계 전략입니다.
장애가 발생해도 서비스가 지속적으로 이용 가능하도록 시스템을 구성하는 것
HA 시스템은 다음 3가지를 갖추고 있어야 합니다:
| 요소 | 설명 |
|---|---|
| 이중화(Redundancy) | 서버, 네트워크, DB 등을 복수로 구성 |
| 자동 전환(Failover) | 장애 감지 시 대기 중인 시스템이 자동으로 대체 |
| 장애 감지(Heartbeat) | 시스템 간 상태 체크로 빠르게 전환 시점 판단 |
[User]
↓
[Load Balancer]
↓ ↓
[WAS 1] [WAS 2] ← Active-Passive or Active-Active
↓ ↓
[DB Master] [DB Slave]
| 가용성 (%) | 연간 다운타임 | 월간 다운타임 |
|---|---|---|
| 99% | 약 3.65일 | 약 7시간 18분 |
| 99.9% | 약 8시간 46분 | 약 43분 |
| 99.99% | 약 52분 | 약 4.3분 |
| 99.999% | 약 5분 | 약 26초 |
🎯 대부분의 클라우드 서비스 SLA는 99.9% 이상,
금융·통신 분야는 99.99% 이상을 목표로 설계합니다.
| 오해 | 진실 |
|---|---|
| “서버 하나 더 두면 되지 않나?” | Failover, Health Check, 데이터 동기화 등 설계가 핵심 |
| “클라우드 쓰면 다 되겠지” | 기본 구성만으로는 HA 보장 안 됨. 설정과 구조가 중요 |
| “장애 나도 바로 복구하면 되잖아” | 사용자가 영향을 받으면 이미 고가용성 실패 |
고가용성(HA)은 단순히 "죽지 않는 시스템"이 아니라,
장애 상황을 예상하고, 무중단으로 대처할 수 있도록 설계된 시스템을 의미합니다.