Azure Load Balancer와 Application Gateway

Azure Load Balancer(L4)와 Application Gateway(L7)의 구조, SKU 선택 기준, TLS 설계 패턴을 비교합니다.

AZ-700 시험에서 부하 분산 파트는 '어떤 서비스를 어느 계층에 배치하는가'를 묻습니다. Azure Load Balancer는 IP와 포트만 보는 L4 분배기고, Application Gateway는 HTTP 헤더와 URL 경로까지 읽는 L7 분배기입니다. 두 서비스는 목적이 다르고, 함께 쓰이는 경우도 많습니다.

Azure Load Balancer: 우체국 분류 컨베이어

우체국 컨베이어 벨트를 생각해보세요. 상자 겉면의 우편번호만 보고 자동으로 구역별 칸으로 밀어 넣습니다. 상자 안에 뭐가 들었는지는 관심 없습니다. Azure Load Balancer가 딱 이 방식입니다. 클라이언트가 접속하는 IP와 포트, 출발지 IP, 프로토콜 다섯 가지 값(5-tuple hash)으로 Backend Pool의 VM 중 하나를 골라 트래픽을 전달합니다.

구성 요소는 네 가지입니다. 은 진입점으로 Public Load Balancer는 공용 IP, Internal Load Balancer는 VNet 프라이빗 IP를 씁니다. 은 트래픽을 받을 VM 묶음이고, 은 프런트엔드·백엔드 포트를 연결합니다. 가 주기적으로 VM 상태를 체크해 비정상 VM을 자동으로 제외합니다.

SKU는 Basic과 Standard입니다. Basic은 소규모 개발·테스트용으로 가용 영역을 지원하지 않습니다. Standard는 Zone-redundant, HTTPS Health Probe, HA Ports를 지원하며 프로덕션 기본값입니다. '고가용성, 가용 영역' 조건이 나오면 Standard를 고릅니다. HA Ports는 Standard Internal Load Balancer 전용으로, 포트 0 설정 시 단일 규칙이 0~65535번 전체를 커버해 NVA 앞단에서 유용합니다.

 

Application Gateway: 백화점 안내데스크

백화점 1층 안내데스크를 상상해보세요. 손님이 '가전제품 찾아요'라고 말하면 5층을, '식품관요'라고 하면 지하 1층을 안내합니다. 말 내용을 듣고 판단하는 겁니다. Application Gateway가 이 역할입니다. HTTP Host 헤더, URL 경로, 쿠키까지 읽어서 어느 Backend Pool로 보낼지 결정합니다.

핵심 구성 흐름은 입니다. Basic Listener는 단일 도메인을, Multi-site Listener는 같은 IP의 여러 도메인을 구분해 각각 다른 Backend Pool로 보냅니다. Routing Rule은 Basic(모든 요청 → 하나의 Pool)과 Path-based( → Pool A, → Pool B) 두 종류입니다.

SKU는 Standard_v2와 WAF_v2입니다. WAF_v2는 Standard_v2에 Web Application Firewall을 추가해 SQL 인젝션, XSS를 OWASP 룰셋으로 방어합니다. '외부 웹 공격을 막아야 한다'는 시나리오면 WAF_v2를 선택합니다.

 

Health Probe: 호텔 도어맨

호텔 도어맨은 주기적으로 각 방의 상태를 확인하고, 준비되지 않은 방으로는 손님을 보내지 않습니다. Application Gateway Health Probe도 같습니다. Backend Pool 서버에 HTTP/HTTPS 요청을 보내 응답 코드(2xx, 3xx)를 확인하고, 비정상 서버를 자동으로 Pool에서 제외합니다.

Azure Load Balancer Health Probe는 TCP, HTTP, HTTPS를 지원하며 기본 설정은 15초 간격, 비정상 임계값 2회입니다. Application Gateway Health Probe는 경로와 기대 응답 코드를 직접 지정할 수 있어 더 세밀합니다. 두 서비스 모두 비정상 VM은 자동으로 제외되고, 복구되면 다시 포함됩니다.

 

SSL Termination과 End-to-End TLS

택배 회사가 물건을 받아 자체 박스로 교체한 뒤 배송하는 장면을 생각해보세요. Application Gateway SSL Termination이 이와 같습니다. 클라이언트와 게이트웨이 사이는 HTTPS, 게이트웨이가 복호화한 뒤 내부 Backend Pool에는 평문 HTTP로 전달합니다. 내부 VNet이 신뢰할 수 있다면 백엔드 TLS 처리 부하를 줄일 수 있습니다.

