BLOG

Network Load Balancer, UDP 로드 밸런싱 기능 지원 (서울 리전 포함)
작성일: 2019년 8월 1일

Network Load Balancer는 사용자 개입 없이 높은 처리량과 극도로 낮은 지연 시간을 유지하면서 초당 수천만 건의 요청을 처리하도록 설계되었습니다. (자세한 내용은 새로운 Network Load Balancer – 자동 확장을 통해 초당 수백만 건의 요청 처리 게시물 참고해 주세요.)

 

2017년 후반 이 서비스가 출시된 이후 고객의 요청에 따라 다수의 새로운 기능이 추가되었습니다. 예를 들어 교차 영역 로드 밸런싱리소스 기반 및 태그 기반 권한 지원, AWS 관리형 VPN 터널사용 지원, AWS Elastic Beanstalk 콘솔을 사용한 Network Load Balancer 생성 기능리전 간 VPC 피어링 지원 및 TLS 종료 기능 등이 있습니다.

 

 

UDP 로드 밸런싱

 

고객의 많은 요청을 받았던 기능인 UDP 트래픽 로드 밸런싱이 지난 6월 24일 새로 추가되었습니다. 이제 Network Load Balancer를 통해 온라인 게이밍, IoT, 스트리밍, 미디어 전송 및 네이티브 UDP 애플리케이션에 쓰일 연결 없는 서비스를 배포할 수 있습니다. DNSSIPSNMPSyslogRADIUS 및 기타 UDP 서비스를 자체 데이터 센터에서 호스팅하고 있으시다면 이제 이러한 서비스를 AWS로 이전할 수 있고, AAA(인증, 권한 부여 및 과금)를 처리하는 서비스도 배포할 수 있습니다.

 

뿐만 아니라 UDP 트래픽을 수집할 프록시 서버 플릿을 유지할 필요가 없고 TCP 트래픽과 UDP 트래픽에 동일한 로드 밸런서를 사용할 수 있습니다. 이러한 기능들 덕분에 결과적으로 아키텍처를 간소화하고, 비용을 절감하고, 확장성을 개선할 수 있게 됩니다.

 

 

UDP Network Load Balancer 생성하기

 

평소와 마찬가지로 콘솔, CLI(create-load-balancer), API(CreateLoadBalancer) 또는 CloudFormation 템플릿(AWS::ElasticLoadBalancingV2::LoadBalancer)을 사용하여 UDP 지원 Network Load Balancer를 생성할 수 있습니다. 콘솔에서는 원하는 로드 밸런서를 선택할 수 있습니다. [Network Load Balancer] 아래에서 [Create] 버튼을 클릭합니다.

 

 

로드 밸런서 이름을 지정하고 프로토콜 메뉴에서 [UDP]를 선택한 후 포트(Syslog의 경우 514)를 선택합니다.

 

 

 

이미 us-east-1b와 us-east-1c에 적당한 EC2 인스턴스가 있으므로 아래와 같은 AZ를 사용하도록 하겠습니다.

 

 

 

이제 포트 514에서 UDP 프로토콜에 대한 대상 그룹을 설정합니다.

 

 

 

인스턴스를 선택하고 [Add to registered]를 클릭합니다.

 

 

 

다음 페이지에서 설정을 검토합니다. 새로운 UDP 로드 밸런서가 1분 전후로 트래픽을 수락할 준비가 되었습니다. (준비되면 상태가 [provisioning]에서 [active]로 전환됨).

 

 

 

EC2 인스턴스를 중앙 집중식 Syslogd 서버로 구성하여 테스트를 시작하겠습니다. 인스턴스의 구성 파일(/etc/rsyslog.conf)을 편집하여 포트 514에서 수신하도록 변경하고 서비스를 다시 시작합니다.

 

 

 

다른 EC2 인스턴스를 시작하고 NLB 엔드포인트를 사용하도록 구성합니다.

 

 

 

서버에서 로그 항목을 볼 수 있습니다. 테스트에 사용된 인스턴스는 ip-172-31-29-40입니다.

 

 

 

간단한 구성 변경으로 작업이 완료되었습니다. UDP를 사용하여 서비스 상태를 확인하는 것은 의미가 없으므로 대신 [override]를 클릭하고 포트 80에 상태 검사를 지정했습니다.

 

 

 

물론 실제 상황에서 사용자들은 TCP 스타일의 상태 검사를 서비스에 구축하고 싶어할 겁니다. 로그 메시지를 내구성이 매우 뛰어난 형태로 중앙에 저장하기 때문에 저 역시도 Syslog의 사용자 지정 구현을 실행하려 할 것입니다.

 

 

주요 사항

 

다음으로는, 이 중요하고 새로운 NLB 기능에 대해 알아두셔야 할 몇 가지 사항들입니다.

 

지원되는 대상 – Network Load Balancer에서 UDP는 인스턴스 대상 유형에 대해 지원됩니다. IP 대상 유형 및 PrivateLink는 현재 지원되지 않습니다.

 

상태 검사 – 앞서 설명했듯이 상태 검사는 TCP, HTTP 또는 HTTPS를 사용하여 수행되어야 합니다.

 

다중 프로토콜 – 단일 Network Load Balancer로 TCP 트래픽과 UDP 트래픽을 모두 처리할 수 있습니다. 개별 포트를 사용하기만 하면 다른 수신기를 기존 로드 밸런서에 추가하여 UDP를 지원할 수 있습니다. DNS와 같이 TCP와 UDP를 동일한 포트에서 지원해야 하는 상황에서는 다중 프로토콜 대상 그룹과 다중 프로토콜 수신기를 설정하면 됩니다. (수신기 유형과 TargetGroup에 대해서는 TCP_UDP를 사용).

 

새로운 CloudWatch 지표 – 지정된 Network Load Balancer에서 TCP, UDP 및 TLS 수신기를 통해 처리되는 전체 트래픽을 기존 CloudWatch 지표(ProcessedBytesActiveFlowCount 및 NewFlowCount)로 나타낼 수 있습니다.

 

 

정식 출시

 

해당 서비스는 현재 이용 가능하며 모든 AWS 리전에서 사용을 시작할 수 있습니다. 요금은 Elastic Load Balancing 요금 페이지를 참고해 주십시오.

 

 

 

원문 URL: https://aws.amazon.com/ko/blogs/aws/new-udp-load-balancing-for-network-load-balancer/

 

** 메가존 클라우드 TechBlog는 AWS BLOG 영문 게재 글 중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역 및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS 페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.