지난 시간에 이어 GSLB Policy에 대한 설명입니다.
GSLB Policy
5. SLB Connection Load
지난 시간 4번 과정(Geographic Proximity 기반 사이트 선택)에서 사이트를 선택하지 못한 경우, SLB의 Connection Load가 적은 사이트를 선택합니다. SLB Connection Load란 "일정 시간 동안 SLB에 생성되는 새로운 TCP or UDP 연결수"를 의미합니다(average number of new connections per second on the site, over a given number of intervals). 예를 들어, SLB의 주기가 5초로 설정되어 있고, 각 초별로 새로운 연결이 100개, 110개, 120개, 130개, 140개가 생성되었다면 SLB Connection Load는 (100 + 110 + 120 + 130 + 140) / 5초 = 120개가 됩니다.
- 한국과 미국 사이트에 SLB1과 SLB2는 자신의 현재 Connection Load를 주기적으로 GSLB로 보고합니다.
- 사용자가 Local DNS 서버로 DNS Query를 보내면
- Local DNS 서버는 DNS Query를 GSLB로 전달하고 (설명의 편의상 DNS Proxy 과정 생략),
- GSLB는 SLB1과 SLB2의 현재 Connection Load를 기반으로 사이트를 선택합니다. 이를 위해 SLB/GSLB에는 Connection Load에 대한 임계치(Threshold)가 설정되어 있습니다. 한국 사이트 SLB1의 현재 Connection Load는 임계치 = 100을 넘어선 120인 반면 미국 사이트 SLB2는 80입니다. 따라서 GSLB는 임계치를 넘지 않은 미국 사이트 SLB2의 주소(Virtual IP) 2.2.2.2를 DNS Response에 실어 응답합니다.
- DNS Response를 수신한 Local DNS 서버는 그 값을 사용자에게 전달하고,
- 사용자는 SLB2로 HTTP GET 요청을 합니다.
- 이를 수신한 SLB2는 정책(서버 Health/부하 상태 등 고려)에 따라 Server 3, 4 중에 하나를 선택하여 해당 Server로 HTTP GET을 전달합니다.
6. Site Preference
두 사이트의 SLB 모두 Connection Load 임계치를 넘지 않아 5번 과정(SLB Connection Load 기반 사이트 선택)에서 사이트를 선택하지 못한 경우, 운영자가 설정한 Site Preference 값(사이트 선호도)에 의해 사이트를 선택합니다. 운영자는 GSLB에 각 사이트 별(SLB 별)로 Preference 값을 설정하고, GSLB는 항상 그 값이 큰 사이트를 선택합니다.
- 사용자가 Local DNS 서버로 DNS Query를 보내면
- Local DNS 서버는 DNS Query를 GSLB로 전달하고 (설명의 편의상 DNS Proxy 과정 생략),
- GSLB는 운영자가 설정한 Site별 Preference를 참조합니다. 운영자는 한국 사이트에 서버/네트워크 증설로 인해 서비스 제공이 불가능한 시간 동안 미국 사이트의 Preference 값을 255로 크게 설정하였습니다. 따라서 GSLB는 Preference 값이 큰 미국 사이트의 SLB2의 주소(Virtual IP) 2.2.2.2를 DNS Response에 실어 응답합니다.
- DNS Response를 수신한 Local DNS 서버는 그 값을 사용자에게 전달하고,
- 사용자는 SLB2로 HTTP GET 요청을 합니다.
- 이를 수신한 SLB2는 정책(서버 Health/부하 상태 등 고려)에 따라 Server 3, 4 중에 하나를 선택하여 해당 Server로 HTTP GET을 전달합니다.
7. Least Selected
두 사이트 모두 동일 Preference로 설정되어 6번 과정(Site Preference 기반 사이트 선택)에서도 사이트 선택이 안된 경우, 사이트 부하를 균등하게 하기 위한 방법으로 선택이 덜 된 사이트(least selected site)를 선택합니다.
- 사용자가 Local DNS 서버로 DNS Query를 보내면
- Local DNS 서버는 DNS Query를 GSLB로 전달하고 (설명의 편의상 DNS Proxy 과정 생략),
- GSLB는 한국과 미국 사이트의 선택 비율을 참조합니다. 지금까지 전체 사용자 요청에 대해 한국 사이트를 40% 선택, 미국 사이트를 60% 선택하였었습니다. 따라서 GSLB는 사이트 선택이 적었던 한국 사이트 SLB1의 주소(Virtual IP) 1.1.1.1을 DNS Response에 실어 응답합니다.
- DNS Response를 수신한 Local DNS 서버는 그 값을 사용자에게 전달하고,
- 사용자는 SLB1로 HTTP GET 요청을 합니다.
- 이를 수신한 SLB1은 정책(서버 Health/부하 상태 등 고려)에 따라 Server 1, 2 중에 하나를 선택하여 해당 Server로 HTTP GET을 전달합니다.
8. Static Load Balancing
7번과 8번 단계는 둘 중에 하나만 사용이 가능한 최종 선택 단계입니다. 8번 과정은 Round-Robin 혹은 사이트에 가중치를 적용한 Weighted Round-Robin 방식으로 사이트를 선택합니다. Round-Robin의 경우 한국 -> 미국 -> 한국 -> 미국 ... 순으로 번갈아 가며 사이트를 선택하고, Weighted Round-Robin 방식의 경우 한국과 미국의 Weight 값 비율이 2:1로 되어 있다면 한국 -> 한국 -> 미국 -> 한국 -> 한국 -> 미국 ... 순으로 한국 사이트를 2배 더 선택하도록 하는 방식입니다. (예. 한국 사이트에 서버가 더 많음)
- 사용자가 Local DNS 서버로 DNS Query를 보내면
- Local DNS 서버는 DNS Query를 GSLB로 전달하고 (설명의 편의상 DNS Proxy 과정 생략),
- GSLB는 Round-Robin 혹은 Weighted Round-Robin 방식으로 사이트를 선택합니다. 이 예에서는 GSLB가 미국 사이트를 선택하여 SLB2의 주소(Virtual IP) 2.2.2.2를 DNS Response에 실어 응답합니다.
- DNS Response를 수신한 Local DNS 서버는 그 값을 사용자에게 전달하고,
- 사용자는 SLB2로 HTTP GET 요청을 합니다.
- 이를 수신한 SLB2는 정책(서버 Health/부하 상태 등 고려)에 따라 Server 3, 4 중에 하나를 선택하여 해당 Server로 HTTP GET을 전달합니다.
Summary
아래 표는 "GSLB + SLB 방식", "GSLB only 방식" 그리고 "DNS 방식"에 대한 비교 테이블입니다. GSLB + SLB 방식의 경우 지금까지 설명한 8가지 Policy를 모두 지원하지만, GSLB only 방식의 경우 사이트에 SLB가 없어 사이트 부하나 Network Proximity를 알 수 없으며, 마지막으로 DNS 방식의 경우 Round-Robin 기반의 Static Load Balancing 밖에 지원하지 못합니다.
지금까지 총 4편에 걸쳐 GSLB에 대해 알아 보았습니다.
GSLB 솔루션의 장점은 아래와 같이 크게 3가지로 요약될 수 있으며
(1) 사이트 이중화
(2) 사이트 부하 분산
(3) 사용자에게 최적의 사이트(응답 속도가 빠르거나 가깝거나) 제공
GSLB 솔루션은 전세계 고객을 대상으로 서비스를 제공하는 글로벌 기업, 인터넷 포털/인터넷 컨텐츠 사업자(CSP), 클라우드 서비스 사업자, 그리고 CDN 서비스 사업자 등에서 적용할 수 있습니다.
좋은 글 감사합니다. 많은 도움이 되었습니다.
혹 고객이 DNS환경을 쓸수 없다면 GSLB는 무용 지물인가요??
고객 환경이 DNS서버 설정을 못하는 고객이 많습니다... 혹 대안은 없을까요???
좋은 글 감사드립니다.