SPOF
SPOF(Single Point of Failure)는 해당 구성 요소 하나가 실패했을 때 전체 시스템 장애로 이어지는 단일 장애 지점입니다.
핵심 개념
- 특정 서버, DB, 네트워크 장비, 외부 API가 단독으로 전체 흐름을 책임질 때 발생합니다.
- SPOF가 있으면 그 구성 요소의 장애가 곧 서비스 전체 장애로 확대됩니다.
- 고가용성을 달성하려면 SPOF를 식별하고 이중화, 장애 조치, 모니터링을 적용해야 합니다.
예시
Client -> API Server 1대 -> DB
API Server가 1대뿐이면 서버 장애, OOM, 네트워크 장애가 전체 서비스 중단으로 이어집니다.
개선 방법
- 서버를 여러 대로 이중화하고 로드 밸런싱을 적용합니다.
- DB는 Replica와 Failover 구성을 둡니다.
- 세션은 외부 저장소나 토큰 기반 인증으로 분리합니다.
- 로그와 메트릭을 중앙에서 수집합니다.
- 배포와 롤백 절차를 자동화합니다.
서버 이중화 시 점검할 점
- 단일 서버의
synchronized나 로컬 락이 분산 환경에서도 안전한지 확인합니다. - 세션 기반 인증이면 세션 불일치가 발생하지 않는지 확인합니다.
- 로드 밸런싱 알고리즘과 헬스체크를 점검합니다.
- 로그, 메트릭, 트레이싱을 통합해서 장애 지점을 찾을 수 있게 합니다.
핵심 정리
SPOF는 하나의 구성 요소 장애가 전체 장애로 이어지는 지점입니다.
고가용성을 위해서는 SPOF를 없애거나 장애 발생 시 빠르게 다른 구성 요소가 대체하도록 설계해야 합니다.