시스템 이중화 (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, HAProxyAWS Elastic IP, Azure Load Balancer
DB 이중화MySQL MHA, Patroni (PostgreSQL)Amazon RDS Multi-AZ, Aurora
스토리지 이중화Ceph, GlusterFSAWS S3, EBS Snapshot

4. 실제 적용 예시

결제 데이터베이스 Multi-AZ 구성

  1. 중요도가 높은 결제 DB는 AWS RDS를 사용하여 가용 영역(AZ) A와 B에 각각 Active, Standby 형태로 배치합니다.
  2. 평상시에는 AZ A의 마스터 DB가 트래픽을 처리하며, AZ B의 스탠바이 DB로 데이터를 동기적으로 복제(Sync)합니다.
  3. AZ A에 물리적인 장애가 발생하면, AWS가 이를 감지하고 수 분 내에 AZ B의 스탠바이 DB를 마스터로 자동 승격(Failover)시켜 01_장애대응_Failover를 수행합니다.