트래픽이 도착하기 전에 식별되는 병목 노드
사이중심성 (Betweenness Centrality)
그래프의 모든 노드 쌍 사이에 그들을 연결하는 최단 경로가 존재합니다. 노드 N의 사이중심성은 모든 최단 경로 중 N을 통과하는 경로의 비율입니다.
높은 사이중심성을 가진 노드는 많은 다른 노드 쌍 사이의 경로 위에 위치합니다. 이 노드가 느려지면 많은 플로우가 느려집니다. 이 노드가 실패하면 많은 플로우가 끊어집니다.
아키텍처적 해석: 높은 사이중심성을 가진 노드는 모든 아키텍처 리뷰에서 특히 주의 깊게 살펴봐야 할 대상입니다. 이들은 병목, 단일 장애점(SPOF), 용량 핵심 구성 요소를 모두 겸합니다. 이러한 노드는 보통 다음과 같은 특징을 가집니다:
- DNS 제공자 (모든 클라이언트와 모든 서비스 사이)
- 인그레스 프록시 (모든 클라이언트와 모든 백엔드 사이)
- 데이터베이스 프라이머리 (모든 백엔드와 모든 읽기 사이)
- 인증 서비스 (모든 사용자와 모든 권한 있는 작업 사이)
측정 없이 감지하기: 그래프 위상만으로도 높은 betweenness(중개성)를 가진 노드를 식별할 수 있습니다. 트래픽 데이터가 필요하지 않으며, 아키텍처 다이어그램만 있으면 됩니다. 많은 노드 쌍 사이에 위치하는 노드는 구조적으로 중요합니다.
운영적 결과: 높은 betweenness를 가진 노드는 (1) 용량 여유, (2) 중복성, (3) 관찰 가능성, (4) 장애 대응 플레이북에 대해 불균형한 수준의 투자가 필요합니다.
가장 작은 절단은 가장 작은 조각을 분리합니다
평이한 언어로 설명한 최소 절단 정리
그래프에서 두 노드 사이의 최소 컷(min-cut) = 그들을 분리하기 위해 제거해야 하는 가장 적은 수의 엣지(또는 노드)입니다.
운영적 해석: 최소 컷은 최악의 경우의 영향 범위(blast radius)를 상한으로 제한합니다. '클라이언트'와 '데이터베이스' 사이의 최소 컷이 1개의 엣지(단일 프록시)라면, 그 엣지가 손실되면 모든 클라이언트가 데이터베이스와 연결이 끊깁니다. 최소 컷이 5라면, 완전히 연결이 끊어지려면 5개의 구성 요소를 동시에 잃어야 합니다. 불운한 상황이지만, 그 영향은 제한되어 있습니다.
영향 범위를 고려한 설계: 모든 중요한 경계에서 최소 컷을 증가시킵니다. 여러 개의 프록시; 여러 개의 캐시 노드; 데이터센터 간 여러 개의 네트워크 경로. 각 추가 요소는 최소 컷을 1씩 높입니다.
그래프 관점에서의 벌크헤드(Bulkhead) 패턴: 리소스를 서로 최소 컷을 공유하지 않는 별도의 서브그래프로 분할합니다. 한 서브그래프 내부의 장애는 엣지가 존재하지 않으므로 다른 서브그래프로 전파될 수 없습니다.
지름(Diameter)은 장애 전파 거리를 설정합니다
그래프 지름(Graph diameter) = 임의의 두 노드 사이의 최단 경로 중 가장 긴 길이를 의미합니다.
장애 전파: 노드가 장애를 일으키고 재시도가 역류할 때, 지름 거리만큼의 상류 노드까지 영향을 미칩니다. 지름이 3인 시스템(클라이언트 -> 프록시 -> 백엔드 -> DB)에서는 DB 장애가 재시도 폭풍(retry storm)으로 인해 3개의 상류 레이어에 영향을 줍니다.
영향: 더 짧은 지름 = 더 빠른 장애 격리이지만, 동시에 노드 집중도 높아집니다. 각 설계 방식에는 트레이드오프가 있습니다.
실제 아키텍처의 최소 절단(Min-Cut) 계산
아키텍처 구성: DNS 1개, CDN 1개, 리버스 프록시 3개, 백엔드 리플리카 12개, DB 프라이머리 1개.
그래프 메트릭을 통한 장애 모드 감사
종합
이제 높은 betweenness(중개성)를 가진 노드를 식별하고, 모든 경계에서 min-cut(최소 절단)을 계산하며, 지름(diameter)을 통해 장애 전파 거리를 추정할 수 있습니다.
세 가지 모두 적용해 보세요.
시스템 구성: 50개의 고객 엔드포인트 -> 1개의 DNS -> 2개의 CDN POP -> 4개의 리버스 프록시 -> 16개의 백엔드 리플리카 -> { DB 클러스터 (1개 프라이머리 + 2개 스탠바이), Redis 클러스터 (5개 노드), 3개의 외부 API }.
보조 노트
보조 노트
이 기하학(geometric) 레슨은 실패 모드 및 폭발 반경(Failure Modes & Blast Radius) 메인 레슨을 그래프 지표(중개성, 최소 절단, 지름)를 통해 재구성합니다.
마지막 보조 레슨인 geometry_of_observability_and_capacity는 CDN PoP(접속 지점)의 수취 범위에 대한 보로이 셀(Voronoi cells), 지연 시간 삼각형의 광속 하한선, 그리고 프록시 계층에서 재검토되는 대기열 곡선을 다룹니다.
잘 하셨습니다.