1. 서버 이중화(Duplication, Duplex)

서버 이중화는 고가용성(High Availability, HA)을 확보하기 위해 두 대 이상의 서버를 물리적 또는 논리적으로 구성하는 기술이다. 이는 시스템 장애 발생 시, 서비스의 중단 없이 지속적인 운영을 보장하기 위한 전략으로, 주로 클러스터링, 로드 밸런싱, 또는 리던던시(중복 구성) 방식으로 구현된다.
이중화 방식은 일반적으로 한쪽만이 동작하다가 장애 발생 시 다른 한 쪽이 동작을 이어가는 형태이다. 단, 중요도가 낮은 트래픽이 흐르는 장비는 이중화로 충분하지만, 중요한 데이터를 저장해야 하는 서버나 스토리지라면 삼중화, 사중화(다중화)시키기도 한다. (예: 은행 시스템 등)
물리적 서버 이중화는 두 개 이상의 물리적 서버를 사용하여 장애가 발생한 서버가 다른 서버로 대체될 수 있도록 구성하는 방식이다. 예를 들어, 두 서버를 Active-Active 또는 Active-Passive 모드로 운영하여, Active 서버에 장애가 발생하면 Passive 서버가 즉시 활성화되어 서비스가 중단되지 않도록 한다.
논리적 서버 이중화는 가상화 환경에서 여러 가상 서버를 사용하는 방식이다. 이 방식에서는 물리적 서버가 하나일 수 있지만, 가상 서버를 이중화하여 장애 발생 시 다른 가상 서버로 자동으로 이전되도록 한다.
이중화 구성에는 로드 밸런싱(Load Balancing) 기법이 적용되어, 여러 서버 간에 트래픽을 분산시키거나, 특정 서버에 장애가 발생할 경우 자동으로 다른 서버로 트래픽을 우회시키는 방식으로 가용성을 극대화한다. 또한, Failover와 Failback 메커니즘을 통해 장애 발생 시 자동 복구가 이루어지며, 장애가 해결된 후에는 정상 서버로 돌아가는 과정을 지원하기도 한다.
이러한 서버 이중화 시스템은 서비스의 중단을 최소화하고, 고가용성 환경을 구축하는 데 필수적인 요소로, 클라우드 환경에서도 높은 수준의 가용성을 보장하기 위한 핵심 기술로 널리 사용된다.
2. 서버 이중화의 목적
1. 빠른 장애해결
2. 원활한 서비스의 성능을 보장하기 위해서
2-1. Failover
Failover는 서버나 시스템에서 장애가 발생했을 때, 대체 서버가 자동으로 작업을 처리하여 무정지 서비스를 구현하는 기술이다. 즉, 빠른 장애 해결이 목적이다.
- 하드웨어, 미들웨어 등 다양한 지점에서 오류가 발생할 수 있다.
- 사용자가 이를 인지하지 못하도록 하기 위해서 서비스가 일시적인 중단이 발생하더라도(다운타임이 발생하더라도) 재빠르게 대응 가능하도록 한다.
- 장애 감지 후 자동으로 미리 설계한 대체 서버로 전환된다.
- 다운타임 최소화한다.
- 주로 Active-Standby 구성에서 사용한다.
2-2. 로드밸런싱(Load balancing, 부하분산)
로드 밸런싱(부하 분산)은 여러 대의 서버가 동시에 트래픽을 분산 처리하여 서버의 부하를 균형 있게 유지하는 기술로, 트래픽 과부하를 방지하고 시스템의 성능과 가용성을 향상시키는 기법이다. 로드밸런싱은 구현하고자 하는 지점에 따라 미들웨어, 네트워크, OS 등 다양한 지점에서 구현가능하다.
로드밸런서는 각각의 서버에게 "health check" 라고 해서, 정상적으로 서비스할 수 있는 상태인지를 확인하는 요청을 보내게 된다. 이 때 응답이 없거나, "unhealthy" 한 응답이 돌아오는 경우 로드밸런서는 해당 서버가 문제가 있다고 판단하게 된다. (종종 서버가 정상상태여도 일시적으로 unhealthy 한 응답이 돌아올 수 있으므로, 보통은 'x분 내 y번 unhealthy' 와 같은 기준을 정해둔다.)
서버가 "unhealthy" 하다고 판단하면, 로드밸런서는 해당 서버로의 트래픽을 차단한다. 이 때, "active-active" 의 경우 이미 "active"한 다른 하나의 서버가 존재하므로 그대로 중단없이 서비스가 유지된다. "active-standby" 의 경우 대기(standby)하고 있던 다른 하나의 서버가 "active" 상태로 변경되며 로드밸런서가 해당 서버로 트래픽을 전달하게 된다.
- L4 스위치는 네트워크 계층에서 트래픽을 분석하고, IP 주소와 포트 번호를 기준으로 부하를 분배하여 여러 서버 간에 트래픽을 균등하게 분배한다. 주로 Active-Active 구성에서 사용되며, 여러 서버가 동시에 작업을 처리하고 부하를 분산하여 고가용성을 유지한다.
- Round Robin 방식은 가장 기본적인 로드밸런싱 기법으로, 로드 밸런싱 기법 중 하나로, 요청을 순차적으로 각 서버에 배분하는 방식이다. 서버의 상태나 성능을 고려하지 않기 때문에 부하 분산 효율성이 낮다는 단점이 있다. 요청이 들어올 때마다 서버 리스트를 순환하며 다음 서버에 요청을 전달한다. 가장 단순하고 균등한 부하 분산 방식이지만, 서버의 상태나 성능을 고려하지 않기 때문에 부하 분산 효율성이 낮다는 단점이 있다. 따라서 동일한 성능을 가진 서버 환경에서 적절하게 동작한다.
3. 서버 이중화 구성 방법⭐

