
시스템의 한 곳이 무너지면, 전체가 무너집니다.
SPOF를 이해하고 제거하는 것은 고가용성 시스템 설계의 핵심입니다.
SPOF(Single Point of Failure, 단일 장애점) 란, 시스템 구성 요소 중 단 하나라도 고장 나면 전체 시스템이나 서비스가 중단될 수 있는 지점을 의미합니다.
예를 들어, 다리가 하나뿐인 섬을 생각해보세요. 그 다리가 끊기면 섬 전체가 고립됩니다. IT 시스템에서도 마찬가지입니다. 모든 요청이 하나의 서버를 통하는데 그 서버가 다운되면, 서비스 전체가 멈춥니다.
SPOF는 시스템의 안정성, 가용성, 확장성에 직접적인 영향을 미칩니다.
특히 아래와 같은 비즈니스 크리티컬 시스템에서는 SPOF 제거가 필수입니다.
| 시스템 | SPOF 발생 시 영향 |
|---|---|
| 금융 거래 시스템 | 결제 불가, 막대한 금전적 손실 |
| 의료 정보 시스템 | 환자 데이터 접근 불가, 진료 마비 |
| 전자상거래 플랫폼 | 주문·결제 중단, 매출 손실 |
단일 서버
모든 요청이 한 대의 서버에서 처리될 경우, 해당 서버가 고장 나면 서비스가 즉시 중단됩니다.
스토리지 장치
데이터를 단일 스토리지 디바이스에만 저장하면, 디스크 장애로 데이터 유실 및 서비스 중단이 발생할 수 있습니다.
전원 장치
데이터 센터에서 단일 전원 공급 장치(UPS 또는 발전기)에만 의존하면, 전원 문제로 전체 시스템이 다운될 수 있습니다.
단일 네트워크 스위치
하나의 네트워크 스위치가 모든 트래픽을 처리하는 경우, 해당 스위치에 장애가 발생하면 네트워크 전체가 마비됩니다.
단일 인터넷 회선
ISP(인터넷 서비스 제공자)로의 단일 연결만 존재할 경우, 회선 장애 시 외부와의 연결이 완전히 끊어집니다.
단일 데이터베이스
애플리케이션이 하나의 데이터베이스 서버에만 의존하면, 데이터베이스 장애 시 서비스 전체가 중단됩니다.
단일 인증 서비스
중앙 인증 서버가 고장 나면, 모든 인증 요청이 실패하여 사용자들이 서비스를 이용하지 못합니다.
| 원인 | 설명 |
|---|---|
| 이중화 부족 | 중요 장비나 서비스를 이중화하지 않음 |
| 집중화된 설계 | 트래픽 또는 데이터가 하나의 장치나 서버로 집중됨 |
| 모니터링 미비 | 장애를 사전에 감지하거나 대응할 수 있는 시스템이 없음 |
서버를 이중화하여 하나의 서버에 장애가 발생해도 다른 서버가 요청을 처리할 수 있도록 설계합니다.
| 구성 방식 | 설명 |
|---|---|
| Active-Active | 두 서버가 동시에 트래픽을 처리. 한 서버 장애 시 나머지가 전체 트래픽 수용 |
| Active-Passive | 하나의 서버가 대기 상태로 있다가 장애 발생 시 즉시 전환 |
[ Active-Active ] [ Active-Passive ]
서버 A ←→ 서버 B 서버 A (Active)
(동시 처리) 서버 B (Standby) ← 장애 시 전환
RAID, SAN, NAS 등을 활용하여 단일 디스크 장애로 인한 데이터 유실을 방지합니다.
| 기술 | 풀네임 | 역할 |
|---|---|---|
| RAID | Redundant Array of Independent Disks | 여러 디스크를 하나처럼 묶어 데이터 중복 저장 |
| SAN | Storage Area Network | 고속 네트워크로 스토리지를 서버와 분리하여 제공 |
| NAS | Network Attached Storage | 네트워크를 통해 여러 서버가 공유하는 스토리지 |
데이터 센터에 듀얼 UPS(무정전 전원 장치) 와 백업 발전기를 설치하여, 전원 공급 장애 시에도 시스템이 계속 운영될 수 있도록 합니다.
각 네트워크 노드가 여러 경로를 통해 연결되도록 구성하여, 스위치나 라우터 하나가 고장 나도 다른 경로로 트래픽이 자동 우회됩니다.
[ 단일 경로 — SPOF 존재 ]
서버 A ──── 스위치 ──── 서버 B
↑
여기 장애 시 전체 마비
[ 다중 경로 — SPOF 제거 ]
서버 A ──── 스위치 1 ──── 서버 B
╲── 스위치 2 ──╱
(하나 장애 시 다른 경로로 우회)
하나의 ISP에만 의존하지 않고, 두 개 이상의 ISP를 연결하여 회선 장애 시 자동으로 다른 경로로 전환되도록 설정합니다.
서비스 ──── ISP A (주 회선)
╲─── ISP B (백업 회선) ← 장애 시 자동 전환
Primary-Replica 구조로 데이터베이스를 클러스터링하여, Primary 노드 장애 시 Replica가 자동으로 Primary로 승격됩니다.
정상 상태 장애 발생 시
Primary ──→ Replica Primary ❌
(쓰기/읽기) (읽기) Replica → Primary 자동 승격
애플리케이션 서버 앞단에 로드 밸런서(Load Balancer) 를 배치하여, 요청을 여러 서버로 분산합니다. 특정 서버에 장애가 발생하면 해당 서버를 제외하고 나머지 서버로만 트래픽을 보냅니다.
사용자 요청
↓
[ 로드 밸런서 ]
↙ ↓ ↘
서버A 서버B 서버C ← 한 대 장애 시 나머지로 분산
분산 데이터베이스나 분산 파일 시스템을 사용하여, 데이터와 트래픽을 여러 노드에 분산 처리합니다.
| 기술 | 특징 |
|---|---|
| Hadoop | 대용량 데이터를 여러 노드에 분산 저장 및 처리 |
| Cassandra | 노드 추가만으로 수평 확장 가능한 분산 데이터베이스 |
| 레벨 | SPOF 원인 | 방지 전략 |
|---|---|---|
| 하드웨어 | 단일 서버, 단일 디스크, 단일 전원 | 서버 이중화, RAID/SAN/NAS, 듀얼 UPS |
| 네트워크 | 단일 스위치, 단일 ISP | 다중 경로 구성, ISP 다중화 |
| 소프트웨어 | 단일 DB, 단일 인증 서버 | DB 클러스터링, 로드 밸런싱, 분산 시스템 |
SPOF (Single Point of Failure)
└── 하나가 고장 나면 전체가 멈추는 단일 지점
주요 발생 원인
├── 이중화 부족
├── 집중화된 설계
└── 모니터링 미비
방지 전략
├── 하드웨어 → 서버 이중화 (Active-Active / Active-Passive)
│ 스토리지 이중화 (RAID, SAN, NAS)
│ 전원 이중화 (듀얼 UPS, 백업 발전기)
├── 네트워크 → 다중 경로 구성, ISP 다중화
└── 소프트웨어 → DB 클러스터링, 로드 밸런싱, 분산 시스템
💡 핵심 원칙: 중요한 구성 요소는 반드시 이중화하고, 하나가 실패해도 다른 하나가 즉시 대체할 수 있는 구조를 설계하세요.
| 용어 | 설명 |
|---|---|
| 고가용성 (High Availability) | 시스템이 최대한 중단 없이 운영되는 능력 |
| 이중화 (Redundancy) | 장애 대비를 위해 동일한 구성 요소를 여러 개 운영 |
| 페일오버 (Failover) | 장애 발생 시 대기 시스템으로 자동 전환되는 메커니즘 |
| 로드 밸런서 (Load Balancer) | 트래픽을 여러 서버로 분산하는 장치 또는 소프트웨어 |
| 클러스터링 (Clustering) | 여러 서버를 하나의 시스템처럼 묶어 운영하는 구성 |
| Primary-Replica | DB에서 Primary가 쓰기를 담당하고 Replica가 복제·읽기를 담당하는 구조 |
| UPS | Uninterruptible Power Supply, 무정전 전원 장치 |
좋은 포스팅 잘 보고 갑니다. 감사합니다.