본문 바로가기
시스템아키텍처

무중단 서비스를 위한 설계: Active-Active 이중화와 STONITH 방어 메커니즘 해부

by 매일기술사 2026. 4. 14.
기술사 학습노트 시스템 아키텍처 가용성 및 성능
SYSTEM ARCHITECTURE · 정보관리기술사 / 컴퓨터시스템응용기술사

무중단 서비스를 위한 고가용성(HA, High Availability) 아키텍처 완벽 해부

99.999%(Five Nines)의 가용성을 달성하기 위한 장애 조치(Failover)의 본질과 Active-Active/Standby 이중화 구조, 스플릿 브레인(Split-Brain) 방어 기법 및 클라우드 시대의 다중 가용영역(Multi-AZ) 전략을 심층 분석한다.

정보관리기술사 컴퓨터시스템응용기술사 고가용성 HA 이중화 Active-Active Active-Standby 스플릿브레인 Failover MTBF
Ⅰ. 단일 장애점(SPOF)의 극복, 고가용성(HA) 개요

가. 고가용성 (High Availability)의 본질

고가용성(HA)은 서버, 네트워크, 스토리지 등 시스템의 일부 구성 요소에 장애가 발생하더라도, 전체 시스템은 중단 없이 지속적으로 정상 운영될 수 있도록 보장하는 아키텍처 설계 사상이다. 핵심은 시스템 내의 단일 장애점(SPOF, Single Point of Failure)을 식별하고, 이를 이중화(Redundancy)하여 치명적인 다운타임(Downtime)을 예방하는 것이다.

나. 가용성(Availability) 측정의 수학적 지표: MTBF와 MTTR

가용성(%) = [ MTBF / (MTBF + MTTR) ] × 100

가용성은 시스템이 고장 나지 않고 버티는 시간인 MTBF (Mean Time Between Failures, 평균 무고장 시간)를 극대화하고, 장애 발생 시 복구에 걸리는 시간인 MTTR (Mean Time To Repair, 평균 수리 시간)을 최소화함으로써 달성된다. 궁극의 목표인 '파이브 나인스(99.999%)'는 연간 다운타임이 단 5분 15초 이내임을 의미한다.

Ⅱ. HA 클러스터(Cluster) 아키텍처 메커니즘 도해도

가. 장애 감지 및 자동 절체(Failover) 아키텍처

HA 아키텍처는 노드 간의 생존 상태를 지속적으로 확인하는 하트비트(Heartbeat)와, 장애 발생 시 대기 서버로 트래픽과 서비스 소유권을 즉시 넘기는 페일오버(Failover) 메커니즘으로 구성된다.

사용자 / Client L4 스위치 / 로드밸런서 (VIP 보유) Health Check 기반 트래픽 라우팅 Node A (Active) 애플리케이션 프로세스 (Running) 정상 트래픽 Node B (Standby) 애플리케이션 프로세스 (Idle / 대기) 장애 절체 (Failover) Heartbeat (상태 감시망) 공유 스토리지 (Shared Storage) / DB 데이터 무결성 보장 (또는 실시간 복제 Replication)

나. HA 아키텍처의 4대 핵심 구성요소 (4단표)

핵심 구성요소 명칭 및 역할 아키텍처 내 물리적 작동 원리
Virtual IP (VIP) 가상 IP 주소 클라이언트는 개별 노드의 실제 IP가 아닌 대표 VIP로 접속한다. Active 노드에 장애가 발생하면 VIP가 Standby 노드로 즉시 인계(Takeover)되어 서비스 단절을 방지한다.
Heartbeat 상태 감시망 노드 간에 전용 네트워크 라인(Cross Cable 등)을 통해 주기적으로 '살아있음(Alive)' 신호를 교환한다. 응답이 일정 횟수 이상 누락되면 상대방이 죽은 것으로 간주한다.
Failover / Failback 장애 절체 및 복구 장애 감지 시 대기 노드가 능동 노드(Active)로 전환되는 과정이 Failover이며, 장애가 조치되어 원래 노드로 권한을 되돌리는 과정이 Failback이다.
Replication 데이터 복제/공유 노드가 교체되어도 이전 데이터가 유지되어야 하므로 SAN 기반의 공유 스토리지(Shared Storage)를 사용하거나, 실시간으로 블록/트랜잭션 복제(Replication)를 수행한다.
Ⅲ. 이중화 구성 방식: Active-Standby vs Active-Active

