로드 밸런싱(Load balancing)
부하분산 또는 로드 밸런싱은 컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋 이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다.
종류
로드 밸런싱의 종류는 OSI 7계층에 따라 나뉜다.
- L4: Transport 계층을 사용, IP 주소와 포트 번호 부하 분산이 가능하다.
- L7: Application 계층을 사용, URL 또는 HTTP 헤더에서 부하 분산이 가능하다.
OSI 7계층
NLB vs ALB
로드 밸런서는 몇 계층에서 분산작업을 수행하느냐에 따라 NLB와 ALB로 나눌 수 있다.
NLB(Network LoadBalancer)
- "Client IP와 서버"사이에 서버로 들어오는 트래픽은 Load Balancer를 통하고, 나가는 트래픽은 Client IP와 직접 통신한다.
- NLB는 Security Group이 적용되지 않아서 서버에 적용된 Security Group에서 보안이 가능하다.
- Client -> Server에서 Access 제한이 가능하다.
- NLB는 할당한 Elastic IP를 Static IP로 사용이 가능하여 DNS Name과 IP 주소 모두 사용 가능하다.
- Name Server 또는 Route 53에서 A Record 사용이 가능하다.
ALB(Application LoadBalancer)
- Reverse Proxy 대로 Client IP와 서버사이에 들어오고 나가는 트래픽이 모두 Load Balancer와 통신한다.
- CLB/ALB는 Security Group을 통한 보안이 가능하다.
- Client -> Load Balancer의 Access 제한이 가능하다.
- ALB/CLB는 IP 주소가 변동되기 때문에 Client에서 Access할 ELB의 DNS Name을 이용해야 한다.
- Name Server 또는 Route 53에서 CNAME을 사용해야 Domain Name 연동이 가능하다.
방식
라운드 로빈 방식
클라이언트로부터 받은 요청을 로드밸런싱 대상 서버에 순서대로 할당받는 방식이다. 균등한 분산이 이루어진다.
가중 라운드 로빈 방식
실제 서버에 서로 다른 처리 용량을 지정할 수 있다. 각 서버에 가중치를 부여할 수 있으며 여기서 지정한 정수값을 통해 처리 용량을 정한다.
최소 연결 방식
연결 수가 가장 적은 서버에 네트워크 연결방향을 정한다. 동적인 분산 알고리즘으로 각 서버에 대한 연결 수를 동적으로 카운트하고, 동적으로 변하는 요청에 대한 부하를 분산시킨다.