각 PoP는 평면의 한 셀을 소유합니다
보로노이 테셀레이션
평면 위에 N개의 점(PoP: 존재 지점)을 배치합니다. 평면의 모든 점이 가장 가까운 PoP에 할당되도록 영역 경계를 그립니다. 그 결과는 보로노이 다이어그램입니다: 평면은 PoP당 하나씩 N개의 셀로 분할되며, 각 셀에는 해당 PoP보다 다른 어떤 PoP에도 더 가까운 모든 점이 포함됩니다.
CDN 기하학: 모든 사용자의 요청은 가장 가까운 PoP로 라우팅됩니다. 각 PoP는 지리적 평면의 한 셀을 서비스합니다. 셀 경계는 이웃하는 PoP를 잇는 선들의 수직 이등분선입니다.
기하학적 해석:
- PoP를 추가하면 이웃한 셀의 크기가 줄어듭니다(새로운 셀이 생성됨)
- PoP를 제거하면 해당 셀이 이웃한 셀들로 재분배됩니다(이웃한 곳에서의 용량 급증)
- 셀 경계 근처에 있는 사용자는 부하 균형이 변동함에 따라 PoP 간을 오갈 수 있습니다
- 하나의 PoP가 장애를 겪으면 장애 발생 동안 모든 이웃한 PoP의 유효 셀이 커집니다
운영적 결과: PoP가 장애를 겪으면 그 부하가 사라지는 것이 아니라 이웃한 PoP로 이동합니다. 이웃한 PoP가 정상 셀 크기만 고려하여 설계되었다면, 이 급증으로 인해 다음으로 이웃한 PoP도 장애를 겪게 됩니다(연쇄적 PoP 장애). 성숙한 CDN 제공업체는 이웃한 PoP 장애 시의 급증을 고려하여 각 PoP의 용량을 설계합니다.
속임수를 쓸 수 없는 삼각 부등식
물리학이 하한선을 설정합니다
빛은 진공에서 초당 약 300,000km를 이동합니다. 굴절률 때문에 광섬유에서는 초당 약 200,000km를 이동합니다. 즉:
- ~1,000km의 광섬유 = ~5ms 왕복 = ~10ms 왕복
- 미국 동서 해안 간(~5,000km) = ~50ms RTT 최소값
- 미국에서 유럽으로(~8,000km) = ~80ms RTT 최소값
- 대륙 반대편(반구) = ~200ms RTT 최소값
이것은 하한선입니다. 실제 RTT는 항상 더 큽니다(라우터 홉, 스위칭, 큐잉, 혼잡). 어떤 애플리케이션도 물리 법칙이 허용하는 속도보다 빠를 수 없습니다.
삼각 부등식
세 개의 노드 A, B, C에 대해 삼각 부등식은 d(A,C) <= d(A,B) + d(B,C)라고 말합니다: 직접 경로는 간접 경로보다 짧거나(또는 같거나) 같습니다.
네트워크 관점: 서비스가 A -> B -> C로 라우팅하는 경우 A -> C로 직접 라우팅하는 경우보다 지연 시간은 두 구간의 지연 시간 합 이상입니다. B에서의 처리로 인해 더 길어지는 경우가 많습니다.
아키텍처적 해석: 모든 간접 참조(프록시, 로드 밸런서, CDN 홉)는 사용자의 인지 지연 시간에 최소 한 번의 왕복 구간을 추가합니다. CDN의 이점은 총 홉 수가 증가함에도 불구하고 사용자의 구간의 길이를 줄여주는 것(오리진보다 가까운 PoP)에서 비롯됩니다.
멀티 리전 함정: 리전 A에서 읽기하지만 리전 B에 쓰는 서비스는 모든 쓰기 작업에서 A에서 B로의 지연 시간을 발생시킵니다. A와 B가 100ms 떨어져 있다면, 모든 쓰기 작업은 최소 100ms 이상 걸립니다. 스트레치 데이터베이스는 매번 이 하한선을 지불합니다.
하한선 지불
어떤 서비스가 두 개의 리전, 즉 미국 동부(us-east-1)와 유럽 서부(eu-west-1)에서 실행됩니다. 두 리전은 대략 5,500km 떨어져 있습니다. 이 서비스에는 미국 동부에 프라이머리 데이터베이스가 있습니다. 유럽 사용자의 요청은 유럽 서부 백엔드에서 처리되지만, 모든 쓰기 작업은 미국 동부 프라이머리로 다시 호출해야 합니다.
지리적 용량 설계
종합
이제 보로노이 셀을 PoP(접속 지점) 수용 범위로 해석하고, 광속(빛의 속도) 지연 바닥을 계산하며, 프록시 계층에서 대기열 곡선을 적용할 수 있습니다.
세 가지를 모두 적용해 보세요.
한 팀이 3개 대륙에 분포된 사용자를 위한 서비스의 CDN 커버리지를 계획하고 있습니다: 북미(사용자의 60%), 유럽(30%), 아시아(10%). 이 팀은 6개의 PoP(접속 지점)에 대한 예산을 가지고 있습니다. 각 PoP는 큐잉 곡선의 무릎(knee)을 넘지 않으면서 70%의 사용률로 안정적인 셀을 서비스할 수 있습니다.
동반 코스 마무리
동반 코스 마무리
기하학 동반 레슨 5개를 모두 완료했습니다:
- 프록시 & 오리진: 방향 그래프, 홉 수, 팬인 / 팬아웃, 간접 참조
- 무상태 수평 확장: 리틀의 법칙을 면적으로, 대기열 곡선과 그 무릎 지점
- 인그레스 & 에그레스 분리: 이분 구조, 절단 꼭짓점 제거, 분할 내성
- 장애 모드 & 블래스트 래디우스: 사이중심성, 최소 절단, 지름
- 관측 가능성 & 용량 (이번 레슨): 보로노이 PoP 셀, 지연 시간 삼각형 하한선, 지리적 용량 설계
핵심 줄거리: 분산 시스템에는 기하학적 구조가 있습니다. 모든 아키텍처는 그래프입니다. 모든 지연 시간 하한선은 삼각 부등식입니다. 모든 용량 결정은 곡선과 그 무릎 지점입니다. 기하학을 보게 되면, 운영적 결정이 그로부터 자연스럽게 도출됩니다.
5개의 메인 레슨(cs_distsys_*)과 결합하면, 웹 스케일 분산 시스템에 대한 작동하는 정신 모델과 이를 추론하기 위한 그래프 이론적 규율을 갖추게 됩니다.
잘 하셨습니다.