서버 이중화는 주로 Active-Active 또는 Active-Standby 방식으로 구성된다.
- Active-Active 구성은 여러 서버가 동시에 동작하며 부하를 분산 처리하는 방식으로, 장애가 발생하면 나머지 서버가 서비스를 계속 제공할 수 있다. 이 방식은 부하 분산을 위해 로드 밸런서(LB)나 L4 스위치를 사용한다.
- 반면, Active-Standby 구성은 한 서버가 활성 상태에서 작업을 처리하고, 다른 서버는 대기 상태로 남아 있다. 장애가 발생하면 대기 서버가 즉시 서비스를 대신 처리하는 Failover 방식으로, 서비스의 안정성을 보장하지만 부하 분산에는 제한이 있다.
3-1. Active-Active 방식
두 개의 서버가 모두 Active 상태로 동작하고 있기 때문에 한 서버에 장애가 발생하더라도 트래픽을 차단하여 다른 서버가 계속해서 서비스를 제공할 수 있다. 즉, 장애 발생 시 별다른 failover 작업 없이 서비스 중단 없이 이어갈 수 있다. 따라서 Down Time이 거의 없거나 매우 짧다.
Active-Active 구조는 L4스위치 등 부하분산(SLB) 로드밸런싱을 통해 기능/성격에 따라 1번 또는 2번 서버로 나뉘어 처리하도록 구성하는 것이다. 대부분의 웹서버는 L4스위치 SLB(Server Load Balancing)으로 구성하고 데이터베이스는 Oracle RAC(Real Application Cluster)를 활용, 디스크는 Veritas CFS(Cluster File System)을 통해 구성한다. 이런 구성은 1번장비 장애 시 2번 장비(서버)로 중단없이 운영이 가능하다는 단점이 있고 Down Time을 최소화 할 수 있다.

- 두 개 이상의 장비가 동시에 동작하며 부하를 분산 처리 (로드 밸런싱을 주 목적으로 생각하면 됨)
- 장애 발생 시 나머지 장비가 부담을 떠안아 지속적인 운영 가능
- 부하 분산(L4 스위치, SLB) + 1번 또는 2번 서버로 나누어 처리
- 웹 서버뿐만 아니라 DB 서버도 이중화 가능 (예: Oracle RAC 활용)
- 특정 장비 장애 시 다른 장비에서 서비스를 지속 제공 (다운타임 없음)
- 일반적인 부하 분산처리가 목적이라면 주로 active-active로 구성하게 되며, 말 그대로 모든 서버가 요청을 받아 처리할 수 있는 상태가 된다.
- 단점: 충돌 방지를 위한 동기화 필요
3-2. Active-Standby 방식 (= Active-passive)
하나의 서버는 Active 상태로 트래픽을 처리하고, 다른 서버는 Standby 상태로 대기한다. 서버가 장애가 발생하면 Standby 서버를 Active 상태로 전환해야 하므로 이 전환 시간 동안 일시적인 서비스 중단이 발생할 수 있다. 따라서 Down Time이 길어질 수 있는 단점이 있다.

