Client가 한두명일 경우에는, Server는 Client의 요청에 대해 여유롭게 결과를 응답해 줄 수 있다.
하지만, Client가 한두명이 아닌, 수천, 수백만명이라면 어떨까?
Server는 모든 사람들에게 답을 해주고 싶지만, 결국 과부하가 온다.
문제를 해결하기 위해선
- Scale-up : Server의 하드웨어 성능을 올리는 방법
- Scale-out : 하나의 server보다는 여러 대의 Server가 나눠서 일을 하는 방법
Scale-out의 장점은?
- 하드웨어를 향상시킬때 드는 비용보다 서버 한대 추가 비용이 더 적다.
- 여러 대의 server로 무중단 서비스를 제공할 수 있다.(cluster의 개념과 유사)
여러 대의 Server에 균등하게 트래픽 분산을 해주는 것이 오늘의 주제, Load Balancer의 역할이다.
Load Balance란,, 하나의 인터넷 서비스가 발생하는 트래픽이 많을 때 여러 대의 서버가 분산처리하여 서버의 로드율 증가, 부하량, 속도저하 등을 고려하여 적절히 분산처리해주어 트래픽 문제를 해결해주는 서비스이다.
주요 기능에는,,
- NAT(Network Address Translation)
- 사설 IP 주소를 공인 IP 주소로 바꾸는데 사용하는 통신망의 주소 변조기이다.
- Tunneling
- 인터넷 상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념
- 데이터를 캡슐화해서 연결된 상호 간에만 캡슐화된 패킷을 구별해 캡슐화를 해제할 수 있다.
- DSR(Dynamic Source Routing protocol)
- 로드 밸런서 사용 시 서버에서 클라이언트로 되돌아 갈 경우, 목적지 주소를 스위치의 IP주소가 아닌 클라이언트의 IP주소로 전달해서 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아간다.
Load Balancer의 종류는 어떤 것이 있을까?
- 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, HTTPS, FTP
Load Balancer의 장애 대비는? - 이중화하여. 이것도 cluster의 개념.
Reference
'IT 용어사전' 카테고리의 다른 글
Protocol 이란,,,, (1) | 2020.08.07 |
---|---|
proxy란,,,, (0) | 2020.08.07 |
provisioning이란,,, (0) | 2020.08.07 |