로드 밸런서: 두 판 사이의 차이
(Gemini 벌크 업로더로 자동 업로드) |
(Gemini 벌크 업로더로 자동 업로드) |
||
1번째 줄: | 1번째 줄: | ||
== | == 로드 밸런서 (Load Balancer) == | ||
'''로드 밸런서'''는 | '''로드 밸런서(Load Balancer)'''는 서버에 가해지는 트래픽(부하)을 여러 대의 서버에 '''분산'''시켜주는 장치 또는 소프트웨어입니다. 이를 통해 서비스의 성능, 가용성, 확장성을 향상시키는 것이 주된 목적입니다. | ||
---- | |||
=== ⚖️ 로드 밸런서의 필요성 === | |||
* '''트래픽 분산''' : 단일 서버에 집중되는 트래픽을 여러 서버로 분산하여 서버 과부하를 방지하고, 안정적인 서비스 제공을 가능하게 합니다. | |||
* '''고가용성 (High Availability)''' : 특정 서버에 장애가 발생하더라도, 로드 밸런서가 해당 서버를 트래픽 분배 대상에서 제외하고 정상 서버로만 트래픽을 보내 서비스 중단을 방지합니다. | |||
* '''확장성 (Scalability)''' : 트래픽 증가 시, 서버를 추가하여 손쉽게 시스템 용량을 확장할 수 있도록 합니다 (수평 확장, Scale-out). | |||
* '''성능 향상''' : 여러 서버가 동시에 요청을 처리하므로, 전체적인 응답 시간을 단축시킵니다. | |||
---- | ---- | ||
=== | === ⚙️ 로드 밸런서의 동작 방식 === | ||
* ''' | * '''위치''' : 클라이언트와 서버 사이에 위치하여, 클라이언트의 요청을 받아 적절한 서버로 전달합니다. | ||
* ''' | * '''트래픽 분산 알고리즘 (Load Balancing Algorithms)''' | ||
* ''' | > * '''라운드 로빈 (Round Robin)''' : 서버들에게 요청을 순서대로 균등하게 분배합니다. | ||
* ''' | > * '''가중치 라운드 로빈 (Weighted Round Robin)''' : 각 서버의 처리 능력에 따라 가중치를 부여하여, 가중치가 높은 서버에 더 많은 요청을 분배합니다. | ||
> * '''최소 연결 (Least Connection)''' : 현재 연결(세션) 수가 가장 적은 서버에 요청을 분배합니다. (실제 부하를 반영) | |||
> * '''IP 해시 (IP Hash)''' : 클라이언트의 IP 주소를 해싱하여 특정 서버에 매핑합니다. 동일한 클라이언트의 요청은 항상 동일한 서버로 전송되어 세션 유지에 유리합니다. | |||
* '''헬스 체크 (Health Check)''' : 로드 밸런서가 주기적으로 서버들의 상태를 확인하여, 장애가 발생한 서버를 트래픽 분배 대상에서 자동으로 제외합니다. | |||
---- | ---- | ||
=== | === 🆚 L4 로드 밸런서 vs L7 로드 밸런서 === | ||
로드 | * '''L4 로드 밸런서 (전송 계층)''' | ||
> * '동작 계층' : OSI 7계층 중 전송 계층(Layer 4, TCP/UDP)에서 동작합니다. | |||
> * '분산 기준' : IP 주소, 포트 번호, 세션 정보 등을 기반으로 트래픽을 분산합니다. | |||
> * '특징' : 패킷 내용을 들여다보지 않고, IP와 포트 정보만으로 분산하므로 빠르고 효율적입니다. | |||
* ''' | * '''L7 로드 밸런서 (응용 계층)''' | ||
* '' | > * '동작 계층' : OSI 7계층 중 응용 계층(Layer 7, HTTP/HTTPS, FTP 등)에서 동작합니다. | ||
* '' | > * '분산 기준' : URL 경로, HTTP 헤더, 쿠키 정보 등 애플리케이션 계층의 정보를 기반으로 트래픽을 분산합니다. | ||
* ' | > * '특징' : 더 정교한 라우팅 및 필터링이 가능합니다. (e.g., 특정 URL은 특정 서버로, 이미지 파일은 이미지 서버로) | ||
> * '단점' : 패킷 내용을 분석해야 하므로 L4보다 처리 속도가 느리고, 더 많은 자원 소모가 있습니다. | |||
---- | ---- | ||
29번째 줄: | 43번째 줄: | ||
=== 💡 개발자 핵심 Point === | === 💡 개발자 핵심 Point === | ||
* | * 로드 밸런서는 현대 웹 서비스 아키텍처에서 고가용성, 확장성, 성능을 확보하기 위한 필수적인 요소입니다. | ||
* | * '''세션 유지 (Session Persistence / Sticky Session)''' : 세션 기반의 서비스에서는 동일한 클라이언트의 요청이 항상 동일한 서버로 가도록 설정해야 할 수 있습니다. (IP 해시, 쿠키 기반 등) | ||
* | * '''SSL Offloading''' : L7 로드 밸런서에서 SSL/TLS 암호화/복호화를 처리하여 백엔드 서버의 부하를 줄이는 기능입니다. | ||
* 클라우드 환경에서는 AWS ELB(Elastic Load Balancing), Google Cloud Load Balancing 등 매니지드 서비스 형태로 제공되어 쉽게 로드 밸런서를 구축할 수 있습니다. |
2025년 9월 11일 (목) 16:50 기준 최신판
로드 밸런서 (Load Balancer)
로드 밸런서(Load Balancer)는 서버에 가해지는 트래픽(부하)을 여러 대의 서버에 분산시켜주는 장치 또는 소프트웨어입니다. 이를 통해 서비스의 성능, 가용성, 확장성을 향상시키는 것이 주된 목적입니다.
⚖️ 로드 밸런서의 필요성
- 트래픽 분산 : 단일 서버에 집중되는 트래픽을 여러 서버로 분산하여 서버 과부하를 방지하고, 안정적인 서비스 제공을 가능하게 합니다.
- 고가용성 (High Availability) : 특정 서버에 장애가 발생하더라도, 로드 밸런서가 해당 서버를 트래픽 분배 대상에서 제외하고 정상 서버로만 트래픽을 보내 서비스 중단을 방지합니다.
- 확장성 (Scalability) : 트래픽 증가 시, 서버를 추가하여 손쉽게 시스템 용량을 확장할 수 있도록 합니다 (수평 확장, Scale-out).
- 성능 향상 : 여러 서버가 동시에 요청을 처리하므로, 전체적인 응답 시간을 단축시킵니다.
⚙️ 로드 밸런서의 동작 방식
- 위치 : 클라이언트와 서버 사이에 위치하여, 클라이언트의 요청을 받아 적절한 서버로 전달합니다.
- 트래픽 분산 알고리즘 (Load Balancing Algorithms)
> * 라운드 로빈 (Round Robin) : 서버들에게 요청을 순서대로 균등하게 분배합니다. > * 가중치 라운드 로빈 (Weighted Round Robin) : 각 서버의 처리 능력에 따라 가중치를 부여하여, 가중치가 높은 서버에 더 많은 요청을 분배합니다. > * 최소 연결 (Least Connection) : 현재 연결(세션) 수가 가장 적은 서버에 요청을 분배합니다. (실제 부하를 반영) > * IP 해시 (IP Hash) : 클라이언트의 IP 주소를 해싱하여 특정 서버에 매핑합니다. 동일한 클라이언트의 요청은 항상 동일한 서버로 전송되어 세션 유지에 유리합니다.
- 헬스 체크 (Health Check) : 로드 밸런서가 주기적으로 서버들의 상태를 확인하여, 장애가 발생한 서버를 트래픽 분배 대상에서 자동으로 제외합니다.
🆚 L4 로드 밸런서 vs L7 로드 밸런서
- L4 로드 밸런서 (전송 계층)
> * '동작 계층' : OSI 7계층 중 전송 계층(Layer 4, TCP/UDP)에서 동작합니다. > * '분산 기준' : IP 주소, 포트 번호, 세션 정보 등을 기반으로 트래픽을 분산합니다. > * '특징' : 패킷 내용을 들여다보지 않고, IP와 포트 정보만으로 분산하므로 빠르고 효율적입니다.
- L7 로드 밸런서 (응용 계층)
> * '동작 계층' : OSI 7계층 중 응용 계층(Layer 7, HTTP/HTTPS, FTP 등)에서 동작합니다. > * '분산 기준' : URL 경로, HTTP 헤더, 쿠키 정보 등 애플리케이션 계층의 정보를 기반으로 트래픽을 분산합니다. > * '특징' : 더 정교한 라우팅 및 필터링이 가능합니다. (e.g., 특정 URL은 특정 서버로, 이미지 파일은 이미지 서버로) > * '단점' : 패킷 내용을 분석해야 하므로 L4보다 처리 속도가 느리고, 더 많은 자원 소모가 있습니다.
💡 개발자 핵심 Point
- 로드 밸런서는 현대 웹 서비스 아키텍처에서 고가용성, 확장성, 성능을 확보하기 위한 필수적인 요소입니다.
- 세션 유지 (Session Persistence / Sticky Session) : 세션 기반의 서비스에서는 동일한 클라이언트의 요청이 항상 동일한 서버로 가도록 설정해야 할 수 있습니다. (IP 해시, 쿠키 기반 등)
- SSL Offloading : L7 로드 밸런서에서 SSL/TLS 암호화/복호화를 처리하여 백엔드 서버의 부하를 줄이는 기능입니다.
- 클라우드 환경에서는 AWS ELB(Elastic Load Balancing), Google Cloud Load Balancing 등 매니지드 서비스 형태로 제공되어 쉽게 로드 밸런서를 구축할 수 있습니다.