Search
Duplicate
📒

[아키텍쳐 & 대규모 시스템 설계] 04-1. DNS, 로드 밸런싱, GSLB

상태
완료
수업
아키텍쳐 & 대규모 시스템 설계
주제
CS
연관 노트
3 more properties
참고

Load Balancing

NOTE
네트워크 트래픽을 여러 서버로 라우팅하는 방식
애플리케이션 수준 특성(IP 주소, HTTP 헤더, 요청 내용)을 검사하여 어디로 보낼지 결정한다.

Load Balancing with DNS

NOTE
DNS는 RR(Round Robin)방식으로 N개의 IP주소를 변환하여 트래픽(부하)을 분산한다!
DNS가 IP를 반환하는 방식(서버의 IP를 바꿔가며 알려주기에 분산이됨)
별도의 소프트웨어나 로드밸런싱 장비를 사용하지 않고 DNS만으로 트래픽을 분산시킨다.
DNS를 이용한 부하분산에는 제약사항이 있다.
대부분의 클라이언트에서는 DNS 서버의 부하를 줄이고 성능 향상을 위해 일정 시간 캐싱하기 때문에 부하분산이 균등하게 되지 않는다.
고가용성으로 적합하지 않다. (서버에 장애가 생기더라도 IP를 주기때문)

Load Balancing with Hardware

NOTE
전용 하드웨어 장비를 통해 부하를 분산한다!
대부분의 하드웨어 LB는 Linux를 실행하는 서버일 뿐이거나, 관리 툴이 포함된 임베디드 리눅스 배포판이다.
가격이 굉장히 비싸지만 좋은 성능을 제공한다.

Load Balancing with Software

NOTE
구매한 하드웨어 서버나, 클라우드 환경에 설치해서 다양한 알고리즘으로 클라이언트의 요청을 서버에 할당한다!
오픈소스 로드 밸런서의 종류
HAProxy
Nginx
KEMP

GSLB(Global Server Load Balancing)

NOTE
DNS서비스의 발전형태, DNS가 네트워크 지연, 성능, 트래픽 유입, 서비스 실패등을 고려하지 않기에 나옴!
대표적인 Solution
Amazon Route 53
Google Cloud Platform Load Balancer
재해복구
DNS → 서버의 상태를 모르므로 실패할 수 있음
GSLB → 서버를 모니터링 하므로, 실패한 서버는 응답에서 제외한다.
로드 밸런싱
DNS → RR방식이라 LB가 제대로되지 않음
GSLB → 서버의 상태를 모니터링하므로 트래픽이 몰리지 않은 서버의 IP를 반환해서 더 정교한 LB가능
위치기반
RR 방식으로 서버에 연결됨
유저 지역기반으로 가까운 위치에 연결