Closed ngwoon closed 2 years ago
서버의 스케일 아웃 확장 시 사용되는 라우터.
클라이언트의 요청을 받아, server farm (혹은 server pool) 내의 서버들의 현재 부하량, 응답 지연 시간 등을 고려해 적절한 서버에게 라우팅해주는 역할을 한다.
출처 : https://www.nginx.com/resources/glossary/load-balancing/
로드밸런서를 적용해서 얻을 수 있는 장점
DNS
별도의 로드밸런서를 두지 않고, DNS의 라우팅 기능을 활용하는 방법
보통 DNS에 하나의 도메인 - N개의 ip를 설정해두고, Round Robin 방식으로 여러 사용자에게 서로 다른 ip를 제공하는 방식이다.
단점
클라이언트의 DNS 캐싱에 의해 RR이 제대로 동작한다는 보장도 없다.
→ 가용성, 더 낮은 지연시간 등을 보장할 수 없다.
하드웨어 로드밸런서
로드밸런싱을 역할만을 수행하는 하드웨어.
보통 on-premise 데이터 센터 앞단에 배치되며, failover를 위해 두 개 이상 배치된다.
소프트웨어 로드밸런서
로드밸런싱 역할을 수행하는 소프트웨어.
소프트웨어이기 때문에 클라우드 환경에 설치하여 사용하는 것 또한 가능하다.
HAProxy
네트워크 스위치에서 제공하는 L4, L7 기능 및 로드밸런서 기능을 제공한다.
Naver ncloud, Github, Airbnb 등에서 활용 중이다.
Seesaw
구글에서 GO 언어로 개발한 오픈소스 로드밸런서.
NAT (Network Address Translation)
클라이언트로부터 전달받은 요청 IP (공인 IP)를 사설 IP로 변조하는 주소 변조기로서의 기능
DSR (Dynamic Source Routing protocol)
로드밸런서 사용 시 서버에서 클라이언트로 응답이 되돌아갈 때, 응답 패킷읭 목적지 IP를 로드밸런서가 아닌 클라이언트 IP로 설정하여 실제 서버 → 클라이언트로 직접 응답 패킷이 전달되도록 하는 기능
특히 멀티미디어 데이터 요청에 대한 응답의 경우 패킷의 크기가 크기 때문에, 로드밸런서를 거쳐서 간다면 로드밸런서가 병목의 원인이 될 수 있다. 이런 경우를 방지하기 위한 기능이다.
Tunneling
인터넷 상에서 가상의 통로를 만들어 통신할 수 있게 하는 개념
데이터를 캡슐화해서 연결된 상호 간에만 캡슐화된 패킷을 구별하고, 이를 해제하여 내용을 확인할 수 있게 하는 보안적인 기법이다.
https://www.nginx.com/resources/glossary/load-balancing/https://www.nginx.com/resources/glossary/load-balancing/
https://www.nginx.com/resources/glossary/layer-4-load-balancing/
https://www.nginx.com/resources/glossary/layer-7-load-balancing/
https://d2.naver.com/helloworld/284659 @caffeine-library/readers-system-design-interview
연관 챕터
1
조사 내용
서버의 스케일 아웃 확장 시 사용되는 라우터.
클라이언트의 요청을 받아, server farm (혹은 server pool) 내의 서버들의 현재 부하량, 응답 지연 시간 등을 고려해 적절한 서버에게 라우팅해주는 역할을 한다.
출처 : https://www.nginx.com/resources/glossary/load-balancing/
로드밸런서를 적용해서 얻을 수 있는 장점
로드밸런서 종류
DNS
별도의 로드밸런서를 두지 않고, DNS의 라우팅 기능을 활용하는 방법
보통 DNS에 하나의 도메인 - N개의 ip를 설정해두고, Round Robin 방식으로 여러 사용자에게 서로 다른 ip를 제공하는 방식이다.
단점
클라이언트의 DNS 캐싱에 의해 RR이 제대로 동작한다는 보장도 없다.
→ 가용성, 더 낮은 지연시간 등을 보장할 수 없다.
하드웨어 로드밸런서
로드밸런싱을 역할만을 수행하는 하드웨어.
보통 on-premise 데이터 센터 앞단에 배치되며, failover를 위해 두 개 이상 배치된다.
소프트웨어 로드밸런서
로드밸런싱 역할을 수행하는 소프트웨어.
소프트웨어이기 때문에 클라우드 환경에 설치하여 사용하는 것 또한 가능하다.
HAProxy
네트워크 스위치에서 제공하는 L4, L7 기능 및 로드밸런서 기능을 제공한다.
Naver ncloud, Github, Airbnb 등에서 활용 중이다.
Seesaw
구글에서 GO 언어로 개발한 오픈소스 로드밸런서.
로드밸런서의 기능
NAT (Network Address Translation)
클라이언트로부터 전달받은 요청 IP (공인 IP)를 사설 IP로 변조하는 주소 변조기로서의 기능
DSR (Dynamic Source Routing protocol)
로드밸런서 사용 시 서버에서 클라이언트로 응답이 되돌아갈 때, 응답 패킷읭 목적지 IP를 로드밸런서가 아닌 클라이언트 IP로 설정하여 실제 서버 → 클라이언트로 직접 응답 패킷이 전달되도록 하는 기능
특히 멀티미디어 데이터 요청에 대한 응답의 경우 패킷의 크기가 크기 때문에, 로드밸런서를 거쳐서 간다면 로드밸런서가 병목의 원인이 될 수 있다. 이런 경우를 방지하기 위한 기능이다.
Tunneling
인터넷 상에서 가상의 통로를 만들어 통신할 수 있게 하는 개념
데이터를 캡슐화해서 연결된 상호 간에만 캡슐화된 패킷을 구별하고, 이를 해제하여 내용을 확인할 수 있게 하는 보안적인 기법이다.
참고
https://www.nginx.com/resources/glossary/load-balancing/https://www.nginx.com/resources/glossary/load-balancing/
https://www.nginx.com/resources/glossary/layer-4-load-balancing/
https://www.nginx.com/resources/glossary/layer-7-load-balancing/
https://d2.naver.com/helloworld/284659 @caffeine-library/readers-system-design-interview