0Pricing
AWS Solutions Architect · 강의

ALB, NLB 및 GLB 비교: 무엇을 언제 사용할까요?

Application, Network 및 Gateway Load Balancer의 차이를 이해하고 각각을 적합한 사용 사례에 연결합니다.

ALB, NLB 및 GLB 비교: 무엇을 언제 사용할까요?은(는) CoddyKit의 무료 AWS Solutions Architect 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AWS Solutions Architect 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.

Elastic Load Balancing 개요

Elastic Load Balancing (ELB)은 수신되는 애플리케이션 트래픽을 여러 대상(EC2 인스턴스, 컨테이너, Lambda 함수 또는 IP 주소)에 자동으로 분산합니다. ELB는 관리형 서비스이므로 AWS가 여러 AZ에 걸친 로드 밸런서 자체의 프로비저닝, 확장 및 가용성을 처리합니다.

AWS는 ELB 제품군에서 세 가지 유형의 로드 밸런서를 제공합니다. Application Load Balancer (ALB), Network Load Balancer (NLB), Gateway Load Balancer (GWLB)입니다. 각각 OSI 모델의 서로 다른 계층에서 작동하며 용도에 따라 최적화되어 있습니다.

Application Load Balancer (ALB)

ALB는 OSI 모델의 계층 7(HTTP/HTTPS)에서 작동합니다. HTTP 헤더, 경로, 쿼리 문자열, 호스트 이름 및 쿠키를 검사하여 지능적으로 라우팅을 결정할 수 있습니다. ALB는 콘텐츠 기반 라우팅이 필요한 웹 애플리케이션, 마이크로서비스 및 API 엔드포인트에 적합한 기본 선택입니다.

