AWS/실습

NLB를 통한 로드 밸런싱

이덩우 2022. 11. 13. 21:18

NLB 로드 밸런서를 생성하여 UDP 프로토콜 중 SNMP 서비스에 대한 부하 분산을 해보자.

SNMP는 Simple Network Management Protocol의 약자로 네트워크 관리를 위한 규약이다.

OID(Object Identifier)라는 값을 호출하여 시스템에 대한 정보를 파악할 수 있다.

SNMP는 UDP 161포트를 사용한다.

NLB 생성과정은 다음과 같다.

로드밸런서 생성 -> NLB 선택 -> 이름 지정 및 인터넷 경계 선택 -> 리스너에 UDP선택 및 포트번호 161 지정

-> VPC를 ELB-VPC로 지정하고 가용영역 2개 모두 체크 후 서브넷 지정 -> 새 대상 그룹 생성 -> 이름 지정 및

프로토콜 UDP 지정 후 포트번호 161 설정 -> 상태검사 프로토콜은 HTTP로 지정 -> 고급 상태 검사 설정에서

포트 재정의 후 80으로 지정 -> 생성한 대상 그룹 선택 후 NLB 생성완료

상태 검사 프로토콜을 HTTP로 지정하는 이유는, 기본적으로 UDP는 단방향 통신이기 때문에 상태 검사 프로세스에 적합하지 않고, 현재 ELB-EC2-1,2 모두 HTTP 서비스가 작동중이므로 HTTP로 설정한다.

생성 후 NLB의 DNS를 복사하고 My-EC2에 SSH 접근을 해 SNMP 서비스를 확인한다.

snmpget 명령어로 NLB DNS 주소로 시스템 이름을 요청하면 ELB-EC2-1,2가 번갈아 응답한다.

추가로, NLB는 클라이언트IP(출발지IP)를 보존하지만, ALB는 클라이언트IP를 보존하지 않고 자신의 로컬 IP로 대체하여 전달하는 차이가 있다.

--> 클라이언트 IP를 보존하지 않으면, 서버 입장에서는 어떤 대상이 접근했는지 알 수가 없다.

ALB에서 이 문제를 해결하기 위해 X-Forwarded-For 헤더라는 곳에 클라이언트 IP 정보를 담아서 전달한다.

 

 

 

출처 : 따라하며 배우는 AWS 네트워크 입문