1. 부하 분산(Load Balancing) 이란
- 부하 분산은 네트워크나 컴퓨팅 리소스로 몰리는 과도한 트래픽 또는 작업량을 여러 서버나 자원에 고르게 분산해, 과부하와 단일 장애점을 제거하고 서비스의 연속성과 신뢰성을 보장하는 핵심 기술입니다. 애플리케이션 서비스에서 트래픽이 한 대 서버에 몰리거나 네트워크 병목 현상이 발생하면 응답 지연, 서비스 불가, 시스템 장애로 이어질 수 있으며, 부하 분산 장치를 통해 이를 방지합니다.
2. Azure Load Balancer의 핵심 위치와 작동 원리
Azure Load Balancer는 클라우드 네트워크에서 OSI 4계층인 전송계층(TCP, UDP)에서 작동하는 관리형 L4 부하 분산 서비스입니다.
- 클라이언트 요청이 단일 프런트엔드 IP (공용 혹은 사설)로 들어오면,
- 설정된 부하 분산 규칙과 백엔드 풀 내 가상 머신, VM Scale Set, 컨테이너 인스턴스에
- 헬스 프로브를 통한 상태 점검 결과를 바탕으로 자동으로 요청을 분산 배분합니다.
이는 네트워크의 TCP/UDP 헤더 정보(원본 IP/포트, 목적지 IP/포트, 프로토콜 번호) 등 5-tuple 해쉬 방식을 기반으로 합니다.
3. Azure Load Balancer의 주요 구성 요소
| 구성 요소 | 역할 및 기능 |
| 프런트엔드 IP | 클라이언트가 요청을 보내는 IP 주소 (Public 또는 Private) |
| 백엔드 풀 | 트래픽이 분산되는 VM, VMSS, 컨테이너 등 자원들의 모임 |
| 로드 밸런싱 규칙 | 프런트엔드 IP의 포트와 프로토콜, 백엔드 풀 내 포트를 연결하는 규칙 설정 |
| 상태 프로브 | 백엔드 자원의 상태를 주기적으로 검사하여 비정상 인스턴스를 제외하는 역할 |
| 인바운드 NAT 규칙 | 특정 포트를 통해 특정 인스턴스로 트래픽을 직접 전달 (ex: SSH, RDP 연결 등) |
| 아웃바운드 규칙 | 백엔드 자원에서 외부로 나가는 트래픽에 대해 NAT 처리를 수행하는 규칙 |
4. Azure Load Balancer의 핵심 기능
- 고가용성 유지
여러 가용성 영역에 분산해 폭넓은 페일오버 지원 - 대용량 및 초저지연 트래픽 처리
수백만 개 동시 TCP/UDP 세션을 안정적으로 처리 - 유연한 IP·포트 매핑
여러 Public/Private IP, 다수 포트에 대한 부하분산 규칙 설정 가능 - 백엔드 상태 점검 및 장애 자동 복구
건강하지 않은 백엔드는 자동으로 분배 대상에서 제외 - 상세 로깅 및 모니터링
Azure Monitor와 Log Analytics 통합을 통한 실시간 상태 감시
5. SKU별 특성 비교
- Basic Load Balancer는 사실상 25-09-30 서비스 종료 예정으로 Standard load Balancer 위주로 구성
- 가용영역 옵션은 ‘프런트엔드 IP’의 영역 설정으로 결정됩니다. 프런트엔드가 Zone‑redundant(다중 AZ) 이면 LB도 다중 AZ가 되고, Zonal(특정 AZ 고정) 이면 LB도 그 AZ에 고정됩니다. (Public LB는 할당한 Public IP의 영역 속성이 그대로 반영)
- 리소스가 생성된 후에는 해당 리소스에 대한 영역을 변경, 업데이트 또는 생성할 수 없습니다.
- 리소스는 생성 후 영역 중복에서 영역 내 중복으로 업데이트할 수 없으며, 그 반대로도 업데이트할 수 없습니다.
- 지역 전체 장애를 대비하여 멀티 리전으로 구성할 경우에 글로벌 단일 LB에서 지역 LB로 분산/페일오버 구성, App계층이 L4일 경우 표준 모델임
| 기능 및 특성 | Basic Load Balancer | Standard Load Balancer |
| 가용성 영역 지원 | 없음 | 다중 가용성 영역 완전 지원 (Zone Redundant) |
| SLA | 미제공 | 99.99% |
| 지원 프로토콜 | TCP, HTTP | TCP, UDP, HTTP, HTTPS |
| NAT 아웃바운드 지원 | 제한적 | 완전 지원 |
| 프런트엔드 IP 형식 | Public IP만 | Public 및 Private IP 모두 지원 |
| 백엔드 풀 지원 | NIC만 | NIC 및 IP 리소스 모두 지원 |
| 진단 및 모니터링 | 제한적 | Azure Monitor, Log Analytics 지원 |
| NSG, UDR 등 보안 정책 연동 | 제한적 | 완전 연동 및 보안 강화 |
6. Azure 주요 부하 분산 서비스 비교
| 서비스명 | OSI 레이어 | 지원 대상 및 용도 | 특징 및 주요 기능 |
| Azure Load Balancer | 4 (TCP/UDP) | VM, VMSS, 컨테이너 등 네트워크 패킷 레벨 부하 분산 | 고성능, 저지연, 다중 IP 및 포트 지원, AZ 간 자동 분산 |
| Application Gateway | 7 (HTTP/HTTPS) | 웹 애플리케이션, API 라우팅, WAF 통합 | URL 경로 기반 라우팅, SSL 종료, WAF, 세션 기반 부하 분산 |
| Traffic Manager | DNS 기반 | 다중 리전 글로벌 부하 분산 및 장애 조치 | DNS 레벨에서 리전별 요청 분산, Failover, 글로벌 사용자 위치 기반 라우팅 |
| Front Door | 7 (HTTP/HTTPS) | 글로벌 웹 애플리케이션 가속, 보안 강화 | 전세계 CDN, WAF, SSL Offload, 글로벌 부하 분산 및 최적화 |
7. Load Balancer 적용 구조 및 구성 흐름
- Load Balancer 생성 → 프런트엔드 IP 구성(공용/사설) → 백엔드 풀 등록(VM, VMSS 등) → 부하 분산 규칙 설정 → 헬스 프로브 생성 → NAT 규칙 필요 시 추가
- 서비스에 맞게 NSG, UDR, Firewall 연동되어 안전한 네트워크 구성을 보장
- Azure CLI 주요 명령 예시
| bash az network lb create --resource-group myResourceGroup --name myLB --sku Standard --frontend-ip-name myFrontEndPool --backend-pool-name myBackEndPool az network lb probe create --resource-group myResourceGroup --lb-name myLB --name myHealthProbe --protocol tcp --port 80 az network lb rule create --resource-group myResourceGroup --lb-name myLB --name myLBRule --protocol tcp --frontend-port 80 --backend-port 80 --frontend-ip-name myFrontEndPool --backend-pool-name myBackEndPool --probe-name myHealthProbe az network lb inbound-nat-rule create --resource-group myResourceGroup --lb-name myLB --name myNATRule --protocol tcp --frontend-port 5022 --backend-port 22 --frontend-ip-name myFrontEndPool |
8. 영역별 LB 서비스 특징
(1) 리전널(Regional) 서비스
- 리전 내에서만 사용 가능하며, 같은 리전 내 여러 가용영역(존, AZ)에서 트래픽을 분산합니다.
- 보통 규제 준수 또는 데이터 주권 등의 이유로 트래픽이 특정 리전에 머물러야 할 때 사용합니다.
- TLS 종료 지점을 리전 단위로 제어할 수 있어 특정 리전에서만 암호화 통신을 처리합니다.
- 리전 내 다중 AZ를 월등히 활용하여, AZ 장애 시에도 서비스 가용성은 유지할 수 있지만 리전 전체 장애에는 취약합니다.
(2) 존너럴(Zonal) 서비스
- 특정한 단일 가용영역(AZ) 내에서만 사용됩니다.
- 주로 아주 세밀한 장애 도메인 관리가 필요하거나, AZ 단위로 로드밸런서를 세팅해야 할 때 사용합니다.
- AZ 하나가 다운되면 로드밸런서도 영향을 받지만, 빠른 복구와 AZ별 리소스 격리가 가능합니다.
(3) 글로벌(Global) 서비스
- 여러 리전(Region)에 걸쳐 전 세계적으로 분산된 로드밸런서를 의미합니다.
- 클라이언트 요청을 전 세계에 분산된 가장 가까운 리전의 백엔드로 라우팅하며, 장애 발생 시에는 다른 리전으로 트래픽을 자동 전환(페일오버)합니다.
- 글로벌 anycast IP를 가지며, 전 지리적으로 최저 지연(latency)을 위한 TLS 종료도 전 세계 여러 지점에서 수행합니다.
- 글로벌 서비스가 필요할 때는 지역별 리전널 로드밸런서들을 연동하여 글로벌 로드밸런서 계층을 구성합니다.
- 예를 들어, Azure Standard Load Balancer의 글로벌 로드밸런서는 기존 리전 단위 로드밸런서와 연동하여 다중 리전 페일오버 및 부하분산을 지원합니다.
- 글로벌 서비스 구성 시 참고 사항
• 글로벌 로드밸런서는 일반적으로 외부(퍼블릭) 트래픽에 적용되며, 내부 로드밸런서는 보통 리전 단위로 작동합니다.
• 글로벌 로드밸런서는 각 리전 로드밸런서의 상태(health probe)를 정기적으로 체크해 비정상 리전은 차단합니다.
• 사용자 위치에 따른 지리적 거리 기반(geo-proximity) 라우팅 정책을 적용할 수 있어, 사용자별 가장 가까운 리전으로 트래픽을 유도합니다.
• 글로벌 로드밸런서로 구성 후 각 리전 로드밸런서의 backend 및 포트 설정을 일치시켜야 연동에 문제가 없습니다.
8. 참고 문서
https://learn.microsoft.com/ko-kr/azure/load-balancer/load-balancer-overview
https://learn.microsoft.com/ko-kr/azure/load-balancer/components
'Azure 상식' 카테고리의 다른 글
| AKS Overlay Network 구성에 대한 이해: POD IP 할당과 특징 (0) | 2025.08.23 |
|---|---|
| Azure 관련AKS 설치 구성에 대한 이해: Ingress Controller, CNI, CSI (1) | 2025.08.23 |
| AKS권한 관리 방식: K8S의 IAM처리 방식의 이해 Entra ID, Service Account 등 이해와 차이점 (0) | 2025.08.22 |
| Azure Managed Disk 에 대한 이해 (0) | 2025.08.21 |
| Azure Function Tier 특징 이해와 선택(대용량 Batch를 위한 Function Tier) (0) | 2025.08.21 |