고가용성(HA) 아키텍처: Active-Active vs Active-Standby 구성 전략
멈추지 않는 서비스의 비밀, 고가용성(HA)
"서버가 죽었습니다." IT 담당자에게 이보다 끔찍한 말은 없을 것입니다. 서비스 중단은 곧 매출 하락과 신뢰도 추락으로 이어지기 때문입니다. 이를 방지하기 위해 시스템이 24시간 365일 정상적으로 운영되도록 설계하는 것을 고가용성(HA, High Availability)이라고 합니다.
HA 아키텍처의 기본 원리는 간단합니다. '하나가 고장 나면 다른 하나가 대신한다'는 이중화(Redundancy)입니다. 하지만 이 두 개의 시스템을 평소에 어떻게 운영하느냐에 따라 전략은 크게 두 가지로 나뉩니다. 바로 Active-Active와 Active-Standby입니다.
1. Active-Standby: 든든한 예비군 전략
가장 전통적이고 보편적인 방식입니다. '주(Primary) - 부(Secondary)' 구조라고도 불립니다.
작동 원리
평상시에는 메인 서버(Active)만 트래픽을 처리하고, 대기 서버(Standby)는 가동 중이지만 실제 트래픽은 받지 않는 상태로 대기합니다. Active 서버와 Standby 서버는 실시간으로 데이터를 동기화(Replication)하며 서로의 상태를 주기적으로 확인(Heartbeat)합니다.
만약 Active 서버에 장애가 발생하면, 시스템이 이를 감지하고 즉시 Standby 서버를 Active 상태로 전환하여 서비스를 이어받습니다. 이를 페일오버(Failover)라고 합니다.
장점
- 구축 용이성: 구조가 단순하여 설계 및 구현이 비교적 쉽습니다.
- 데이터 정합성: 하나의 서버에서만 데이터를 쓰기 때문에 데이터 충돌 문제가 거의 발생하지 않습니다.
- 비용 절감: Standby 서버는 트래픽을 처리하지 않으므로, 상황에 따라 Active 서버보다 낮은 사양으로 구성하거나 전원을 꺼두는(Cold Standby) 방식으로 비용을 아낄 수 있습니다. (단, 즉각적인 복구를 위해선 Hot Standby가 권장됩니다.)
단점
- 자원 낭비: 멀쩡한 서버 한 대를 놀리고 있는 셈이므로 리소스 활용 효율이 떨어집니다.
- 다운타임 발생: 장애 감지 후 Standby가 가동될 때까지 짧게는 수초에서 길게는 수분의 서비스 중단이 발생할 수 있습니다.
2. Active-Active: 두 마리 토끼를 잡는 전략
모든 서버가 동시에 일하는 구조입니다. '부하 분산(Load Balancing)'이 핵심입니다.
작동 원리
두 대 이상의 서버가 모두 Active 상태로 실제 트래픽을 처리합니다. 앞단에 있는 로드 밸런서(Load Balancer)가 사용자 요청을 적절히 나누어 각 서버에 전달합니다. 만약 서버 A가 고장 나면, 로드 밸런서는 A를 제외하고 서버 B에게만 모든 트래픽을 보냅니다.
장점
- 성능 극대화: 모든 자원을 100% 활용하므로 처리 용량(Throughput)이 두 배가 됩니다.
- 무중단 서비스: 하나의 서버가 죽어도 다른 서버가 이미 가동 중이므로, 사용자는 장애를 거의 느끼지 못합니다.
- 유연한 확장성: 트래픽이 늘어나면 Active 서버를 계속 추가(Scale-out)하기만 하면 됩니다.
단점
- 복잡한 구성: 여러 서버가 동시에 데이터를 쓰고 읽기 때문에 데이터 동기화가 매우 까다롭습니다. DB 설계가 잘못되면 데이터 충돌이 발생할 수 있습니다.
- 비용 증가: 모든 서버가 고성능으로 가동되어야 하며, 장애 발생 시 남은 서버가 전체 트래픽을 감당해야 하므로 충분한 여유 자원(Over-provisioning)을 확보해야 합니다. 즉, 비용이 많이 듭니다.
3. 결정적 차이: 우리 서비스엔 무엇이 맞을까?
두 아키텍처 중 우열을 가리는 것은 의미가 없습니다. 비즈니스의 특성과 예산에 맞춰 선택해야 합니다.
Active-Standby 추천 대상
- 예산이 제한적인 중소규모 서비스: 두 배의 리소스를 항상 켜두는 비용이 부담스러운 경우.
- 내부 시스템(Admin): 1~2분의 짧은 다운타임이 비즈니스에 치명적이지 않은 경우.
- 데이터 무결성이 최우선인 금융/결제 시스템: 복잡한 동기화보다 안정적인 데이터 보관이 중요한 경우.
Active-Active 추천 대상
- 대규모 트래픽을 처리하는 커머스/포털: 평소 트래픽이 많아 부하 분산이 필수적인 경우.
- 미션 크리티컬(Mission Critical) 서비스: 단 1초의 중단도 허용되지 않는 의료, 관제, 실시간 주식 거래 시스템 등.
- 글로벌 서비스: 여러 지역(Region)에 서버를 두고 가까운 곳에서 응답해야 하는 경우.
4. 하이브리드 전략과 클라우드의 이점
최근에는 클라우드(AWS, Azure 등) 환경이 보편화되면서 이 두 가지 방식의 경계가 유연해지고 있습니다.
예를 들어, 평소에는 최소한의 Active-Active로 운영하다가, 장애가 발생하거나 트래픽이 폭주할 때 오토스케일링(Auto-scaling) 기능을 통해 자동으로 서버를 늘리는 방식을 사용합니다. 이는 Active-Active의 고성능과 Active-Standby의 비용 효율성을 결합한 현대적인 전략입니다.
요약 및 결론
고가용성 아키텍처는 단순히 서버를 두 대 두는 것이 아닙니다. Active-Standby는 '안전한 보험'이고, Active-Active는 '고속도로 확장'입니다.
- Active-Standby: 비용 효율적, 관리 용이, 짧은 다운타임 허용 시 적합.
- Active-Active: 성능 최우선, 무중단 서비스 필수, 높은 비용 감수 시 적합.
현재 운영 중인 서비스의 목표 가동률(SLA, Service Level Agreement)이 99.9%인지, 99.999%인지 먼저 확인해 보세요. 그 숫자가 여러분이 선택해야 할 아키텍처를 말해줄 것입니다.
댓글
댓글 쓰기