- 클라이언트가 한 두명인 경우에는 Server는 여유롭게 사용자가 원하는 결과를 응답 해줄 수 있다. 물론, 모든 사람들의 응답을 해주려고 노력하는데 결국 지치게 되어 있다.
- 이러한 문제를 해결하기 위해
1. Scale-up : Server가 더 빠르게 동작하기 위해 하드웨어 성능을 올린다.
- Scale-out : 하나의 Server보다는 여러 대의 Server가 나눠서 일을 한다.
- Scale-out의 장점
1. 하드웨어 향상하는 비용보다 서버 한대 추가 비용이 더 적다.
- 여러대의 Server 덕분에 무중단 서비스를 제공할 수 있다.
- 따라서, 여러대의 Server에게 균등하게 Traffic을 분산시켜주는 역할을 하는 것이 Load Balancer이다.
- 하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산처리하여 서버의 로드율 증가, 부하량, 속도저하 등을 고려하여 적절히 분산처리하여 해결 해주는 서비스이다.
- NAT(Network Address Translation) : 사설 IP주소를 공인 IP주소로 바꾸는데 사용하는 통신망의 주소 변조기이다.
- Tunneling : 인터넷상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념, 데이터를 캡슐화해서 연결된 상호 간에만 갭슐화된 패킷을 구별해 캡슐을 해제할 수 있다.
- DSR(Dynamic Source Routing protocol) : 로드 밸런서 사용 시 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 스위치의 IP주소가 아닌 클라이언트의 IP주소로 전달해서 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념이다.
- L2 : Mac주소를 바탕으로 Load Balancing한다.
- L3 : IP주소를 바탕으로 Load Balancing 한다.
- L4 : Transport Layer(IP와 Port) level에서 Load Balancing을 한다.(TCP, UDP)
- L7 : Application Layer(사용자의 Request) Level에서 Load Balancing을 한다.(HTTP, GTTPS, FTP)
- 로드 밸런서 서버 선택
1. Round Robin : 단순히 Round Robin으로 분산하는 방식
- Least Connections : 연결개수 가장 적은 서버를 선택하는 방식, 트래픽으로 인해 세션이 길어지는 경우 권장
- Source : 사용자의 IP를 Hashing하여 분배하는 방식, 사용자는 항상 같은 서버로 연결되는 것을 보장
- 장애가 났을 경우
1. Load balancer를 이중화하여 장애를 대비
- 이중화된 Load balancer들은 서로 Health Check한다.
- Main Load Balancer가 동작하지 않으면 가상IP(VIP, Virtual IP)는 여분의 Load Balancer로 변경
- 여분의 Load Balancer로 운영