AWS 네트워크 로드 밸런서(NLB) 이해

로드 밸런서는 확장 및 축소에 대해서만 생각하면 되지만 더 자세히 살펴보겠습니다.

  • 크게 하다 : 서버를 더 빠르게 실행하기 위해 하드웨어 성능을 높이는 방법.
  • 확장 : 하나의 서버가 아닌 여러 서버에 작업을 분할하는 방법.

로드 밸런서는 7개의 OSI 계층 중 4번째 계층인 전송 계층에 해당하며 송신자와 수신자 사이의 논리적 연결을 담당하는 계층입니다.
송신자와 수신자가 데이터를 교환하기 위해서는 연결(이하 연결)이 필요하지만 연결은 네트워크에서 긴 줄처럼 존재하는 것이 아니라 발신자와 수신자만이 알 수 있는 논리적 존재를 의미한다.
수화기.
발신자와 수신자 모두 알고 있기 때문에 네트워크에 연결이 있는 것처럼 표현합니다.

전송 계층에 속한 두 프로토콜 TCP 및 UDP는 이 연결 설정을 담당합니다.

TCP는 3방향 핸드셰이크를 통해 송신자와 수신자 간의 데이터 교환을 위한 최적의 상태를 제공합니다.

송신자와 수신자 모두 데이터 송수신이 가능한지, 한 번에 얼마나 많은 데이터를 보낼 수 있는지, 데이터를 받을 때 얼마나 많은 데이터를 받을 수 있는지를 지속적으로 확인합니다.
또한 수신자가 데이터를 수신하는 동안 수신자의 버퍼가 오버플로되어 일부 데이터가 손실되면 재전송을 요청합니다.
신뢰할 수 있는 연결이라고 하는 완벽한 데이터 송수신에 많은 관심을 기울이고 있습니다.
데이터를 완전하고 올바른 순서로 수신하는 것을 강조하는 프로토콜은 TCP를 기반으로 합니다.

TCP와 달리 UDP는 안정적인 연결을 보장하지 않습니다.
송신자가 수신자에게 데이터를 보낼 때 제대로 전송되었는지 확인하지 않고 데이터를 보낸 후 바로 다음 데이터를 보낸다.
UDP는 데이터 순서와 수신 확인보다는 빠른 실시간 전달을 강조하는 프로토콜입니다.


속도보다는 보안에 따라 차이가 있는지 쉽게 알 수 있습니다.

이러한 TCP 및 UDP를 이해하고 사용하는 로드 밸런서는 일반적으로 L4 스위치 또는 L4 로드 밸런서라고 합니다.

NLB, ALB, ELB

네트워크 로드 밸런서(NLB) 네트워크 로드 밸런서

AWS 인프라에는 ALB와 NLB가 포함됩니다.

그 중 NLB는 네트워크가 연결된 네트워크 레이어(Layer 3)와 혼동될 수 있지만 NLB는 레이어 4에 속합니다.

초당 수백만 건의 요청을 처리할 수 있습니다.
로드 밸런서는 연결 요청을 받으면 기본 규칙의 대상 그룹에서 대상을 선택합니다.
리스너 구성에 지정된 포트에서 선택한 대상에 대한 TCP 연결을 열려고 시도합니다.

OSI-7계층에서 4계층인 전송계층을 다룬다는 것은 위 5계층, 6계층, 7계층의 프로토콜을 이해하지 못한다는 뜻이다.
ALB(Application Load Balancer)는 계층 4의 TCP와 계층 7의 HTTP, HTTPS 및 WebSocket을 이해하고 처리할 수 있습니다.
다시 말해
이것은 많은 시스템 리소스를 소비한다는 것을 의미합니다.
그러나 NLB는 레이어 4 이상의 프로토콜을 이해할 필요 없이 TCP와 UDP만 이해하기 때문에 ALB보다 시스템 리소스를 적게 사용합니다.
덜 걱정하면서 NLB는 ALB보다 더 많은 트래픽을 처리할 수 있으며 우수한 성능을 보장합니다.

네트워크 부하 분산기의 주요 기능

– TCP/UDP 기반 라우팅

NLB는 TCP와 UDP를 이해하고 사용자와 EC2 인스턴스 간의 논리적 연결을 생성하는 데 도움을 줍니다.
물론 여기에는 로드 밸런싱도 포함됩니다.
로드 밸런싱을 수행하는 동시에 사용자와 EC2 인스턴스 간의 연결 설정을 돕고 연결을 소유하고 관리합니다.

– SSL 인증서(TLS)를 탑재할 수 있습니다.

NLB는 ALB와 같은 SSL 오프로드도 수행할 수 있습니다.
암호화된 통신 협상을 완료하고, 암호화된 패킷을 교환하고, EC2와의 통신에서 일반 텍스트를 송수신하기 위해 EC2 인스턴스를 대신하여 SSL 핸드셰이크가 수행됩니다.
이렇게 하면 EC2 인스턴스의 부하가 줄어듭니다.

– 로드 밸런싱 방식

NLB의 로드 밸런싱 방식은 5개의 튜플(소스 IP 주소, 소스 포트, 대상 IP 주소, 대상 포트, 프로토콜)을 기반으로 하는 흐름 해시 알고리즘입니다.
TCP는 5튜플 외에 TCP 시퀀스 번호를 사용합니다.
로드 밸런싱은 흐름 해시 알고리즘을 사용하여 이루어지지만 5-튜플에서 정보의 일치/불일치가 연결 생성의 기준이 되는 것 같습니다.
따라서 5-tuple 정보 중 하나라도 다른 경우 새로운 요청으로 간주하고 로드 밸런싱을 수행하여 새로운 연결을 생성합니다.

– 고정 IP 제공

NLB의 가장 큰 특징은 고정 IP를 가지고 있다는 것입니다.
사설 IP 뿐만 아니라 공인 IP도 고정 IP로 제공됩니다.
IP에 대한 접근 제어를 하고자 한다면 변경 불가능한 IP가 매우 중요한 요소가 됩니다.
반면 ALB의 IP는 지속적으로 변하기 때문에 ALB의 공인 IP를 대상으로 ACL(액세스 제어)을 시행하는 네트워크 장비(예: 방화벽)는 매우 어렵습니다.

– 소스 IP NAT 및 트래픽 흐름

NLB에는 ALB에 없는 또 다른 기능이 있습니다.
빨리 소스 IP NAT 없음그리고 때문에 트래픽 흐름 특이점보지마. 지금까지 AWS Application Load Balancer에 대해 알아보기 #1ALB에서는 “프록시 서버(이하 프록시 서버)”로 작동하며 모든 트래픽 흐름(이하 트래픽 흐름)은 ALB를 거쳐야 합니다.
나는 이것이 일어날 것이라고 말했다.
하지만 NLB는 모든 트래픽 흐름을 제어하지 않으며 ALB와 같은 IP NAT를 획득하지 않습니다.

즉, NLB는 직접 서버 반환(DSR)근처의 교통 흐름을 보여줍니다.

– 보안 그룹

ALB와 달리 NLB에는 보안 그룹이 없습니다.
즉, NLB의 네트워크 인터페이스(이하 네트워크 인터페이스)에는 보안 그룹이 적용되지 않기 때문에 보안 그룹별 트래픽 제어가 불가능하다.
이는 AWS 내부 사정 때문인 것으로 추정된다.

참조 – https://aws-hyoh.entry/AWS-Network-Load-Balancer-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED% 95%98%EA%B8%B0