서비스로 가는데 부하를 분산하기 위해서 Load Balancer를 사용하는 것이 일반적이다.
대기업에서는 Load Balancer를 한 대만 사용하지는 않을 것이고, 여러 대를 사용할 것이다.
그렇다면 로드밸런서로 가는 트래픽을 어떻게 분산할 것인가? ‘메타’ 로드 밸런서 같은 것이 필요할 듯하다.
찾아보니 실제로는 GSLB(Global Server Load Balancing) 기술을 이용해서 분산한다고 한다.
DNS 방식의 로드 밸런싱
dns 서버가 라운드 로빈 방식으로 시간에 따라 다른 ip 주소를 알려주는 방식이다.
dns 레코드를 여러 개 추가하게 되면 dns 방식의 로드 밸런싱이 가능하게 된다.
한번 dns 레코드를 요청하고 캐시가 만료되어 다시 요청할 때에는 dns 서버로부터 (아마) 다른 ip 주소를 안내받게 되어 부하를 분산할 수 있다.
단점은 안내받은 서버가 살아있는지 헬스 체크가 없다는 점이다.
GSLB
DNS 방식의 로드밸런싱과 다르게 다음과 같은 장점이 존재한다.
- 재해 복구: 등록된 호스트에 대해 주기적으로 헬스 체크를 보내고, 헬스 체크가 실패한 서버에 대해서는 dns 응답에서 제외하게 된다. 사용자의 서비스 실패 확률을 낮춘다.
- Latency: 지역별로 서버에 대한 Latency 정보를 가지고 있기 때문에 해당 유저로부터 Latency가 낮은 서버 ip를 반환해 준다.
GSLB를 이용, load balancer들을 dns에 등록한다면 로드 밸런서의 로드 밸런싱도 가능할 것이다.
'infra' 카테고리의 다른 글
[TIL] mig 해제하기 (0) | 2023.12.14 |
---|---|
[TIL] js pm2 패키지 (0) | 2023.11.05 |
무중단 배포 프로세스 (0) | 2023.09.17 |
컨테이너 보안 (0) | 2023.07.14 |
[TIL] DNS 서버 Round Robin (0) | 2023.03.30 |