이두잉의 AWS 세상

AWS NLB(Network Load Balancer)

2018.03.07 17:46 - leedoing leedoing

AWS NLB는 AWS Load Balancer에 Elastic IP(고정)을 부여할 수 있는 현재?까진 유일한 Load Balancer

L4 수준(TCP)으로 지원합니다. 따라서 http cookie 방식의 sticky는 지원하지 않으며, tcp 세션을 350초 유지


LB와 묶일 수 있는 대상

1. VPC 내의 EC2 Instance

2. AWS 다른 대역의 리소스 혹은 VPN, DX로 터널링 된 Private IP 대역

(10.0.0.0/8, 100.64.0.0/10, 172.16.0.0/12, 192.168.0.0/16만 가능)


1. Instance Taget Group


2. IP Taget Group


둘의 차이점은 1번과 같은 Instance ID를 이용한 형태로 Taget Group 지정 시 DSR(Direct Server Return) 방식으로 동작하여 Response 시에 EC2 Instance는 직접 Client에게 패킷을 전달

(따라서 EC2 Instance는 IGW, NAT를 통한 Outbound 통신이 가능해야 하는 제약 조건이 있음)


그에 반해 2번과 같이 Private IP로 지정한 Target Group의 경우 기존 방식대로 Request/Response가 모두 LB를 경유하기 때문에 Outbound 통신이 되지 않는 Private 구간에서도 NLB를 이용하여 서비스가 가능. 따라서 Private IP를 타겟으로 이용할 경우 LB 모니터링에 주의


2번 제약은 아무래도 DX, VPN 터널링 구간까지 VM과 통신을 위한 제약으로 발생되는 것이라 추측...


NLB Blog: https://aws.amazon.com/ko/blogs/korea/new-network-load-balancer-effortless-scaling-to-millions-of-requests-per-second/

NLB Document: https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/introduction.html


테스트 중 Target에 Instance과 Private IP 사용 시 동작 방식이 달라 삽질한 뒤 블로깅...


Document에 


"인스턴스 ID를 사용하여 대상을 지정하면 해당 인스턴스의 기본 네트워크 인터페이스에 지정된 기본 프라이빗 IP 주소를 사용하여 트래픽이 인스턴스로 라우팅됩니다. IP 주소를 사용하여 대상을 지정하면 하나 이상의 네트워크 인터페이스에서 프라이빗 IP 주소를 사용하여 트래픽을 인스턴스로 라우팅할 수 있습니다. 그러면 한 인스턴스의 여러 애플리케이션이 동일한 포트를 사용할 수 있습니다. 각 네트워크 인터페이스에는 자체 보안 그룹이 있을 수 있습니다.  

인스턴스 ID를 사용하여 대상을 지정하는 경우 클라이언트의 원본 IP 주소가 보존되고 애플리케이션에 제공됩니다. IP 주소로 대상을 지정하는 경우 원본 IP 주소는 로드 밸런서 노드의 프라이빗 IP 주소입니다." 


와 같은 내용은 있으나... 동작 방식을 직관적으로 설명해줬으면....


감사합니다.



'Compute > ELB' 카테고리의 다른 글

AWS ELB Backend Connection Errors  (0) 2018.05.17
AWS NLB(Network Load Balancer)  (0) 2018.03.07
AWS ELB Pre-warm 신청 양식  (0) 2016.01.25