caffeine-library / system-design-interview

🌱 가상 면접 사례로 배우는 대규모 시스템 설계 기초를 읽는 스터디
4 stars 0 forks source link

[additional] 로드밸런서 #8

Closed ngwoon closed 2 years ago

ngwoon commented 2 years ago

연관 챕터

1

조사 내용

서버의 스케일 아웃 확장 시 사용되는 라우터.

클라이언트의 요청을 받아, server farm (혹은 server pool) 내의 서버들의 현재 부하량, 응답 지연 시간 등을 고려해 적절한 서버에게 라우팅해주는 역할을 한다.

출처 : [https://www.nginx.com/resources/glossary/load-balancing/](https://www.nginx.com/resources/glossary/load-balancing/)

출처 : https://www.nginx.com/resources/glossary/load-balancing/

로드밸런서를 적용해서 얻을 수 있는 장점

로드밸런서 종류

DNS

별도의 로드밸런서를 두지 않고, DNS의 라우팅 기능을 활용하는 방법

보통 DNS에 하나의 도메인 - N개의 ip를 설정해두고, Round Robin 방식으로 여러 사용자에게 서로 다른 ip를 제공하는 방식이다.

하드웨어 로드밸런서

로드밸런싱을 역할만을 수행하는 하드웨어.

보통 on-premise 데이터 센터 앞단에 배치되며, failover를 위해 두 개 이상 배치된다.

소프트웨어 로드밸런서

로드밸런싱 역할을 수행하는 소프트웨어.

소프트웨어이기 때문에 클라우드 환경에 설치하여 사용하는 것 또한 가능하다.

로드밸런서의 기능

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