시스템 이중화 (High Availability)
개요
시스템을 구성하는 주요 컴포넌트(서버, 네트워크, DB 등)를 단일 장애점(SPOF, Single Point of Failure)이 없도록 두 개 이상으로 구성하여 가용성을 극대화하는 전략입니다.
1. 주요 아키텍처 패턴
1.1. Active-Active
모든 노드가 동시에 서비스를 제공하며 트래픽을 분산 처리합니다.
- 장점: 리소스 활용도가 높고 병목 현상이 적음.
- 단점: 상태(State) 공유 및 데이터 정합성 관리가 복잡함.
1.2. Active-Passive (Standby)
주 노드(Active)만 서비스를 처리하고, 부 노드(Passive)는 대기 상태를 유지합니다. 주 노드 장애 시 부 노드가 활성화됩니다.
- 장점: 데이터 동기화와 아키텍처가 상대적으로 단순함.
- 단점: 대기 중인 서버의 리소스가 평상시 낭비됨.
2. 네트워크 계층 관점 (OSI 7 Layer)
- L2 (데이터 링크 계층): 스위치 및 포트 채널을 이중화하여 물리적인 케이블이나 네트워크 장비 장애에 대비합니다.
- L3 (네트워크 계층): VRRP (Virtual Router Redundancy Protocol)를 사용하여 가상 IP(VIP)를 기반으로 라우터나 서버를 이중화합니다.
- L7 (응용 계층): 애플리케이션 레벨에서 세션 클러스터링을 구성하여 특정 서버 장애 시에도 사용자의 로그인 상태 등을 유지합니다.
3. 구현 도구 및 서비스
| 구분 | 오픈소스 (직접 구축) | 상용 / 클라우드 서비스 |
|---|---|---|
| 네트워크/VIP 이중화 | Keepalived, HAProxy | AWS Elastic IP, Azure Load Balancer |
| DB 이중화 | MySQL MHA, Patroni (PostgreSQL) | Amazon RDS Multi-AZ, Aurora |
| 스토리지 이중화 | Ceph, GlusterFS | AWS S3, EBS Snapshot |
4. 실제 적용 예시
결제 데이터베이스 Multi-AZ 구성
- 중요도가 높은 결제 DB는 AWS RDS를 사용하여 가용 영역(AZ) A와 B에 각각 Active, Standby 형태로 배치합니다.
- 평상시에는 AZ A의 마스터 DB가 트래픽을 처리하며, AZ B의 스탠바이 DB로 데이터를 동기적으로 복제(Sync)합니다.
- AZ A에 물리적인 장애가 발생하면, AWS가 이를 감지하고 수 분 내에 AZ B의 스탠바이 DB를 마스터로 자동 승격(Failover)시켜 01_장애대응_Failover를 수행합니다.