Hi, There!
안녕하세요, 바오밥입니다.
목차
- 개요
- 본문
- Reference
개요
저번에 Proxy와 함께 정리하려 했던 Load Balancer를 추가적으로 정리해볼까 합니다.
Load Balancer가 왜 필요한지, 어떤 것인지 한 번 알아보도록 하겠습니다.
본문
Load Balancer가 뭘까요?
Load Balancer란 Load Balancing을 수행하는 무언의 매체일 것 입니다.
즉 Load Balancing을 먼저 이해해 보도록 하겠습니다.
Load Balancing의 이해
Load Balancing은 한국어로 부하 분산입니다.
즉 서버로 인입되는 부하를 분산하는 것을 의미합니다.
이때 서버에 인입되는 부하의 예로 네트워크 트래픽을 들 수 있습니다.
Load Balancing이 필요한 이유
서비스 극초기 테스트 모델의 경우 클라이언트의 요청 수가 많지 않아 1대의 서버로도 정상적인 운용이 가능합니다.
그러나 서비스를 성장시키면서 우리는 대부분 아래와 같은 상황을 맞닥뜨리게 될 것입니다.
- 서비스 성장을 위해 이벤트를 하는 경우
- 서비스 모델에 따라 특정 시간대에 많은 트래픽이 몰리는 경우
- 특정 서버 장애로 인해 정상적인 서비스 운용이 불가능한 경우
- 서비스가 성장함에 따라 사용자 수가 급증한 경우
서버는 급증한 트래픽에 응답을 하기 위해 열심히 애를 써보지만, 결국에는 서버가 다운될 것입니다.
이에, 큰 도움을 줄 수 있는 기술이 바로 'Load Balancing' 입니다.
다른 말로는 'Scale-Out' 라고도 합니다.하나의 Server로 처리하는 것이 아닌 여러 대의 Server로 일을 나눠 처리하는 방법입니다.
Load Balancing을 통해 얻을 수 있는 것
Load Balancer를 구축함에 따라 얻을 수 있는 것들을 간략하게 정리해 보았습니다.
- 경우에 따라 하드웨어 향상 비용보다 서버 대수 증축이 더 저렴한 비용이 듭니다.
- 여러 대의 Server가 존재하기 때문에 특정 Server에서 에러가 난 경우에도 무중단 서비스 제공이 가능합니다.
다양한 Load Balancing의 종류
Load Balancing은 단순히 서버를 증축하는 개념이 아닙니다.
단순히 서버를 증축한다는 개념은 Scale-Out이 더 가까울 것입니다.
Load Balancing은 OSI 7계층을 기준으로 다양한 계층에서 부하 분산을 도와줍니다.
- 1계층 (물리 계층) : 하드웨어인 서버 수 증가
- 2계층 (데이터 링크 계층) : Mac 주소를 바탕으로 Load Balancing
- 3계층 (네트워크 계층) : IP 주소를 바탕으로 Load Balancing
- 4계층 (전송 계층) : Transport (IP, Port)를 바탕으로 Load Balancing (TCP, UDP)
- 7계층 (응용 계층) : 사용자의 요청을 바탕으로 Load Balancing (HTTP, HTTPS, FTP)
Load Balancer의 분산 기준
Load Balancer가 부하 분산을 수행한다는 것은 이제 알았습니다.
그렇다면 어떤 기준으로 부하 분산을 수행하고 있는걸까요?
그 기준을 아래와 같이 3가지로 정리해 보았습니다.
- 1) Round Robin
- 단순히 요청들을 한 번씩 나눠 주는 방식입니다. - 2) Least Connections
- 연결 개수가 가장 적은 서버를 선택하는 방식입니다.
- 트래픽으로 인해 세션이 길어지는 경우 많이 사용되는 방식입니다. - 3) Source
- 사용자의 IP를 Hashing하여 분배하는 방식입니다.
- 한번 Hashing 된 사용자는 항상 같은 서버로 연결되는 것을 보장하는 방식입니다.
Load Balancer 장애 대비
이제 Load Balancer를 통해 서버들의 부하를 나눠 처리하게 해준다는 것은 깨달았습니다.
그렇다면, 만약에 Load Balancer가 장애가 난다면 어떻게 해야할까요?
Load Balancer를 2개의 서버로 구축하여 Failover 방식으로 대처해야 합니다.
Load Balancer도 결국에는 Server이기 때문에 이중화 작업을 진행해야 한다고 생각합니다.
Reference
'Theory > Infrastructure & Network' 카테고리의 다른 글
웹 표준과 웹 접근성 (0) | 2021.07.30 |
---|---|
Broswer Rendering의 이해 (0) | 2021.07.28 |
POP3와 IMAP의 차이 (0) | 2021.07.19 |
Forward Proxy, Reverse Proxy의 이해 (0) | 2021.07.16 |
WAS와 Web Server의 차이점 (0) | 2021.07.14 |