kjp0411 님의 블로그

[MSA] 1편 – SPOF(Single Point Of Failure)와 장애 전파 본문

MSA

[MSA] 1편 – SPOF(Single Point Of Failure)와 장애 전파

kjp0411 2026. 4. 11. 17:18

MSA 환경에서는 서비스 간 호출이 필수적이며, 특히 동기 호출 구조를 사용할 경우 특정 서비스의 장애가 다른 서비스로 전파되는 문제가 발생할 수 있습니다.

 

예를 들어, Hub 서비스가 장애를 일으킬 경우 해당 서비스를 호출하는 주문(Order) 또는 배송(Delivery) 서비스까지 영향을 받아 전체 서비스 장애로 확산될 수 있습니다.

 

이처럼 하나의 장애가 연쇄적으로 전파되는 구조는 장애 전파(Cascade Failure)를 유발하며,

MSA의 핵심 장점인 "장애 격리"를 제대로 활용하지 못한 사례입니다.

 

이러한 문제의 대표적인 원인이 바로 SPOF(Single Point Of Failure)입니다.

SPOF(Single Point Of Failure)란?

 

SPOF는 시스템 내에서 단 하나의 구성 요소 장애가 전체 시스템 장애로 이어질 수 있는 지점을 의미합니다.

 

옆에 있는 그림처럼 MSA 환경에서 특정 서비스 장애가 전체 시스템으로 전파되는 구조를 나타냅니다.

 

Hub Service가 장애를 일으킬 경우, 이를 호출하는 Order Service는 정상적인 응답을 받지 못하게 되고,결과적으로 Gateway까지 타임아웃이 발생하게 됩니다.

 

이러한 장애 전파는 최종적으로 Client 요청 실패로 이어지며, 하나의 서비스 장애가 전체 시스템 장애로 확산되는 Cascade Failure를 유발하게 됩니다.

 

 

 

 

 

 

 

 

SPOF가 왜 문제인가?

SPOF는 단순히 하나의 장애 지점이 존재하는 것을 넘어, 해당 지점의 장애가 전체 시스템 장애로 확산될 수 있다는 점에서 큰 문제가 됩니다.

 

특히 MSA 환경에서는 서비스 간 의존성이 존재하기 때문에, 하나의 서비스 장애가 다른 서비스의 실패로 이어지는
장애 전파(Cascade Failure)를 유발할 수 있습니다.

  • 특정 서비스 장애가 전체 서비스 장애로 확산됨
  • 서비스 응답 지연 및 타임아웃 증가
  • 사용자 요청 실패 및 서비스 신뢰도 저하

MSA 환경에서의 SPOF 예시

MSA 환경에서도 다음과 같은 구성 요소는 SPOF가 될 수 있습니다.

  • 단일 인스턴스로 운영되는 DB
  • Redis 단일 노드 구성
  • API Gateway 단일 장애
  • 특정 핵심 서비스 (예: Hub Service)

이러한 구성 요소는 하나라도 장애가 발생할 경우, 전체 서비스 장애로 이어질 수 있는 위험 요소가 됩니다.

해결 방향

이러한 SPOF 문제를 해결하기 위해서는 단순히 장애를 제거하는 것이 아니라,
장애 상황에서도 서비스가 정상적으로 동작할 수 있도록 설계하는 것이 중요합니다.

이를 위해 다음과 같은 전략이 필요합니다.

  • 서비스 이중화 (Multi Instance)
  • Load Balancing을 통한 트래픽 분산
  • 장애 격리를 위한 Resilience 설계

다음 글에서는 이러한 문제를 해결하기 위한 Resilience 패턴에 대해 자세히 알아보겠습니다.