1. 가용성(Availabilty)
1.1 가용성이란?
서버, 네트워크, 특정 하드웨어 부품을 비롯한 특정 컴퓨터 시스템이 주어진 기능을 실제로 수행할 수 있는 시간의 비율
가용성=업타임+다운타임업타임
업타임:정상적인사용시간,다운타임:모종의이유로인해정상적인사용이불가능한시간
- 즉, 시스템이 다운타임 없이 안정적으로 운영되는 정도
- 주어진 기능을 문제없이 수행하는 시간의 비율이 높으면 고가용성(HA, High Availability)라고 함
1.2 가용성 지표
- 파이브 Nines = 99.999% 가용성 → 보통 안정적이라고 평가받는 지표
- 연간 허용 다운타임:
| 가용성 | 허용 다운타임 |
|---|
| 99% | 약 3.65일/년 |
| 99.9% | 약 8.76시간/년 |
| 99.99% | 약 52.6분/년 |
| 99.999% | 약 5.26분/년 |
2. 가용성을 높이는 핵심 개념
고가용성의 핵심은 "애초에 문제가 발생하지 않도록 하는 것"이 아니라, "문제가 발생하더라도 기능할 수 있는 능력"
- 다운타임의 발생 원인을 모두 찾아 차단하기에는 현실적으로 어렵기 때문
결함 감내 (Fault Tolerance): 문제가 발생하더라도 기능할 수 있는 능력
장애 전환(Failover): 시스템에 문제가 생겼을 때 예비된 시스템으로 자동 전환되는 기능
2.1 헬스체크(Health Check) & 하트비트(Heartbeat)
특정 서버의 이상을 체크하는 방법
- Health Check: 시스템/서비스 상태를 주기적으로 확인 (주로 로드밸런서에 의해 작동)
- Heartbeat: 서버 간 또는 클러스터 노드 간 “살아있음” 신호 전송, 끊겼을 때 문제 발생 감지
- 목적: 장애 탐지 → 자동 Failover 수행
로드밸런서(Load Balancer)란?
서버로 들어오는 트래픽(요청)을 여러 서버로 분산해주는 장치 또는 소프트웨어
목적: 부하 분산, 성능 향상, 자동 Failover → 고가용성 확보
2.2 Redundancy (중복 구성)
- 핵심 구성요소를 중복 배치 → 장애 발생 시 다른 구성요소로 서비스 유지
- 목표: 단일 장애 지점(SPOF) 제거
- Active / Passive 구성과 연계하여 구현 가능
1. 하드웨어 Redundancy
-
서버, 스토리지, 네트워크 장비를 중복 배치
-
Active-Passive:
- Active: 실제 트래픽 처리
- Passive: 대기 상태, 장애 발생 시 자동 전환(Failover)
-
Active-Active:
- 모든 장비가 동시에 트래픽 처리
- 일부 장비 장애 발생해도 서비스 지속 가능
2. 소프트웨어 Redundancy
-
클러스터, 로드밸런서, 분산 서비스 활용
-
로드밸런서(LB):
- 트래픽을 Active 노드 또는 Active-Active 서버에 분산
- 장애 시 자동으로 다른 노드로 요청 전환
-
클러스터링:
- 서비스 인스턴스 중 일부 장애 발생 시 나머지 인스턴스가 서비스 유지