- 운영 서버(Active)가 동작하는 동안 다른 서버(Standby)는 대기 상태
- Active-Standby 구조는 서버를 이중화하여 구성하지만 동시에 부하분산을 통해 모든 기기에서 서비스하는 것이 아니라 장애시에 서비스를 이전하여 운영하는 형태로 구성된 것을 의미한다.
- 메인 서버인 Active 장비에 장애가 발생하면 Standby 장비가 즉시 서비스를 이어받아 운영 (Failover 방식)
- 이러한 과정은 클러스터 하트비트(Heart) 등으로 시스템의 상태를 주기적으로 체크하고 특이사항이 발생하는 경우에 수동으로 2번 서버로 전환하거나, 크리티컬한 장애 발생 시 자동으로 서비스를 전환시키게 된다. 이 때 Down Time이 1-2초 정도 (서버 운영환경에 따라 다름) 발생하게 된다.
둘 다 고가용성을 위한 처리는 맞으나, active-passive의 경우에는 '분산처리'는 아님에 주의하면 된다. 즉, Active-Passive만을 구성하면 고가용성의 요건 중, 서버가 다운되었을 때 서비스가 계속해서 유지되는 부분은 달성할 수 있지만 트래픽이 몰려 서버가 정상적으로 동작하지 못하는 경우에 대해서는 대책이 미흡하게 된다.
3.3 Active-Active 방식 vs Active-Standby 방식


Active-Active: 두 서버가 동시에 트래픽을 처리하므로, 각 서버의 부하가 상대적으로 적고 서버의 사양은 트래픽의 50%만 처리하도록 설계될 수 있다. 예를 들어, 각 서버가 트래픽의 50%를 처리한다면, 각 서버는 일반적으로 75%~100%의 성능을 발휘할 수 있도록 구성된다. 만약 한 서버에 장애가 발생하더라도 다른 서버가 트래픽을 커버할 수 있기 때문에 이렇게 설계하면 두 서버의 합산 비용은 200에 가까운 수준이다.
Active-Standby: 하나의 서버가 트래픽의 100%를 처리해야 하므로 서버의 사양은 150%~200% 정도가 되어야 한다. 장애 발생 시 Standby 서버가 Active로 전환되기 위해서는 최소한 100% 이상의 성능을 가진 서버가 필요하다는 것이고 이 경우, Standby 서버의 유지 비용도 발생하므로 총비용은 250에서 300 사이로 더 비싸다.
결론
가용성 측면에서 Active-Active는 장애 시 즉시 대응이 가능하고, 전환 작업이 필요 없기 때문에 서비스 중단 시간이 짧고 안정성이 높아서 이득이다. 비용 측면에도 Active-Active는 Active-Standby보다 상대적으로 더 낮은 비용으로 고가용성을 유지할 수 있다. 따라서 Active-Active는 고가용성과 비용 절감 측면에서 더 유리한 구조이다.
4. 기타 용어
- HA (High Availability): 고가용성 서비스를 구현하기 위한 다양한 기술들로, 시스템이나 서비스가 지속적으로 동작하도록 보장하는 기술을 포함한다. 예를 들어, 하드웨어, 미들웨어, 데이터베이스 등을 통해 서비스의 가용성을 높인다.
- 디스크 RAID: 데이터의 안정성 및 성능을 높이기 위한 다중화 기술로, 여러 하드 디스크를 결합하여 하나의 논리적 디스크처럼 동작하게 만들어 데이터 손실을 방지하고 성능을 향상시킨다.
- Oracle RAC (Real Application Cluster)는 여러 서버가 동시에 데이터베이스를 처리할 수 있게 하여 고가용성을 제공하며, Veritas CFS (Cluster File System)는 클러스터 환경에서 공유 파일 시스템을 관리하여 데이터의 안정성을 높인다.
참고 자료 & 포스팅 작성에 도움을 주신 블로그
1. https://www.sharedit.co.kr/posts/14239
2. https://blog.naver.com/cometrue0319/222409964758
3. https://www.kcti.co.kr/double-take/casestudy/
4. https://steven-life-1991.tistory.com/168
'서버&네트워크' 카테고리의 다른 글
| [네트워크] DMZ란? (2) | 2025.04.30 |
|---|---|
| [네트워크] IPv4 VS IPv6 비교, 아직도 IPv4가 많이 사용되는 이유 (4) | 2025.03.10 |
| [네트워크] IPv6 0 압축 표기법에 대해 알아보자 (6) | 2025.03.09 |
| 서버 이중화(Server Redundancy)와 분산 시스템(Distributed System)의 차이 (7) | 2025.02.28 |
| [네트워크] 서브넷 마스크, 서브네팅, 옥텟, 사이다 표기법이란? (16) | 2025.02.04 |