End-to-End TLS는 클라이언트 HTTPS 복호화 후 백엔드 서버로도 HTTPS로 재암호화해서 전달합니다. '전 구간 암호화'가 나오면 End-to-End TLS를 고릅니다. Azure Load Balancer는 L4 장치라 TLS를 종료하지 않고 포트 443을 그냥 통과시킵니다.

 

AGIC와 AKS 연동

물류 창고 자동 로봇이 주문서를 받아 적절한 선반으로 이동하듯, AGIC(Application Gateway Ingress Controller)는 AKS(Azure Kubernetes Service) Ingress 트래픽을 Application Gateway가 처리하도록 연결합니다. Ingress 객체에 어노테이션을 달면 AGIC가 자동으로 Listener, Routing Rule, Backend Pool을 생성·갱신합니다.

Application Gateway의 WAF와 SSL Termination이 AKS Ingress에 그대로 적용되고, NGINX Ingress Controller가 별도로 필요 없습니다. 'AKS + 웹 방화벽 + Ingress'가 묶인 문제면 AGIC와 WAF_v2 조합이 답입니다. Cookie-based affinity는 세션 쿠키를 발급해 같은 클라이언트 요청을 항상 같은 백엔드 서버로 보냅니다.

 

L4 vs L7: 어느 쪽을 선택하는가

고속도로 요금소는 번호판만 보고 빠르게 통과시킵니다. 공항 출입국 심사대는 여권을 열어 신원을 확인하고 게이트를 안내합니다. Azure Load Balancer가 요금소, Application Gateway가 심사대입니다.

L4 선택: TCP/UDP 모든 프로토콜, HTTP 내용 판단 불필요, NVA 앞단, 내부 서비스 분산 L7 선택: URL 경로 라우팅, 멀티 도메인, WAF, SSL Termination, AKS Ingress

Outbound Rules는 Standard Public Load Balancer에서 VM 인터넷 SNAT를 명시적으로 제어합니다. 기본 포트가 부족할 때 Outbound Rules로 포트 수를 늘립니다. NAT Rules는 특정 프런트엔드 포트를 단일 VM 포트로 직접 매핑하며 SSH 접근 시 사용합니다.

!L4 vs L7: 로드밸런서 vs App Gateway

실무 함정: 같이 쓸 때

편의점 물류를 생각해보세요. 지역 물류센터(Application Gateway)가 품목별로 분류하고, 각 매장 창고(Internal Load Balancer)가 진열대별로 나눠줍니다. 인터넷 HTTP는 Application Gateway(WAF 포함)가 처리하고, 뒷단 VM 간 분배는 Internal Load Balancer가 담당하는 패턴이 실제 Azure 아키텍처에서도 자주 나옵니다.

'외부 트래픽이니 Azure Load Balancer'라고 선택하는 실수가 가장 흔합니다. URL 경로 라우팅이나 WAF가 필요하면 Application Gateway가 답입니다.

 

시험 핵심 정리

'TCP/UDP 모든 포트, NVA 앞단' -- Azure Load Balancer Standard + HA Ports 'URL 경로별 다른 Pool' -- Application Gateway Path-based Routing '단일 IP, 여러 도메인' -- Application Gateway Multi-site Listener '웹 공격(SQL 인젝션, XSS) 방어' -- Application Gateway WAF_v2 'AKS + Ingress + WAF' -- AGIC + WAF_v2 '전 구간 암호화' -- Application Gateway End-to-End TLS '백엔드 TLS 부하 최소화' -- Application Gateway SSL Termination '같은 클라이언트 → 같은 서버' -- Cookie-based affinity '가용 영역 지원 Load Balancer' -- Standard SKU 'SNAT 포트 부족, 아웃바운드 제어' -- Standard Load Balancer Outbound Rules '특정 VM에 직접 포트 매핑' -- Load Balancer NAT Rules '모든 포트 단일 규칙, NVA 내부' -- HA Ports (Standard Internal LB 전용)

Azure Load Balancer = IP/포트 기반 L4 분산, Application Gateway = HTTP 내용 기반 L7 정책 라우팅 + WAF

블로그 목록으로 돌아가기