1071. GSLB 지리적 DNS 라우팅 - Global Server Load Balancing 글로벌 로드밸런싱 재해 복구 헬스 체크 RTT 라우팅 DNS 기반 부하 분산
핵심 인사이트: (1070번 CDN 복습) 내가 한국에서 구글을 칠 때 미국 서버가 아니라 한국 구글 서버로 접속된다고 했다. 근데 DNS 서버가 한국에 있는 유저인지 미국에 있는 유저인지 어떻게 알아채고 가장 가까운 IP 주소를 알려줄까? "야! DNS 서버를 그냥 주소만 뱉는 멍청한 전화번호부로 쓰지 마! 유저가
google.comIP를 물어보는 순간, DNS 서버가 0.1초 만에 유저의 위치(IP)를 역추적하고, 전 세계 100개 구글 서버들의 현재 트래픽 부하량(헬스 체크)을 싹 다 검사해! 그래서 한국 서버가 널널하면 한국 IP를 뱉어주고, 한국 서버가 터졌으면 일본 서버 IP를 뱉어줘서 알아서 분산 접속되게 만들어!" 로드밸런서(L4)를 넘어선 우주적 스케일의 길잡이 뇌, GSLB다.
Ⅰ. 기존 로드밸런서(L4/L7)와 DNS의 한계
- L4/L7 로드밸런서 (481번): 데이터센터 '안'에 있는 서버 10대끼리 트래픽을 나눠주는 장비입니다. 서버가 다 터지거나 정전(Blackout)이 나면 속수무책입니다.
- 기존 DNS (Round Robin): 유저가 물어보면 한국 IP ➜ 미국 IP ➜ 일본 IP를 그냥 순서대로 기계처럼 돌아가며 던져줍니다. 일본 서버가 불타서 죽어있어도 멍청하게 일본 IP를 던져주어 접속 에러(Time-out) 대참사를 만듭니다.
Ⅱ. GSLB (Global Server Load Balancing)의 개념 🌟
- 개념: 전 세계에 흩어진 데이터센터(서버)들 중에서, **접속하려는 사용자와 가장 물리적 거리가 가깝고, 서버의 현재 건강 상태(Health)가 쌩쌩한 최적의 서버 IP 1개를 골라서 DNS 응답으로 던져주는 '지능형 글로벌 DNS 분산 아키텍처'**입니다. (DNS와 L4 로드밸런서의 궁극의 짬뽕)
Ⅲ. GSLB가 최적의 서버를 고르는 3대 알고리즘 🌟 핵심 기출 🌟
1. 헬스 체크 (Health Check) - "너 살아있냐?"
- 가장 위대한 강점입니다. GSLB 서버는 전 세계 구글 서버들에게 1초마다
Ping이나HTTP GET을 때려봅니다. - "어? 도쿄 서버 대답이 없네? 도쿄 지진 났구나!"
- 즉시 도쿄 서버 IP를 뱉어내는 것을 중단하고, 모든 일본 유저들에게 서울 서버 IP를 던져주어 글로벌 재해 복구(Disaster Recovery)와 무중단 서비스를 완벽히 실현합니다.
2. 지리적(지리적 라우팅, Geo-Location) / RTT 기반 🌟
유저가 가장 빨리 도착할 수 있는 곳을 찾아냅니다.
- Geo-Location: 유저의 로컬 DNS 서버 IP를 조회해서 "아 얘 한국 KT 통신사 쓰네? 그럼 무조건 서울 데이터센터 IP 줘라!" (가장 기본)
- RTT (Round Trip Time): 만약 한국 서버와 일본 서버 거리가 비슷하다면? GSLB가 핑(Ping) 왕복 시간(RTT)을 실시간으로 계산해서, 지금 당장 밀리초 단위로 더 빠른 길을 찾아 그 서버 IP를 던져줍니다.
3. 트래픽 로드(Load) 동적 분산
- 서울 서버가 살아있긴 한데 CPU 사용률이 95%를 쳤습니다.
- GSLB가 이를 감지하고 "서울 서버 뻗기 직전이네! 한국 유저들 절반은 당분간 오사카 서버로 보내버려!" 라며 서버 자원 사용량까지 파악하여 전 세계 트래픽의 하중을 분산(Load Balancing)시킵니다.
Ⅳ. GSLB의 한계와 CDN(1070번)과의 공생
- TTL의 저주: DNS의 특성상 내 폰이나 통신사 캐시에 주소(IP)가 한 번 저장되면 최소 몇 분 동안(TTL) 안 바뀝니다. 그래서 GSLB가 "도쿄 죽었으니 서울로 가!"라고 바꿔줘도, 내 폰은 5분 동안 계속 죽은 도쿄 서버로 들이박으며 에러를 냅니다. 이를 막기 위해 GSLB는 TTL 값을 10초(매우 짧게)로 극단적으로 낮춰 세팅합니다.
- 결론: GSLB(길라잡이)가 1차로 트래픽을 찢어주고, 1070번 CDN 엣지 노드(최종 목적지)가 그 트래픽을 받아 캐시로 소화해 내는 것이 현대 글로벌 웹서비스의 교과서 아키텍처입니다.
📢 섹션 요약 비유: 기존 DNS 라우팅은 114 전화 안내원에게 짜장면집 번호를 물어보면 **"서울점, 부산점, 광주점 번호를 순서대로 하나씩 불러주는 멍청한 로봇"**입니다. 내가 서울에 살아도 부산점 번호를 줄 수 있고, 심지어 부산점이 파산해서 문을 닫아도 멍청하게 부산점 번호를 알려주어 허탕을 치게 만듭니다. **GSLB(지능형 글로벌 DNS)**는 전 세계 지점의 CCTV를 다 보고 있는 **'천재 콜센터 매니저'**입니다. 내가 전화를 걸면 매니저는 발신자 번호(IP)를 보고 "아, 이 손님 강남에 있네!" 파악합니다. 그리고 강남점 CCTV(헬스 체크)를 보니 불이 나서 영업을 안 합니다. 그럼 0.1초 만에 두 번째로 가깝고 짜장면 솥단지가 비어있는(CPU 부하가 적은) 서초점의 전화번호(IP)를 내게 딱 뱉어줍니다. 지리적 거리, 서버의 생존 여부, 현재 바쁜 정도를 한 방에 꿰뚫어 보고 완벽한 분점 주소를 알려주는 전 지구적 내비게이션 시스템입니다.