네트워크 스터디를 진행하며 마지막 챕터인 네트워크 심화를 주제로 공부를 하며
로드밸런싱의 정의와 필요성, 관련 알고리즘에 대해 정리해보았습니다.
1. 로드밸런싱이란
로드밸런싱은 여러 서버를 두고 트래픽을 고르게 분산시켜 시스템의 성능과 안정성을 높이는 기술입니다.
하나의 서버에 요청이 몰리지 않도록 하여 서버 과부하를 막습니다.
2. 로드 밸런싱의 필요성
과거에는 한 대의 서버만으로도 클라이언트 요청을 처리하는데 문제가 없었습니다.
하지만 현대의 애플리케이션에서는 사용자 요구가 증가하고 비즈니스가 복잡해져 서버 부하가 증가했습니다.
동시에 많은 사용자들이 요청을 보내는 대용량 트래픽 상황에서 서버의 부하를 줄이기 위한 분산 처리 시스템 구현을 위해 로드 밸런싱을 채택할 수 있습니다.
로드 밸런싱을 통해 서버 과부하를 방지하고 응답을 빠르게 받을 수 있으며 장애를 복구할 수 있다는 장점이 있습니다.
3. 로드 밸런싱의 주요 유형
1) DNS 기반 로드밸런싱
- 도메인 네임 시스템 (DNS)에서 요청 받은 사용자를 여러 서버로 분산하는 방식입니다.
- DNS 서버가 사용자 요청을 처리 가능한 서버 IP로 매핑해줍니다.
- 설정이 간단하고 글로벌 트래픽 분산에 유용하지만 DNS 캐싱으로 인해 변경 사항이 즉시 반영되지 않고 세부적인 트래픽 제어가 어렵다는 단점도 있습니다.
2) 애플리케이션 계층 로드밸런싱 (L7)
- OSI 7계층의 애플리케이션 계층에서 작동하며 HTTP, HTTPS와 같은 특정 프로토콜을 기반으로 요청을 분배합니다.
- 요청의 콘텐츠, URL, 쿠키, 헤더를 기반으로 트래픽을 분산합니다.
- 세부적인 요청 처리가 가능하고 SSL 종료 처리가 가능하다는 장점이 있지만 설정이 복잡하고 네트워크 계층(L4) 보다 패킷을 더 많이 처리해야 해서 속도가 느립니다.
3) 전송계층 로드밸런싱 (L4)
- OSI 7계층의 4계층에서 작동하며 IP 주소 및 포트를 기반으로 트래픽을 분산하는 방법입니다.
- TCP/UDP 연결 정보를 바탕으로 트래픽을 분배하고 패킷 수준에서 로드밸런싱이 가능합니다.
- 속도가 빠르고 효율적이며 모든 프로토콜에 적용 가능하지만 요청 세부 내용을 기반으로 분배할 수 없고 SSL 처리를 하기 위해 추가 설정이 필요합니다.
4. 로드밸런싱 알고리즘
1) Round Robin
- 서버 목록에서 순서대로 요청을 순환 분배하는 방식입니다.
- 모든 서버에 동일한 트래픽을 할당해 균등 분배가 가능합니다.
- 서버들이 동일한 성능을 가지는 경우에 적용하기 좋습니다.
2) Least Connections
- 현재 연결 수가 가장 적은 서버에 요청을 분배하는 방식입니다.
- 각 서버 부하 상태를 실시간으로 고려하여 비슷한 요청량을 처리하는 환경에 효과적입니다.
3) Weighted Round Robin
- 서버에 가중치를 부여해 가중치 높은 서버에 더 많은 트래픽을 할당합니다.
- 서버의 성능 차이를 반영해 고성능 서버는 더 많은 요청을 처리하도록 설계하는 방식입니다.
4) IP Hashing
- 사용자 IP 주소를 해싱하여 특정 서버에 고정적으로 요청을 분배합니다.
- 특정 사용자가 항상 같은 서버로 연결되도록 하여 세션 지속성이 필요한 애플리케이션에 유리합니다.
정리
여태까지의 프로젝트에서는 아직 대규모 트래픽을 경험해보지 못했습니다.
그렇지만 최근 본 채용 공고에서는 대규모 트래픽과 관련된 우대사항이 있는 경우가 많았습니다.
이에 서버 부하를 줄이기 위한 방법인 로드밸런싱에 대해 정리해보았습니다.
앞으로의 프로젝트에서 Nginx나 AWS ELB를 활용하여 로드밸런싱을 구현해볼 기회가 있으면 좋겠습니다
'Fundamentals > Computer Science' 카테고리의 다른 글
[운영체제] 자바의 스레드와 멀티스레드 기본 개념 (2) | 2025.01.21 |
---|---|
[컴퓨터구조] 자바는 컴파일 언어일까 인터프리터 언어일까? (0) | 2025.01.12 |
[네트워크] HTTP의 정의와 HTTP 메서드의 속성 (3) | 2024.12.20 |
[네트워크] TCP 기반 웹소켓 기술 (1) | 2024.12.16 |
[네트워크] 네트워크 계층에서의 QoS 관리 (1) | 2024.12.12 |