728x90
반응형
로드 밸런서(Load Balancer)
- 정의
- 트래픽이 몰리는 것을 막아 가용성을 보존하고, 트래픽 병목 현상을 예측하고 막을 수 있는 것
- 가용성 : 서비스가 지속되는 정도
- 트래픽이 몰리는 것을 막아 가용성을 보존하고, 트래픽 병목 현상을 예측하고 막을 수 있는 것
- 로드밸런서 설계 - 고려 사항
- 업무 크기를 고려하여, 실행시간이 얼마나 걸리는지 확인
- 데이터 의존도에 따른 작업 순서 및 실행 시간이 얼마나 걸리는지 확인
- 트리 구조 계산방식 등을 통한 작업 분담
- 알고리즘의 복잡도
- 하드웨어 아키텍처
- 에러 허용 범위
- 로드 밸런싱 알고리즘
- 라운드 로빈(Round Robin) : 요청이 들어온 순서대로 순차적인 처리하며, 경로 분이 같은 처리량을 보장하지 않음
- 가중 라운드 로빈(Weight Round Robin) : 라운드 로빈의 성능에 따라 트래픽 분산에 가중치를 두는 방식
- 최소 접근법(Least Connection) : 최소 라우팅 서버를 우선적으로 배치이며, 즉 세션 연결이 최소로 연결된 서버에 우선적으로 연결하는 방식
- 가중치 최소 접근법(Weight Least Connection) : 기존 최소 연결방식에 서버 가중치를 두는 방식
- Min missis : 특정 서버에 장애가 발생하면, IP 해시를 재할당 하는 방식이며, Source IP를 기준으로 하기 때문에 Proxy 서버에서는 Min missis와 라운드 로빈을 사용하면 안됨
- Hashing : 특정 클라이언트가 접속하면 특정 서버로 라우팅 해주는 방식이며, 경로가 보장되며 접속자 수가 많을수록 성능이 뛰어남
- Bandwidth based LB : 주파수 대역에 따른 로드 밸런싱
- Response Time : 응답시간 좋은 로드 밸런싱
- L4 Load Balancer
- IP 정보와 Port 정보를 참조하여 트래픽을 나누는 로드밸런서
- L7 Load Balancer
- IP 정보와 Port 정보에 페이 로드 패턴을 적용하여 로드 밸런싱하는 패킷 스위치
- 페이 로드 : http의 헤더 같은 정보
- 주로 http 라우팅에서 동작하며,
- Persistent with Cookies : 쿠키 분석을 통한 쿠키 유지
- Context Switching : 클라이언트가 Context 전환 가능
- Content Rewriting : 전달 받은 Req에 따른 재전송
- IP 정보와 Port 정보에 페이 로드 패턴을 적용하여 로드 밸런싱하는 패킷 스위치
- DNS 라운드 로빈 방식 문제점
- 서버의 수 만큼 공인 IP 주소가 필요함 부하 분산을 위해 서버의 대수를 늘리기 위해서는 그 만큼의 공인 IP 가 필요함
- 균등하게 분산되지 않음
- 모바일 사이트 등에서 문제가 될 수 있는데, 스마트폰의 접속은 캐리어 게이트웨이 라고 하는 프록시 서버를 경유함
- 프록시 서버에서는 이름변환 결과가 일정 시간 동안 캐싱되므로 같은 프록시 서버를 경유하는 접속은 항상 같은 서버로 접속됨
- PC 용 웹 브라우저도 DNS 질의 결과를 캐싱하기 때문에 균등하게 부하분산 되지 않음
- DNS 레코드의 TTL 값을 짧게 설정함으로써 어느 정도 해소가 되지만, TTL 에 따라 캐시를 해제하는 것은 아니므로 반드시 주의가 필요함
- TTL(Time to Live): 패킷이 무한으로 순환하는 것을 막아주는 역할
- 패킷 : 네트워크 계층에서 통신할 때, 쓰이는 하나의 통신 단위
- TTL(Time to Live): 패킷이 무한으로 순환하는 것을 막아주는 역할
- 서버가 다운되더라도, 확인 불가 DNS 서버는 웹 서버의 부하나 접속 수 등의 상황에 따라 질의결과를 제어할 수 없음
- 웹 서버의 부하가 높아서 응답이 느려지거나 접속수가 꽉 차서 접속을 처리할 수 없는 상황인지를 전혀 감지할 수가 없기 때문에 어떤 원인으로 다운되더라도 이를 검출하지 못하고 유저들에게 제공함 => 유저들은 간혹 다운된 서버로 연결이 되기도 함
Least connection
728x90
반응형
'Computer Science > Computer Science' 카테고리의 다른 글
프로세스, 스레드, 멀티태스킹, 멀티스레딩, 멀티프로세싱, 멀티프로그래밍 (1) | 2023.11.27 |
---|---|
HTTP vs HTTPS 비교 (0) | 2023.01.25 |
TCP & UDP 정의 (0) | 2023.01.25 |
Object Oriented Programming(OOP) 객체 지향 프로그램 (1) | 2023.01.25 |
댓글