반응형
✅ 로드 밸런싱
: 클라이언트의 요청을 여러 서버에 분산시켜 서버의 부하를 줄이는 기술
수 많은 트래픽이 하나의 서버에 집중된다고 가정해보자.
이 경우, 우리가 선택할 수 았는 방법은 다음과 같이 두 가지이다.
📍 Scale-Up (수직적 확장)
: 서버의 하드웨어 성능을 올리는 방법
- 기존 서버 자체의 성능을 향상
- CPU나 메모리의 성능을 업그레이드
- 하지만, 현실적으로 비용이 많이 들 수 있음
📍 Scale-Out (수평적 확장)
: 서버의 개수를 늘려서 여러 대의 서버가 일을 나누어 처리하는 방법
- 기존 서버와 동일하거나 낮은 성능의 서버를 두 대 이상 운영
- 트래픽을 여러 서버에 균등하게 분상해주는 로드밸런싱 기술이 필요
✅ 로드 밸런서
: 로드 밸런싱 역할을 수행하는 장치
로드밸런싱에는 두 가지 계층 로드밸런서가 사용된다.
📍 L4 로드 밸런서
- 4계층인 전송 계층에서 동작한다.
- IP, 포트 등을 기준으로 트래픽을 분산한다.
- 패킷 수준에서 작동하여 속도가 빠르고, 설정도 비교적 간단하다.
- ex) TCP 연결 단위를 분산
📍 L7 로드 밸런서
: 애플리케이션 레벨에서 트래픽을 분산시키는 장치
- 7계층인 애플리케이션 계층에서 동작한다.
- HTTP/HTTPS 요청의 내용을 분석하고 URL, 쿠키, HTTP 헤더 등을 기준으로 트래픽을 분산한다.
- 요청의 내용에 따라 다양한 기준으로 트래픽을 분배한다.
- L4에 비해 정교한 로드밸런싱이 가능하다.
- 하지만, 비용이 크고 속도와 효율성이 감소한다.
- ex) 특정 URL은 A서버, 다른 URL은 B서버로 분산
✅ 로드 밸런서 알고리즘
📍 정적 부하분산 (Static Load Balancing)
: 서버의 현재 상태를 고려하지 않고 미리 정해진 규칙에 따라 분산
- Round Robin: 서버들에 요청을 순차적으로 고르게 분산
- IP Hash: 클라이언트의 IP를 해싱하여 항상 같은 서버로 요청 분산
- 세션 유지가 필요한 서비스에 유리
📍 동적 부하분산 (Dynamic Load Balancing)
: 서버의 현재 상태(부하, 연결 수 등)를 실시간 반영하여 분산
- Weighted Round Robin: 서버마다 가중치를 부여하여 분산
- 가중치가 가장 높은 서버에 트래픽을 우선 배정
- Least Connections: 현재 연결된 요청이 가장 적은 서버로 요청 전달
- Least Response Time: 응답 시간이 가장 빠른 서버로 우선 분산
✨ 추가 질문
[ 로드밸런싱 대상이 되는 장치중 일부 장치가 문제가 생겨 접속이 불가능하다고 가정해 봅시다. 이 경우, 로드밸런서가 해당 장비로 요청을 보내지 않도록 하려면 어떻게 해야 할까요? ]
로드밸런서는 헬스 체크(Health Check) 기능을 통해 서버 상태를 주기적으로 검사한다.
서버가 응답하지 않으면 자동으로 대상 목록에서 제외시켜 해당 서버로 요청을 보내지 않도록 할 수 있댜.
[ 로드밸런서 장치를 사용하지 않고, DNS를 활용해서 유사하게 로드밸런싱을 하는 방법에 대해 설명해 주세요. ]
DNS 라운드 로빈(DNS Round Robin) 방식을 사용하면 된다.
하나의 도메인에 대해 여러 IP 주소를 등록해두면 DNS 서버가 요청마다 순서대로 다른 IP를 응답하여 로드밸런싱 효과를 준다.
단, DNS는 클라이언트 단 캐싱이 있어 실시간 서버 상태 반영이 어렵다.
반응형
'⚙️ CS > 네트워크' 카테고리의 다른 글
| [네트워크] 다중화(Multiplexing)와 역다중화(Demultiplexing) (1) | 2025.05.28 |
|---|---|
| [네트워크] 포워딩과 라우팅 (1) | 2025.05.27 |
| [네트워크] DHCP (1) | 2025.05.20 |
| [네트워크] SOP와 CORS & REST (3) | 2025.05.20 |