Load Balancing 개요
카카오클라우드의 Load Balancing은 클라이언트의 요청을 수신하고 받은 트래픽을 여러 개의 서버로 분산하는 서비스입니다. 이는 단일 서버에서 모든 요청을 처리하는 경우 발생할 수 있는 문제를 해결하기 위한 중요한 기술입니다.
단일 서버에서 대량의 요청이 발생하면 서버의 처리 능력을 초과하여 속도 저하나 서비스 장애로 이어질 수 있습니다. 하지만 Load Balancing 서비스를 사용하면, 트래픽을 균등하게 분산시켜 각 서버의 부하를 분산시킬 수 있습니다. 이는 서버의 안정성과 가용성을 향상하는 데 도움이 됩니다.
Load Balancing 아키텍처
Load Balancing 서비스의 아키텍처와 작업 흐름은 다음과 같습니다.
- 클라이언트가 요청을 보내 서버와 연결을 시도합니다.
- 로드 밸런서는 리스너를 통해 요청을 수신하고 해당 요청을 대상 그룹으로 라우팅합니다.
- 대상 그룹은 미리 설정한 알고리즘에 따라 하나의 대상으로 요청을 전달합니다.
- 대상은 요청을 수신하고 로드 밸런서를 통해 클라이언트에게 전송할 응답을 생성합니다.
- 로드 밸런서는 응답을 받아 클라이언트에게 전달합니다.
- 필요한 경우, 로드 밸런서는 SSL 오프로드를 처리합니다.
사용 목적 및 사례
안정성이 중요한 서비스를 비용 효율적으로 운영
서버 장애나 과부하를 방지하기 위하여 지속적인 관리 리소스를 투입하는 대신, 사전 설정을 통해 대상 그룹 내의 여러 서버로 트래픽을 분산시킵니다. 그리고 대상 그룹의 일부 서버에 예기치 않은 장애가 발생할 경우, 해당 서버를 자동으로 제외하여 무중단 서비스를 운영할 수 있도록 합니다.
클라이언트와 서버 간의 중개자 역할을 수행
각 서버의 부하를 분산시키고, 효율적인 리소스 활용을 도모할 수 있음. 일부 서버에 장애가 발생하더라도 다른 서버가 요청을 처리할 수 있어 전체 시스템의 가용성이 유지됩니다.
분산 시스템 구축에 핵심적인 역할
Load Balancing 알고리즘을 활용하여 특정 서버에 과도한 부하가 집중되지 않도록 조절할 수 있으며, SSL 오프로딩, 세션 유지 등의 기능을 제공하여 다양한 요구사항을 충족합니다.
특징
사용 목적에 따른 로드 밸런서 유형 제공
이름 | 설명 |
---|---|
Application Load Balancer(ALB) | - HTTP, HTTPS 프로토콜 지원 - OSI L7로 동작하며 웹 사이트, 마이크로 서비스, 컨테이너 등 다양한 애플리케이션에 선택 - L7 규칙을 추가하여 세밀한 라우팅 설정이 가능 |
Network Load Balancer(NLB) | - TCP, UDP, TLS 프로토콜 지원 - OSI L4로 동작하며 대규모 트래픽 발생 환경에서 빠른 처리 속도가 필요한 경우 선택 |
Direct Server Return Network Load Balancer(DSRNLB) | - TCP, UDP 프로토콜 지원 - OSI L4로 동작하며 클라이언트 IP를 보존하여 전달해야 할 경우 선택 |
상태 확인 기능으로 더욱 안정적인 무중단 서비스 유지
- 대상 그룹에 상태 확인 기능을 설정하여 안정적인 무중단 서비스를 유지
- 대상의 상태를 주기적으로 점검하고, 장애가 발생한 서버는 트래픽 분배 대상에서 제외하며 정상 서버로 트래픽을 우회