Load Balancing(로드밸런싱)❓

beluga000·2024년 8월 6일
0
post-thumbnail

Load Balancing(로드밸런싱)

로드밸런싱(Load Balancing)은 네트워크 및 서버 인프라에서 트래픽을 여러 서버나 네트워크 장치로 분산하여 시스템 성능을 최적화하고, 안정성과 가용성을 높이는 기술입니다. 로드밸런싱을 통해 한 서버에 과도한 부하가 걸리는 것을 방지하고, 시스템의 전체적인 처리 능력을 향상시킬 수 있습니다.

한마디로 말해서 부하를 분산시키는 기술이라고 할 수 있습니다.

로드 밸런싱 주요 기능

1. 트래픽 분산

클라이언트 요청을 여러 서버에 고르게 분배하여 특정 서버에 부하가 집중되지 않도록 합니다.

2. 고가용성

하나의 서버가 장애를 일으키더라도 다른 서버가 이를 대체할 수 있도록 하여 서비스의 지속적인 운영을 보장합니다.

3. 확장성

시스템에 추가적인 서버를 쉽게 추가하여 증가하는 트래픽을 처리할 수 있습니다.

4. 응답 시간 향상

부하를 분산시킴으로써 각 서버의 응답 시간을 줄이고 전체 시스템의 성능을 향상시킵니다.

로드 밸런싱의 유형

1. 소프트웨어 로드밸런서

소프트웨어 로드 밸런서는 네트워크 트래픽을 관리하고 분산하기 위해 소프트웨어를 사용하는 방식으로 물리적인 하드웨어가 아닌 서버나 클라우드 인프라에 설치되어 실행됩니다. 주요 소프트웨어 로드밸런서로는 HAProxy, Nginx, Apache HTTP Server 등이 있습니다.

2. 하드웨어 로드밸런서

하드웨어 로드밸런서는 소프트웨어 로드밸런서와 다르게 전용 하드웨어 장치를 사용해 네트워크 트래픽을 분산시키는 방식으로 이 장치는 데이터 센터나 네트워크 인프라에 설치되어 트래피을 효과적으로 관리하고, 시스템의 성능과 가용성을 높이는 데 중요한 역할을 합니다. 또 하드웨어 로드밸런서는 소프트웨어 로드밸런서보다 성능이 우수하고 대규모 트래픽을 처리하는 데 적합합니다. 주요 하드웨어 로드밸런서로는 F5 Networks, Citrix ADC(NetScaler), Cisco Systems 등이 있습니다.

로드밸런싱 알고리즘

1. 라운드 로빈(Round Robin)

작동방식 : 각 서버에 순차적으로 요청을 분배
장점 : 간다하고 구현이 용이하며, 모든 서버에 균등하게 트래픽을 분배
단점 : 서버의 처리 능력을 고려하지 않으므로, 서버 간 성능 차이가 클 경우 비효율적일 수도 있음

2. 가중 라운드 로빈(Weighted Round Robin)

작동방식 : 서버마다 가중치를 부여하고, 가중치에 따라 요청을 분배
장점 : 서버의 성능에 따라 트래픽을 분배할 수 있어 효율적
단점 : 초기 설정 시 각 서버의 가중치를 정확하게 설정해야 함

3. 최소 연결(Least Connections)

작동 방식 : 현재 연결된 세션 수가 가장 적은 서버에 요청을 분배
장점 : 각 서버의 부하를 실시간으로 고려하여 균형을 맞춤
단점 : 연결 수가 적어도 처리 능력이 낮은 서버에 트래픽이 몰릴 수 있음

4. 가중 최소 연결(Weighted Least Connections)

작동방식 : 각 서버의 가중치를 고려하여, 가중치와 현재 연결 수를 기준으로 요청을 분배
장점 : 서버의 성능과 현재 부하를 동시에 고려하여 효율적인 분배
단점 : 설정이 복잡할 수 있으며, 가중치를 잘못 설정하면 비효율적일 수 있음

5. IP해시(IP Hash)

작동방식 : 클라이언트의 IP주소를 해시하여 특정 서버로 요청을 분배
장점 : 동일한 클라이언트의 요청이 항상 동일한 서버로 전송되어 세션 지속성을 유지할 수 있음
단점 : 서버를 추가하거나 제거하면 해시 분배가 변경되어 세션 지속성이 깨질 수 있음

6. URL해시(URL Hash)

작동방식 : 요청 URL을 해시하여 특정 서버로 요청을 분배
장점 : 동일한 URL에 대한 요청이 항상 동일한 서버로 전송되어 캐싱 효과를 극대화할 수 있음
단점 : URL이 변경될 경우 해시 값도 변경되어 분배가 달라질 수 있음

7. 랜덤(Random)

작동방식 : 임의로 선택된 서버에 요청을 분배
장점 : 구현이 간단하며, 예측 불가능한 분배가 가능
단점 : 서버의 부하를 고려하지 않으므로 비효율적

8. 최소 응답 시간(Least Response Time)

작동방식 : 응답 시간이 가장 짧은 서버에 요청을 분배
장점 : 각 서버의 실시간 성능을 고려하여 효율적으로 트래픽을 분배
단점 : 응답 시간을 지속적으로 모니터링해야 하므로 오버헤드 발생할 수 있음

알고리즘 선택 기준으로는
서버 성능 및 부하 : 서버 간 성능 차이가 클 경우, 가중 라운드 로빈이나 가중 최소연결 알고리즘이 유리
세션 지속성 : IP해시 또는 URL 해시 알고리즘이 적합
트래픽 특성 : 최소 연결이나 최소 응답 시간 알고리즘
구현 용이성 : 라운드로빈 혹은 랜덤 알고리즘

로드밸런싱의 주요 사용 사례

1. 웹 서버

다수의 웹서버가 요청을 처리하여 웹사이트의 성능을 향상

2. 데이터베이스 서버

데이터베이스 쿼리를 여러 서버에 분산하여 처리 성능을 향상

3. 애플리케이션 서버

애플리케이션 로직을 처리하는 서버들 사이에 부하를 분산

로드밸런싱의 구성 요소

1. 프론트엔드 : 클라이언트 요청을 수신하는 로드밸런서

2. 백엔드 : 실제로 요청을 처리하는 서버 풀

3. 헬스 체크(Health Check) : 서버 상태를 모니터링하여 비정상적인 서버를 트래픽 분배 대상에서 제외

profile
Developer

0개의 댓글