Amazon Web Services 한국 블로그
Network Load Balancer, UDP 로드 밸런싱 기능 지원 (서울 리전 포함)
Network Load Balancer는 사용자 개입 없이 높은 처리량과 극도로 낮은 지연 시간을 유지하면서 초당 수천만 건의 요청을 처리하도록 설계되었습니다. (자세한 내용은 새로운 Network Load Balancer – 자동 확장을 통해 초당 수백만 건의 요청 처리 게시물 참조)
2017년 후반 출시 이후 고객의 요청에 따라 다수의 새로운 기능이 추가되었습니다. 예를 들어 교차 영역 로드 밸런싱, 리소스 기반 및 태그 기반 권한 지원, AWS 관리형 VPN 터널 사용 지원, AWS Elastic Beanstalk 콘솔을 사용한 Network Load Balancer 생성 기능, 리전 간 VPC 피어링 지원 및 TLS 종료 기능 등이 있습니다.
UDP 로드 밸런싱
오늘 고객이 많이 요청해 주신 UDP 트래픽을 로드 밸런싱하는 기능이 추가됩니다. 이제 Network Load Balancer를 사용하여 온라인 게이밍, IoT, 스트리밍, 미디어 전송 및 네이티브 UDP 애플리케이션에 사용할 연결 없는 서비스를 배포할 수 있습니다. DNS, SIP, SNMP, Syslog, RADIUS 및 기타 UDP 서비스를 자체 데이터 센터에서 호스팅하고 있다면 이제 이러한 서비스를 AWS로 이전할 수 있습니다. AAA(인증, 권한 부여 및 과금)를 처리하는 서비스도 배포할 수 있습니다.
UDP 트래픽을 수집할 프록시 서버 플릿을 유지할 필요가 없고 TCP 트래픽과 UDP 트래픽에 동일한 로드 밸런서를 사용할 수 있습니다. 아키텍처를 간소화하고, 비용을 절감하고, 확장성을 개선할 수 있습니다.
UDP Network Load Balancer 생성하기
평소와 마찬가지로 콘솔, CLI(create-load-balancer
), API(CreateLoadBalancer
) 또는 CloudFormation 템플릿(AWS::ElasticLoadBalancing::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 지표(ProcessedBytes, ActiveFlowCount 및 NewFlowCount)로 나타낼 수 있습니다.
정식 출시
본 기능은 지금 이용 가능하며 오늘부터 모든 상용 AWS 리전에서 사용을 시작할 수 있습니다. 요금은 Elastic Load Balancing 요금 페이지를 참조하십시오.
— Jeff;