티스토리 뷰

Load Balancing, L3,L4 그리고 L7.pptx


일반적으로 웹 서비스는 아래 그림처럼 동작 한다.


만약 서버가 여러 대라면 어떻게 될까?
사용자 입장에서는 어느 서버에 요청을 보내야 할 지 알 수 없다. 그래서 보통 L4 Switch 라는 것을 중간에 두고 Load Balancing 작업을 하게 된다.


이 때 VIP(Virtual IP) 인 가상IP 를 사용하게 되고, 이는 사용자가 여러 대의 장비를 하나의 장비처럼 사용할 수 있도록 그룹핑을 해 준다고 생각할 수 있다.
즉, 사용자는 VIP 로 요청을 하게 된다고 할 수 있다.
(보통 Domain 으로 호출하지만, DNS 에서 VIP 를 반환해 주도록 설정한다)

그렇다면 하나의 VIP 에 여러 대의 서버가 묶여있는 구조인데. 어떤 방식으로 사용자의 Request 를 분산해 주는 것일까?

Load Balancing 알고리즘

  • Round Robin(순차방식)
    사용자 Request 를 순차적으로 균등하게 서버에 분배하는 방식
  • Least Connection(최소접속방식)
    Open 된 Connection 이 가장 적은 서버로 분배하는 방식
  • Weighted Least Connections(가중치 최소접속방식)
    최소접속방식에서 서버에 대해 가중치를 추가한 것으로 Open 된 Connection 수가 같은 경우 가중치가 높은 서버에게 우선 분배하는 방식
  • Fastest Least Connections(응답시간방식)
  • Adaptive(최소대기방식)
    이 알고리즘은 Open 또는 Pending Connection 을 적게 가지고 있는 서버로 네트웍 커넥션 방향을 지정하는 방식
    Pending Connection 이란? Full TCP Handshake 를 완성하지 않은 것을 의미
  • Fixed(고정방식)
    어떤 서버가 커넥션 요청을 받는지 결정하기 위해 Request 의 Source IP 를 사용하는 방식 

주로 Round Robin 방식이 많이 사용되는 것으로 알고 있다.

L4, L7 스위치라는 용어를 들어 본 적이 있을 것이다.
이는 Load Balancing 을 해 주는 기법이라고 간단히 생각할 수 있다.

이 둘의 차이를 알아보기 전에 OSI 7 계층에 대해서 간단히 알아보자. 


  1. Physical Layer
  2. Data Link Layer
  3. Network Layer
    IP, ICMP 프로토콜 통신, Router 가 있다.
  4. Transport Layer
    TCP, UDP 프로토콜 통신
  5. Session Layer
  6. Presentation Layer
  7. Application Layer
    HTTP, FTP 프로토콜 통신

각 계층에 대한 설명은 참고자료에 있는 링크를 확인하면 좀 더 상세하게 설명하고 있다.

OSI 7 계층에는 어떤 계층들이 있는지에 대해서 알아 보았다.
L4, L7 이라는 용어를 위에서 언급하였다. 그렇다면 L1, L2, L3, L5, L6 이라는 것도 있을까?

모두는 아니지만 존재한다.
여기서는 L2, L3, L4, L7 스위치에 대해서만 알아보자.

L2
  • 가장 흔히 볼 수 있는 스위칭 방식
  • Packet 의 MAC 주소를 기반으로 스위칭
  • 브릿지나 허브 등이 있다.
  • 장단점
    • 구조가 간단하며, 신뢰성이 높다
    • 가격이 저렴하며, 성능이 높다
    • Broadcast 패킷에 의해 성능 저하가 발생
    • 라우팅 등 상위 레이어 프로토콜 기반으로 스위칭 불가

L3
  • 포트 간 패킷 스위칭을 위해 IP 나 IPX 주소를 기반으로 스위칭
  • 특정 프로토콜을 사용하는 패킷에 대해 스위칭 가능
  • L2 에 라우팅(Routing) 기능이 추가
  • 라우터(Router) 가 있다.
  • 장단점
    • Broadcast 트래픽으로 전체 성능 저하를 막을 수 있다
    • 트래픽 체크, 가상 랜 등의 많은 부가 기능 제공
    • 특정 프로토콜을 이용해야 스위칭할 수 있다.

L4

  • TCP/IP 프로토콜을 기반으로 스위칭
  • Port 번호 기반 스위칭 지원
  • 여러 대의 서버를 1대처럼 묶을 수 있는 부하 분산 기능 제공(VIP - Load Balancing 기능)
  • 주로 Round Robin 방식 사용

L7

  • L4 보다 상위 계층인 Application Layer 에서 동작
  • Application 별로 Load Balancing 가능


정리해보면 아래와 같다


  • L2 는 MAC 주소 기반 스위칭
  • L3 는 IP 주소 기반 스위칭
  • L4 는 IP 주소 + Port 번호 기반 스위칭
  • L7 는 IP 주소 + Port 번호 + 패킷 내용 기반 스위칭


결론

서비스를 만들다보면 네트웍 구조를 적절히 구성할 필요가 있다. L4 또는 상위인 L7 스위치를 적용하면 만능이 될까?
꼭 그렇진 않다. L4와 L7 스위치 또한 장비이다. 다시 말해 스위치 장비도 죽을 수 있는 이슈가 있다.
이를 위해 이중화를 할 수 도 있고, Hardware 가 아닌 Software Load Blancing 을 사용할 수 도 있다.
정답은 없지만, 서비스의 중요도에 맞게 사용하면 될 것 같다는 개인적인 생각이다.(애매한 답은 싫어하지만, 이게 정답이다 ㅠ)


* 몇 이미지는 참고자료에 나열할 페이지에서 가져왔습니다.

참고자료
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함