ALB의 주요 기능은 다음과 같습니다. 경로 기반 라우팅(/api/*를 한 대상 그룹으로, /static/*을 다른 대상 그룹으로 라우팅), 호스트 기반 라우팅(서로 다른 가상 호스트를 서로 다른 백엔드로 라우팅), HTTP 헤더 및 쿼리 문자열 라우팅, WebSocket 지원, HTTP/2 지원입니다. ALB는 EC2 인스턴스, 컨테이너(ECS/EKS), Lambda 함수 및 IP 주소로 라우팅할 수 있습니다.

# Create an ALB
aws elbv2 create-load-balancer \
  --name my-alb \
  --subnets subnet-aaaa1111 subnet-bbbb2222 \
  --security-groups sg-12345678 \
  --type application

Network Load Balancer (NLB)

NLB는 계층 4(TCP/UDP/TLS)에서 작동합니다. 애플리케이션 콘텐츠를 검사하지 않고 IP 프로토콜 데이터를 기반으로 패킷을 라우팅합니다. NLB는 탁월한 성능을 위해 설계되었으며, 매우 짧은 지연 시간(일반적으로 100마이크로초 미만)으로 초당 수백만 건의 요청을 처리합니다.

NLB의 주요 기능은 다음과 같습니다. AZ별 고정 IP 주소(서브넷당 하나의 Elastic IP), TLS 통과(복호화하지 않고 암호화된 트래픽 전달), 클라이언트 IP 주소 보존, UDP 프로토콜 지원(DNS, RADIUS, 게임 서버 등)입니다. NLB는 콘텐츠 기반 라우팅을 수행하거나 HTTP 헤더를 검사할 수 없습니다.

# Create an NLB
aws elbv2 create-load-balancer \
  --name my-nlb \
  --subnets subnet-aaaa1111 subnet-bbbb2222 \
  --type network

Gateway Load Balancer (GWLB)

GWLB는 계층 3(네트워크 계층)에서 작동하며, 타사 가상 네트워크 어플라이언스(방화벽, 침입 탐지 및 방지 시스템(IDS/IPS), 심층 패킷 검사 시스템)를 배포, 확장 및 관리하는 데만 사용됩니다.

GWLB는 GENEVE 프로토콜(포트 6081)을 사용하여 트래픽을 캡슐화하고 어플라이언스 플릿으로 전송합니다. 어플라이언스는 패킷을 검사한 후 동일한 GWLB 엔드포인트를 통해 반환합니다. 소스 VPC에서 라우팅을 변경하지 않아도 트래픽이 투명하게 흐릅니다. 이는 AWS VPC 트래픽 흐름에 중앙 집중식 보안 검사를 삽입하는 표준 패턴입니다.

ALB 사용 사례

다음과 같은 경우 ALB를 선택합니다.

  • HTTP/HTTPS 콘텐츠 기반 라우팅(경로, 호스트, 헤더, 쿼리 문자열)이 필요한 경우
  • 백엔드에 Lambda 함수 또는 ECS 컨테이너가 포함된 경우
  • WebSocket 또는 HTTP/2 연결이 필요한 경우
  • 로드 밸런서 계층에서 웹 애플리케이션 보안을 위해 AWS WAF와 통합하려는 경우
  • 서로 다른 URL 경로에 많은 서비스가 있는 마이크로서비스 아키텍처를 구축하는 경우
  • 로드 밸런서에서 SSL/TLS 종료가 필요한 경우

대부분의 웹 애플리케이션 및 REST API 로드 밸런싱 관련 SAA-C03 시험 문제에서는 ALB가 정답입니다.

NLB 사용 사례

다음과 같은 경우 NLB를 선택합니다.

  • 탁월한 성능(초당 수백만 건의 요청, 밀리초 미만의 지연 시간)이 필요한 경우
  • 파트너 또는 방화벽에서 허용 목록에 추가할 수 있는 고정 IP 주소가 필요한 경우
  • UDP 트래픽(게임, DNS, RADIUS, IoT)을 처리해야 하는 경우
  • 로드 밸런서에서 복호화하지 않고 TLS 통과를 사용하려는 경우(대상까지 종단 간 암호화)
  • TCP 계층에서 클라이언트 소스 IP를 기본적으로 보존해야 하는 경우
  • AWS PrivateLink를 사용하여 다른 VPC 또는 계정에 서비스를 노출하는 경우(PrivateLink에는 NLB가 필요함)

GWLB 사용 사례 및 아키텍처

다음 작업이 필요할 때 GWLB를 선택합니다.

  • 타사 방화벽 어플라이언스(Palo Alto, Fortinet, Check Point)를 네트워크 트래픽 흐름에 삽입하는 경우
  • 모든 인바운드 또는 아웃바운드 트래픽에 대해 VPC 수준에서 심층 패킷 검사를 수행하는 경우
  • IDS/IPS 어플라이언스 플릿을 자동 로드 밸런싱으로 수평 확장하는 경우

아키텍처: 트래픽은 소스 VPC → GWLB 엔드포인트 → 어플라이언스 VPC(GWLB가 이곳에서 어플라이언스 인스턴스 전체에 트래픽을 분산) → 어플라이언스가 트래픽을 GWLB로 반환 → GWLB가 원래 대상에 전달되는 순서로 흐릅니다. 소스와 대상은 중간에서 검사가 수행되는 것을 인식하지 못합니다.

AZ 간 로드 밸런싱

AZ 간 로드 밸런싱은 로드 밸런서 노드가 요청을 수신한 AZ와 관계없이 활성화된 모든 AZ의 등록된 대상 전체에 트래픽을 균등하게 분산합니다. AZ 간 로드 밸런싱을 사용하지 않으면 각 AZ의 노드는 해당 AZ에 있는 대상에만 트래픽을 분산합니다.

ALB는 추가 비용 없이 AZ 간 로드 밸런싱이 기본적으로 활성화되어 있습니다. NLB는 AZ 간 로드 밸런싱이 기본적으로 비활성화되어 있으며, 활성화하면 AZ 간 데이터 전송 요금이 발생합니다. GWLB도 AZ 간 로드 밸런싱이 기본적으로 비활성화되어 있습니다. AZ별 대상 수가 고르지 않을 때는 특정 대상에 트래픽이 집중되는 현상을 방지하기 위해 AZ 간 LB를 활성화합니다.

프로토콜 및 기능 비교

시험 대비 빠른 비교표입니다.

  • OSI 계층: ALB = 7(HTTP), NLB = 4(TCP/UDP), GWLB = 3(IP)
  • 프로토콜: ALB = HTTP, HTTPS, WebSocket, NLB = TCP, UDP, TLS, GWLB = GENEVE를 통한 모든 IP 프로토콜
  • 고정 IP: ALB = 아니요(NLB + ALB 패턴 사용), NLB = 예(AZ당 1개), GWLB = 해당 없음
  • WAF 통합: ALB = 예, NLB = 아니요, GWLB = 아니요
  • Lambda 대상: ALB = 예, NLB = 아니요, GWLB = 아니요
  • 연결 드레이닝: 세 유형 모두 등록 해제 지연을 지원합니다.

AWS WAF와 ALB

ALB는 리전 보호를 위해 AWS WAF와 기본적으로 통합됩니다. 이는 전 세계 엣지 보호를 제공하는 CloudFront의 WAF와는 다릅니다. WAF Web ACL을 ALB에 연결하면 애플리케이션에 도달하기 전에 HTTP 요청을 필터링하여 SQL 인젝션, XSS, 알려진 악성 IP 및 과도한 요청을 보내는 클라이언트를 차단할 수 있습니다.

로드 밸런서 계층에서 보안 검사를 수행하려는 경우(예: CloudFront를 통해 제공되지 않는 API를 보호하려는 경우) ALB + WAF를 사용합니다. ALB에 연결된 WAF Web ACL은 ALB와 동일한 Region에 있어야 하며 REGIONAL scope를 사용해야 합니다. CloudFront WAF는 이와 달리 us-east-1에서 CLOUDFRONT scope가 필요합니다.

PrivateLink와 NLB

AWS PrivateLink는 VPC 피어링, 인터넷 게이트웨이 또는 NAT 없이 한 VPC의 서비스를 다른 VPC 또는 AWS 계정의 소비자에게 노출할 때 NLB를 사용합니다. 서비스 제공자는 서비스 앞에 NLB를 생성하고 VPC Endpoint Service를 생성합니다. 소비자는 자신의 VPC에 서비스를 가리키는 Interface VPC Endpoint를 생성합니다.

트래픽은 AWS의 프라이빗 네트워크를 통해 흐르며 인터넷을 통과하지 않습니다. PrivateLink는 AWS의 SaaS 제공업체가 사용하거나 중앙 집중식 보안 서비스와 같은 공유 서비스를 여러 내부 AWS 계정에 노출할 때 사용하는 표준 패턴입니다.

빠른 확인

이 lesson에서 다룬 AWS Solutions Architect (SAA-C03) 개념에 대한 이해도를 확인해 보세요.

lesson 요약

이 lesson에서는 다음을 배웠습니다. ALB는 콘텐츠 기반 규칙, WAF 통합 및 Lambda 대상을 사용하여 계층 7(HTTP)에서 라우팅합니다. NLB는 고정 IP와 탁월한 처리량을 제공하며 계층 4(TCP/UDP)에서 라우팅합니다. 또한 GWLB는 GENEVE를 사용하여 계층 3에서 가상 네트워크 어플라이언스를 배포합니다. 로드 밸런서를 프로토콜 및 기능 요구 사항에 맞게 선택해야 합니다. 다음 lesson에서는 대상 그룹과 상태 확인을 살펴봅니다.

자주 묻는 질문

“ALB, NLB 및 GLB 비교: 무엇을 언제 사용할까요?” 강의는 무료인가요?

네 — “ALB, NLB 및 GLB 비교: 무엇을 언제 사용할까요?” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AWS Solutions Architect 강의 전체를 잠금 해제할 수 있습니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.

“ALB, NLB 및 GLB 비교: 무엇을 언제 사용할까요?”에서 뭘 배우나요?

Application, Network 및 Gateway Load Balancer의 차이를 이해하고 각각을 적합한 사용 사례에 연결합니다. 브라우저에서 직접 실행하는 실습 코드로 AWS Solutions Architect을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

AWS Solutions Architect을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 AWS Solutions Architect은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“ALB, NLB 및 GLB 비교: 무엇을 언제 사용할까요?” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 AWS Solutions Architect 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 AWS Solutions Architect 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. ALB, NLB 및 GLB 비교: 무엇을 언제 사용할까요?
  2. 대상 그룹 및 상태 확인
  3. 리스너 규칙 및 경로 기반 라우팅
  4. SSL 종료 및 고정 세션
← AWS Solutions Architect(으)로 돌아가기