Infra & Tools/Docker&K8s

로드벨런서 역할 및 특징

sung.hyun.1204 2022. 8. 18. 14:20

 

 

서버가 클라이언트의 요청에 일관 되게 답변을 줘야한다.

 

일관이라는것은 네트워크 응답 속도 뿐만 아니라 도메인 , 서버에 요청한 데이터 등 다양한것이 있다.

 

사진 :https://m.post.naver.com/viewer/postView.naver?volumeNo=27046347&memberNo=2521903

 

i3->i7 : scale up ,  i3 x 1 -> i3 x 2  :scale-out

 

로드밸런서 트레픽의 부하를 분산 하는 역할도 있지만.  서버를 늘리는 scale out , 서버의 성능을 scale up 등이 있다.

 

 

로드밸런싱 알고리즘 

1. 라운드로빈 방식(Round Robin Method)

 

-서버의 성능이 동일 하거나 비슷할때 사용 하는 방식 , 클라이언트의 요청이 들어 오는 순서대로 분배를 한다.

 

2.  가중 라운드로빈 방식(Weighted Round Robin Method)

- 서버의 성능이 상이할때  주로 사용한다 ,각각의 서버마다 가중치를 매기고 가중치가 높은 서버에 클라이언트 요청을 우선적으로 배분합니다

 

3. IP 해시 방식(IP Hash Method)

 

-클라이언트의 IP 주소를 특정 서버로 매핑하여 , 사용자가 항상 동일한 서버로 연결되는 것을 보장합니다. 

: 배포시마다 변경되는 ip 주소를 client 에서는 동일한 커스텀 도메인 ex) www.naver.com  와 같이 들어가게 도와 준다.

 

 

 

----------------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------------------

 

 

부하 분산 처리로 주로 사용되는 것은 : L4 로드밸런싱과 L7 로드밸런싱 이라 한다.

OSI 7 Layer 의 기준으로  L1,L2,,L7 와 같이 있으며

 

 

OSI 7 Layers

 

상위 계층으로 갈 수록 정교한 방식의 로드 벨런싱이 가능하며 하위의 방식을 포함한다.

 

AWS 

 

L4LB : NLB

 

Transport 계층을 사용, IP 주소와 포트 번호 부하 분산이 가능

 

(Network Load Balancer)

  • Client IP와 서버사이에 서버로 들어오는 트래픽은 Load Balancer를 통하고 나가는 트래픽은 Client IP와 직접 통신합니다.
  • NLB는 할당한 Elastic IP 를 Static IP로 사용이 가능하여 DNS Name과 IP주소 모두 사용이 가능합니다.
  •  IP주소 + 포트번호를  보고 스위칭합니다.

 데이터 안을 보지 않고 패킷레벨에서만 로드를 하기 때문에 속도가 빠르고 효율이 높고 , 가격이 저렴 합니다

 

 

 

L7LB :ALB

Application 계층을 사용, URL 또는 HTTP 헤더에서 부하 분산이 가능

(Aplication Load Balancer)

  • Client IP와 서버사이에 들어오고 나가는 트래픽이 모두 Load Balancer 와 통신합니다. (Reverse Proxy)
  •  IP주소 + 포트번호 + 패킷 내용을 보고 스위칭합니다.
  • ALB/CLB는 IP 주소가 변동되기 때문에 Client 에서 Access 할 ELB의 DNS Name을 이용하거나 NLB 를 앞에 둡니다.
  •  L7단을 지원하기 때문에 SSL ((Secure Sockets Layer)적용이 가능합니다.

 

CLB : ec2 instance 의 LB,,,,-> 지금은 거의 사용 x