CDN
물리적 거리의 한계를 극복하기 위해 소비자와 가까운 곳에 콘텐츠 서버를 두는 기술
로드 밸런싱의 기본 개념은 들어오는 트래픽이나 요청을 여러 서버에 분산하여 한 서버에 과도한 부하가 걸리지 않도록 하는 것입니다. 이렇게 하면 다음과 같은 장점을 얻을 수 있습니다:
성능 최적화: 각 서버가 담당하는 요청 수를 줄여서 처리 속도를 개선합니다.
서버 부하 감소: 과도한 트래픽이 특정 서버에 집중되는 것을 방지하여 서버 과부하를 예방합니다.
고가용성: 하나의 서버가 장애를 일으켜도 다른 서버가 요청을 처리할 수 있어 서비스가 계속 운영됩니다.
로드 밸런서는 클라이언트의 요청을 여러 서버에 분산시킴으로써 트래픽을 관리하고 서버 자원을 효율적으로 사용하도록 합니다. 주요 역할은 다음과 같습니다:
트래픽 분산: 들어오는 요청을 여러 서버로 고르게 분산합니다.
서버 상태 확인: 각 서버의 상태를 모니터링하고, 장애가 발생한 서버를 자동으로 제외합니다.
세션 지속성 관리: 특정 클라이언트의 요청을 동일한 서버로 유지하여 세션을 지속합니다.
로드 관리: 각 서버의 부하 상태를 모니터링하고, 부하가 적절하게 분산되도록 관리합니다.
로드 밸런싱의 유형
로드 밸런싱은 여러 가지 방법으로 구현될 수 있습니다. 주요 로드 밸런싱 유형은 다음과 같습니다:
각 서버에 차례대로 요청을 분배하는 방식입니다. 예를 들어, A, B, C 세 개의 서버가 있을 때, 첫 번째 요청은 서버 A로, 두 번째 요청은 서버 B로, 세 번째 요청은 서버 C로 보내는 식입니다. 간단하고 구현이 용이하지만, 각 서버의 부하를 고려하지 않습니다.
가장 적은 수의 연결을 처리하고 있는 서버로 요청을 분배하는 방식입니다. 서버의 현재 부하 상태를 고려하여 트래픽을 분산시키므로, 부하가 고르게 분산됩니다.
클라이언트의 IP 주소를 해싱하여 특정 서버에 할당하는 방식입니다. 동일한 클라이언트는 항상 같은 서버에 연결되므로 세션 일관성을 유지할 수 있습니다.
서버의 성능에 따라 가중치를 부여하고, 가중치에 따라 요청을 분배하는 방식입니다. 예를 들어, 성능이 높은 서버에 더 많은 요청을 할당할 수 있습니다.
응답 시간이 가장 짧은 서버로 요청을 분배합니다. 서버의 현재 부하와 응답 속도를 모두 고려하여 트래픽을 효율적으로 분산시킵니다.
로드 밸런싱은 여러 가지 방식으로 구현될 수 있습니다:
하드웨어 기반 로드 밸런서:
하드웨어 장비를 사용하여 트래픽을 분산시킵니다. 고성능이지만, 비용이 높습니다.
소프트웨어 기반 로드 밸런서:
소프트웨어 애플리케이션을 사용하여 트래픽을 분산합니다. 유연성과 확장성이 뛰어나고, 클라우드 환경에서 자주 사용됩니다.
예: Nginx, HAProxy
클라우드 기반 로드 밸런서:
클라우드 서비스 제공자가 관리하는 로드 밸런서로, 쉽게 설정하고 확장할 수 있습니다.
예: AWS Elastic Load Balancing (ELB), Azure Load Balancer, 알리바바 클라우드의 SLB
부하 분산:
서버 간의 부하를 고르게 분산하여 특정 서버에 과도한 부하가 걸리지 않도록 합니다.
트래픽 관리:
들어오는 트래픽을 모니터링하고, 특정 트래픽 패턴에 따라 트래픽을 효율적으로 분산합니다.
장애 대응:
서버 장애 시 자동으로 해당 서버를 제외하고, 정상적인 서버로 트래픽을 라우팅합니다.
보안 강화:
로드 밸런서를 통해 HTTPS 암호화, DDoS 방어 등의 보안 기능을 추가할 수 있습니다.
성능 향상:
부하가 분산됨으로써 응답 시간을 줄이고, 사용자 경험을 개선합니다.
예시: 클라우드 환경에서의 로드 밸런서 설정
예를 들어, 알리바바 클라우드에서 로드 밸런서를 설정하는 과정을 살펴보겠습니다.
로드 밸런서 인스턴스 생성:
알리바바 클라우드 콘솔에 로그인하여 네트워크 & 보안 > 로드 밸런서 > 로드 밸런서 생성을 클릭합니다.
네트워크 유형과 리전을 선택하여 인스턴스를 생성합니다.
리스너 추가:
생성된 로드 밸런서 인스턴스를 선택하고, 리스너 탭에서 리스너 추가를 클릭합니다.
HTTP 또는 HTTPS와 같은 프로토콜을 선택하고, 포트를 설정합니다.
백엔드 서버 설정:
백엔드 서버 그룹을 구성하여 트래픽을 분산할 서버를 추가합니다.
서버 추가 후, 부하 분산 방식을 선택합니다(예: 라운드 로빈, 최소 연결).
모니터링 및 조정:
로드 밸런서의 성능을 모니터링하고, 필요한 경우 설정을 조정하여 트래픽을 효율적으로 관리합니다.