본문 바로가기
카테고리 없음

AWS에서 NLB(네트워크 로드 밸런서) 설정하기

by 열정루프 2025. 3. 14.
728x90

1. NLB의 개념과 중요성

AWS에서 제공하는 로드 밸런서 중 **NLB(Network Load Balancer)**는 특히 TCP/UDP 트래픽을 처리하는 데 최적화된 서비스입니다. ALB(Application Load Balancer)가 주로 애플리케이션 계층(HTTP/HTTPS)에서 동작하는 반면, NLB는 **4계층(전송 계층)**에서 작동하며, 네트워크 수준에서 빠르고 안정적인 트래픽 분배를 제공합니다. NLB는 고성능과 저지연 특성을 갖추고 있어, 고가용성내구성이 요구되는 애플리케이션에 적합합니다.

NLB는 대규모의 실시간 애플리케이션(예: 게임 서버, 실시간 스트리밍 서비스)과 데이터베이스 클러스터와 같은 시스템에서 중요한 역할을 하며, 대용량의 연결 수를 처리할 수 있는 능력이 특징입니다. 이로 인해 **높은 TPS(Transactions Per Second)**와 같은 큰 부하를 처리해야 하는 환경에서도 뛰어난 성능을 보입니다.

NLB의 주요 특징:

  • TCP/UDP 프로토콜을 지원하여, 4계층에서 트래픽을 분배합니다.
  • 고성능 트래픽 분배로 높은 처리량과 낮은 지연 시간 제공.
  • IP 주소 기반 라우팅: NLB는 고정 IP를 제공하며, 별도의 DNS 없이도 특정 IP로 직접 라우팅이 가능합니다.
  • 글로벌 분산: 여러 AWS 리전에서 분산된 트래픽을 처리할 수 있어 글로벌 서비스를 운영할 때 유용합니다.

2. NLB를 설정하는 과정

NLB를 설정하려면 먼저 몇 가지 필수적인 리소스를 준비해야 합니다. 다음은 NLB 설정을 위한 단계별 과정입니다.

Step 1: NLB 생성하기

  1. AWS Management Console에 로그인 후, EC2 대시보드로 이동합니다.
  2. 로드 밸런서 섹션에서 Network Load Balancer 생성을 클릭합니다.
  3. NLB의 이름을 지정하고, VPC서브넷을 선택합니다. NLB는 여러 서브넷을 지원하므로, 고가용성을 위해 여러 가용 영역(AZ)을 선택하는 것이 좋습니다.
  4. 리슨 포트를 설정합니다. 기본적으로 TCP 포트 80 또는 443을 많이 사용하지만, 필요에 따라 다른 포트를 설정할 수 있습니다.
  5. 보안 그룹 설정은 필요하지 않습니다. NLB는 보안 그룹 없이 트래픽을 처리합니다.

Step 2: 타겟 그룹 생성하기

  1. NLB에 연결할 타겟 그룹을 생성합니다. 타겟 그룹은 실제 애플리케이션 서버나 EC2 인스턴스를 포함합니다.
  2. 타겟 그룹의 프로토콜을 TCP 또는 UDP로 선택하고, 헬스 체크를 설정합니다. 헬스 체크는 NLB가 서버의 상태를 확인하여 비정상적인 서버를 트래픽에서 제외할 수 있도록 도와줍니다.

Step 3: NLB와 타겟 그룹 연결

  1. 생성된 타겟 그룹을 NLB와 연결합니다. 이후 NLB는 트래픽을 해당 타겟 그룹으로 라우팅하게 됩니다.
  2. 라우팅 규칙을 설정하여 트래픽을 타겟 그룹으로 분배합니다.

Step 4: 고정 IP 주소 설정 (선택 사항)

  1. NLB는 고정 IP 주소를 제공합니다. 이를 사용하여 DNS 레코드를 설정하거나, 외부 클라이언트에서 직접 IP로 접속할 수 있습니다.
  2. 고정 IP는 AWS 리전 내의 각 서브넷에 대해 하나씩 제공되며, 이를 활용해 보다 안정적이고 직관적인 연결을 할 수 있습니다.

Step 5: Auto Scaling 설정 (선택 사항)

  1. Auto Scaling 그룹을 사용하여 NLB 뒤에서 실행되는 EC2 인스턴스들을 자동으로 확장하거나 축소할 수 있습니다.
  2. 트래픽의 양이 많아지면 자동으로 EC2 인스턴스가 추가되고, 트래픽이 적으면 인스턴스가 제거됩니다. 이를 통해 애플리케이션의 비용 효율성을 높일 수 있습니다.

3. NLB 사용 사례

사례 1: 실시간 트래픽을 처리하는 게임 서버

  • 시나리오: 다수의 사용자들이 접속하는 온라인 게임에서는 빠른 반응 속도와 고성능이 필요합니다.
  • 해결 방법: NLB는 실시간 트래픽을 처리하는 데 뛰어난 성능을 보입니다. 여러 EC2 인스턴스를 타겟 그룹으로 설정하고, 고정 IP를 사용하여 전 세계에서 고속의 접속을 보장할 수 있습니다.

사례 2: 대규모 데이터베이스 클러스터

  • 시나리오: 수많은 읽기/쓰기를 처리해야 하는 대규모 데이터베이스 환경에서는 안정적인 트래픽 분배가 필요합니다.
  • 해결 방법: NLB를 사용하여 데이터베이스 서버 간의 트래픽을 고르게 분배하고, 고가용성을 유지할 수 있습니다. 또한, 헬스 체크 기능을 통해 비정상적인 데이터베이스 인스턴스를 자동으로 제외할 수 있습니다.

4. NLB 사용 시 고려해야 할 점

  • 비용: NLB는 사용량 기반으로 과금되며, 연결 수와 전송된 데이터 양에 따라 요금이 달라질 수 있습니다. 따라서 비용 관리에 유의해야 합니다.
  • 보안: NLB는 자체적으로 보안 그룹을 지원하지 않지만, 보안 그룹을 EC2 인스턴스나 기타 리소스에 적용하여 보안을 강화할 수 있습니다.
  • 성능 최적화: NLB는 저지연 트래픽 분배에 특화되어 있지만, 트래픽 부하가 너무 클 경우 Auto Scaling과 함께 사용하여 성능을 최적화하는 것이 중요합니다.

결론

AWS의 **네트워크 로드 밸런서(NLB)**는 고성능, 고가용성, 저지연의 트래픽 분배 기능을 제공합니다. TCP/UDP 기반의 트래픽을 처리하는 데 최적화되어 있으며, 특히 실시간 애플리케이션과 대규모 데이터베이스 환경에서 강력한 성능을 발휘합니다. NLB를 적절히 설정하고 활용하면, 안정적이고 확장 가능한 인프라를 구축할 수 있습니다. 고정 IP 주소와 Auto Scaling 기능을 사용하면 글로벌 트래픽 분배와 비용 효율적인 인프라 운영이 가능해집니다.

728x90