티스토리 뷰

 

 

서버가 단 하나만 존재할 때 

수천만명의 사람들이 서버에 동시 접속하게 되면 어떻게 될까 ?

 

하나의 서버는 부하를 감당하지 못할것이다. 이를 해결하기 위한 방식에는

장비를 업그레이드하는 Scale-up 방식장비를 여러개두는 Scale-out 방식이 있다.

 

그런데 서버 1 서버 2 로 나누어 놓았을 때(Scale-out방식)

서버1에 99명의 사용자가 접속하고 서버2에는 1명의 사용자가 접속한다면 곤란한 상황이 다시 발생하게 된다.

이를 방지하기 위해 서버를 분산하고 가해지는 부하를 적절하게 분산하는 작업이 필요하다.

개발자가 의도한대로 부하가 서버마다 골고루 분산되어야 각 서버가 적절하게 부하를 담당할 수 있을 것이다.

 

이렇게 두개 이상의 컴퓨터 자원에 작업을 나누는 것을 로드밸런싱(load balancing)이라고 한다.

그리고 작업을 담당하는 장비를 로드밸런서(load balancer)라고 부른다.

 

 

 

 

로드밸런서(load balancer)

는 OSI 7계층을 기준으로 어떻게 부하를 분산하는지에 따라 종류가 나뉜다. 

2계층을 기준으로 부하를 분산한다면 L2, 3계층으로 부하를 분산한다면 L3방식이 된다.

상위계층으로 갈수록 섬세한 부하 분산이 가능하지만 비용이 올라간다. 하위계층으로 갈수록 간단한 부하분산이 가능해지며 가격이 저렴해진다.

 

 

출처 : https://strangeronpaleblue.com/602/ , 텀즈

 

L2 Data link 계층을 사용, Mac주소 기반 부하 분산  
L3 Network 계층을 사용, IP주소 기반 부하 분산  
L4 Transport 계층을 사용, Port 기반 부하 분산 TCP, UDP
L7 Application 계층을 사용, 요청(URL) 기반 부하 분산 HTTP, HTTPS 등

 


 

로드밸런서는 3가지의 주요 기능을 통해 로드밸런싱을 진행한다.

 

Network Address Translation(NAT)

Private IP를 Public IP로 바꾼다.

Tunneling

데이터를 캡슐화하여 연결된 노드만 캡슐을 해제할 수 있게 만든다.

Dynamic Source Routing protocol(DSR)

요청에 대한 응답을 할 때 로드밸런서가 아닌 클라이언트의 IP로 응답한다.

 

 

 

로드밸런서가 동작하는 방법

 

기초적인 방법인 Bridge/Transparent Mode에서는 사용자가 서버에 서비스를 요청할 때 중간에서 로드밸런서가 NAT를 통해 IP/MAC주소를 변조한다. 즉 요청과 응답이 모두 Load Balancer를 경유하게 된다.

 

요청

1. 유저가 로드밸런서로 서비스를 요청한다.

2. 로드밸런서는 NAT를 적용하여 IP/MAC주소를 변조하여 실제 서버로 트래픽을 요청한다.

응답

1. 서버가 로드밸런서로 받은 요청에 대한 응답을 전달한다.

2. 로드밸런서는 NAT를 적용하여 출발지 IP주소를 로드밸런서의 가상 IP주소로 변조하여 유저에게 전달한다.

 

 

 

그렇다면 로드밸런서는 서버를 어떻게 선택하는 것일까?

 

순서대로 균등하게 분배 / 서버의 가중치에 따라 분배 / 서버마다 연결된 커넥션 수에 따른 분배 /

요청응답시간이 가장 빠른 서버로 분배

 

Round Robin

요청이 들어오는 대로 서버마다 균등하게 요청을 분배한다. 가장 단순한 분배 방식이다.

 

Weighted Round Robin Scheduling

Round Robin방식으로 분배하지만 서버의 가중치에 따라 요청을 더 분배하기도, 덜 분배하기도 한다. 서버 가중치는 사용자가 지정할 수 있고 동적으로 조정되기도 한다.

 

Least Connection

서버마다 연결된 커넥션이 몇개인지 체크하여 커넥션이 가장 적은 서버로 요청을 분배하는 방식이다.

 

Weighted Least Connections

Least Connection방식으로 분배하지만 서버 가중치에 따라 요청을 더 분배하기도, 덜 분배하기도 한다. 서버 가중치는 사용자가 지정할 수 있고 동적으로 조정되기도 한다. 서버 풀에 존재하는 서버들의 사양이 일관적이지 않고 다양한 경우 이 방법이 효과적이다.

 

Fastest Response Time

서버가 요청에 대해 응답하는 시간을 체크하여 가장 빠른 서버로 요청을 분배하는 방식이다.

 

Source Hash Scheduling

사용자의 IP를 해싱한 후 그 결과에 따라 서버로 요청을 분배한다. 사용자의 IP는 고정되어 있기 때문에 항상 같은 서버로 연결된다는 보장을 받을 수 있다.

 

 

 

 

 

 

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함