Load Balancing?
로드 밸런싱은 부하분산으로 여러 중앙처리장치 또는 저장장치같은 컴퓨터 자원에게 작업을 나누는 것을 의미한다.
로드밸런싱을 하게되면 가용성 및 응답 시간을 최적화 할 수 있다.
쉽게 요약하자면 서버에 부하를 분상해주는 장치 또는 기술이다.
클라이언트의 수가 늘게 되면 기존 서버로는 서비스가 불가능해지고, 해당 트래픽을 대처하기 위해서는 이전 글에 정리를 했던 Scale up과 Scale out 두 종류가 있다.
다시 돌아와서 로드밸런싱에는 여러가지 알고리즘이 존재한다.
Round Robin
서버에 들어온 요청을 순서대로 각 서버에 균등하게 분배하는 방식이다.
요청을 순서대로 분배하기 때문에 여러 서버가 동일한 스펙, 서버와 연결이 오래 지속되지 않을 경우 접합하다.
평균적으로 다른 알고리즘에 비해 빠르다.
로드 밸런서 종류
OSI 7계층의 각 Layer마다 L1로드밸런서 부터 L7로드밸런서 까지 존재한다.
한 서버에 다수의 서버프로그램을 운영할 경우 L4이상의 로드 밸런서를 사용해야 한다.
L4와L7를 가장 많이 활용하는데, L4부터는 포트 정보로 로드를 분산할수 있기 때문이다.
L4?
L4는 전송계층(Transport Layer)에서 사용하는 로드밸런서로 Round Robin방식을 사용한다.
네트워크 계층의 IP/IPX 나 전송계층의 TCP/UDP의 정보를 바탕으로 부하를 분산시킨다.
패킷 레벨에서 분산을 하기 때문에 속도와 효율이 빠르다.
※IP/IPX, TCP/UDP는 각 계층의 프로토콜이다.
단점으로는 섬세하게 하우팅이 불가능하고 ip가 수시로 바뀌면 연속적인 서비스를 제공하기 어렵다.
L7?
L7은 응용계층(Application Layer)에서 사용하는 로드밸런서로 TCP/UDP정보와 HTTP의 URL,FTP의 파일명이나 쿠키등을 바탕으로 서버의 트래픽(로드)을 분산한다.
패킷 내용을 확인하여 해당 내용에 따라 특정 서버에 분배하는 것이다. 즉, 클라이언트의 요청을 세분화하여 서버에 전달하는 것이다.
L7은 특정 패턴을 가진 바이러스를 감지하여 네트워크를 보호 할수있어 DoS/DDoS와 같은 비정상적인 트래픽을 필터링 할수있어 보안분야에서도 활용한다.
단점으로 패킷을 내용을 복호화 해야하기 때문에 많은 비용이 든다.
(로드밸런싱 알고리즘은 좀더 공부하고 업데이트 하겠습니다.)
얼마전 공부를 위해 aws를 사용하여 더미 시스템을 만들었는데, 조만간 aws에 대해서 글을 써보도록 하겠습니다.
'Server' 카테고리의 다른 글
[AWS구축] 아마존 웹 서비스 AWS - AWS EC2 기본 설정 1 (RDS-Mysql&workbench연동) (0) | 2021.02.18 |
---|---|
[AWS구축] 아마존 웹 서비스 AWS - AWS EC2 기본 설정 1 (EC2와 RDS) (0) | 2021.02.16 |
[AWS구축] 아마존 웹 서비스 AWS - 계정 만들기 (0) | 2021.02.16 |
[네트워크]서버확장(Scale Out, Scale Up) (0) | 2021.02.14 |