비즈니스의 예산 규모, 애플리케이션의 복잡도, DB 정합성 요구 수준에 따라 두 가지 모델 중 하나를 선택하여 구성한다.

비교 지표 Active - Standby (Hot/Cold) Active - Active
운영 방식 및 구조 1대의 노드만 서비스를 제공하고, 다른 노드는 유휴 상태(Idle)로 대기하다가 장애 시에만 투입된다. 2대 이상의 노드가 동시에 서비스 트래픽을 처리(Load Balancing)하며, 장애 시 남은 노드가 트래픽을 전담한다.
장점 및 효익 동시 접근으로 인한 데이터 충돌(Lock, Deadlock) 이슈가 없어 구성이 매우 단순하고 정합성 보장이 확실하다. 유휴 장비가 없어 자원 활용률(100%)이 극대화되며, 평상시 2배의 성능(Throughput)을 제공한다.
단점 및 한계 고가의 장비 1대가 평소에 놀고 있어 비용 낭비가 심하며, 절체(Failover) 시 수 초~수 분의 순단 현상이 발생할 수 있다. 양쪽에서 데이터를 동시 수정할 경우 스플릿 브레인(Split-Brain) 및 동기화 충돌 방지 로직이 매우 복잡하고 구축 비용이 높다.
Ⅳ. 가장 치명적인 위협: 스플릿 브레인(Split-Brain)과 방어 아키텍처

가. 스플릿 브레인(Split-Brain) 신드롬의 공포

스플릿 브레인은 두 노드가 물리적으로는 모두 멀쩡하지만, 그 사이를 잇는 '하트비트 네트워크 라인만 단절'되었을 때 발생하는 최악의 재앙이다. Node B(Standby)는 Node A가 죽었다고 오판하여 스스로 Active로 승격하고, 원래 살아있던 Node A도 계속 자신이 Active라고 우기는 '두 명의 마스터(Dual Active)' 상태가 된다. 이 상태에서 양쪽 노드가 공유 스토리지(DB)에 동시 쓰기(Write)를 시도하면, 데이터 베이스의 정합성이 영구적으로 파괴(Data Corruption)된다.

나. 스플릿 브레인 방어 메커니즘 (Quorum & STONITH)

  • Quorum (쿼럼 / 정족수 투표): 노드를 2개가 아닌 항상 홀수(3개, 5개 등)로 구성하거나 외부의 투표용(Tie-breaker) 노드를 둔다. 네트워크가 단절되었을 때, 다수결의 원칙(과반수 쿼럼)을 확보한 노드 그룹만 살아남고, 과반을 잃은 노드는 스스로를 차단하여 시스템을 보호한다. (예: ZooKeeper, etcd)
  • STONITH (Shoot The Other Node In The Head): 자신이 Active가 될 때, 상대방 노드가 살아있을 일말의 가능성조차 배제하기 위해 PDU(원격 전원 제어 장치)를 통해 상대방 서버의 전원을 물리적으로 강제 차단(Fencing)시켜버리는 가장 확실하고 과격한 최후의 방어 수단이다.
Ⅴ. 클라우드 네이티브 시대의 가용성: Multi-AZ와 Chaos Engineering

가. 데이터센터를 넘어선 이중화: 다중 가용 영역(Multi-AZ)

과거의 HA가 동일한 서버 랙(Rack) 내의 이중화였다면, AWS와 같은 현대 클라우드 아키텍처에서는 화재나 지진 같은 국지적 재난에 대비하기 위해 서로 수십 km 떨어진 별도의 독립된 데이터센터(가용 영역, Availability Zone) 간에 Active-Active 클러스터를 구성하는 Multi-AZ 아키텍처가 기본으로 채택된다. 이는 HA를 넘어선 재해복구(DR)의 관점과 융합된 형태이다.

나. 카오스 엔지니어링 (Chaos Engineering)을 통한 능동적 검증

아무리 HA 아키텍처를 완벽하게 설계해도, 실제 장애가 났을 때 Failover가 100% 동작할 것이라고 확신할 수는 없습니다. 이를 보완하기 위해 넷플릭스(Netflix)에서 창안한 카오스 엔지니어링은, 평온한 프로덕션(운영) 환경에 의도적으로 서버를 죽이거나 네트워크를 단절시키는 등 인위적인 장애를 무작위로 주입(Failure Injection)하여, 시스템이 스스로 견뎌내고 복구(Resilience)하는 능력을 상시 검증하는 최신 가용성 확보 전략입니다.

블로그: 기술사 학습노트 · imt-log.tistory.com