부하 분산이라는 용어는 여러 컴퓨팅 리소스에 워크로드를 분산하는 것을 말합니다. 부하 분산은 리소스 사용량을 최적화하고, 처리량을 최대화하며, 응답 시간을 최소화하고, 단일 리소스의 오버로드를 방지하는 데 목표를 두고 있습니다. 또한 중복 컴퓨팅 리소스에서 워크로드를 공유하여 가용성을 향상시킬 수 있습니다.
Azure는 여러 컴퓨팅 리소스에 워크로드를 분산하는 데 사용할 수 있는 다양한 부하 분산 서비스를 제공합니다. 이러한 리소스에는 Azure 애플리케이션 Gateway, Azure Front Door, Azure Load Balancer 및 Azure Traffic Manager가 포함됩니다.
이 문서에서는 워크로드 요구 사항에 적합한 부하 분산 솔루션을 결정하기 위한 몇 가지 고려 사항을 설명합니다.
서비스 분류
Azure 부하 분산 서비스는 전역 및 지역 및 HTTP(S) 및 비 HTTP(S)의 두 가지 차원을 따라 분류할 수 있습니다.
전역 및 지역
- 전역: 이러한 부하 분산 서비스는 지역 백 엔드, 클라우드 또는 하이브리드 온-프레미스 서비스에 트래픽을 분산합니다. 이러한 서비스는 최종 사용자 트래픽을 사용 가능한 백 엔드로 전역적으로 라우팅하는 단일 컨트롤 플레인 관리를 지원합니다. 가용성과 성능을 최대화하기 위해 서비스 안정성 또는 성능의 변화에 대응하는 경우가 많습니다. 다양한 지역/지리에서 호스트되는 애플리케이션 스탬프, 엔드포인트 또는 배율 단위 간에 부하를 분산하는 시스템으로 생각할 수 있습니다.
- 지역: 이러한 부하 분산 서비스는 VM(가상 머신) 또는 지역 내 영역 및 영역 중복 서비스 엔드포인트에 걸쳐 가상 네트워크 내에서 트래픽을 분산합니다. 가상 네트워크의 지역 내에서 VM, 컨테이너 또는 클러스터 간에 부하를 분산하는 시스템으로 생각할 수 있습니다.
HTTP(S) 및 비 HTTP(S)
- HTTP(S): 이러한 부하 분산 서비스는 HTTP(S) 트래픽만 허용하는 계층 7 부하 분산 장치입니다. 이는 웹 애플리케이션 또는 다른 HTTP(S) 엔드포인트용 장치입니다. SSL 오프로드, 웹 애플리케이션 방화벽, 경로 기반 부하 분산 및 세션 선호도와 같은 기능이 있을 수 있습니다.
- 비 HTTP(S)
: 이러한 부하 분산 서비스는 계층 4 TCP 또는 UDP 서비스 또는 DNS 기반 부하 분산을 .
다음 표에는 Azure 부하 분산 서비스가 요약되어 있습니다.
서비스 | 전역/지역 | 권장 트래픽 |
---|---|---|
Azure Front Door | Global | HTTP |
Azure Traffic Manager | Global | 비HTTP(S) |
Azure Application Gateway | 지역 | HTTP |
Azure Load Balancer | 지역 또는 전역 | 비HTTP(S) |
참고 항목
Azure Traffic Manager 및 Azure Load Balancer에는 HTTP(S)를 비롯한 모든 트래픽을 분산하는 기능이 있습니다. 그러나 이러한 서비스에는 계층 7 기능이 없습니다. Azure Load Balancer와 달리 Azure Traffic Manager는 트래픽을 직접 처리하지 않습니다. Traffic Manager는 DNS를 조작하여 클라이언트를 적절한 엔드포인트로 전달합니다.
Azure 부하 분산 서비스
다음은 Azure에서 현재 제공되는 주요 부하 분산 서비스입니다.
Azure Front Door 는 웹 애플리케이션에 대한 글로벌 부하 분산 및 사이트 가속 서비스를 제공하는 애플리케이션 배달 네트워크입니다. SSL 오프로드, 경로 기반 라우팅, 빠른 장애 조치(failover) 및 캐싱과 같은 애플리케이션에 대한 계층 7 기능을 제공하여 애플리케이션의 성능과 고가용성을 향상시킵니다.
Traffic Manager는 높은 가용성과 응답성을 제공하면서 트래픽을 전역 Azure 지역의 모든 서비스에 최적으로 분산할 수 있는 DNS 기반 트래픽 부하 분산 장치입니다. Traffic Manager는 DNS 기반 부하 분산 서비스이기 때문에 도메인 수준에서만 부하를 분산합니다. 이러한 이유로 DNS 캐싱 및 DNS TTL을 준수하지 않는 시스템에 대한 일반적인 문제 때문에 Azure Front Door만큼 빠르게 장애 조치(failover)할 수 없습니다.
Application Gateway 는 애플리케이션 배달 컨트롤러를 서비스로 제공하여 다양한 계층 7 부하 분산 기능 및 웹 애플리케이션 방화벽 기능을 제공합니다. 공용 네트워크 공간에서 지역 내의 프라이빗 네트워크 공간에 호스트되는 웹 서버로 전환하는 데 사용합니다.
Load Balancer 는 모든 UDP 및 TCP 프로토콜에 대한 고성능, 매우 짧은 대기 시간 계층 4 부하 분산 서비스(인바운드 및 아웃바운드)입니다. 솔루션의 고가용성을 보장하면서 초당 수백만 개의 요청을 처리하도록 빌드되었습니다. Load Balancer는 영역 중복이므로 가용성 영역에서 고가용성을 보장합니다. 지역 배포 토폴로지와 지역 간 토폴로 지 모두를 지원합니다.
참고 항목
Azure Container Apps 또는 Azure Kubernetes Service와 같은 클러스터링 기술에는 주로 자체 클러스터 경계 범위 내에서 작동하는 부하 분산 구문이 포함되어 있으며, 준비 상태 및 상태 프로브에 따라 트래픽을 사용 가능한 애플리케이션 인스턴스로 라우팅합니다. 이러한 부하 분산 옵션은 이 문서에서 다루지 않습니다.
Azure에서 부하 분산을 위한 의사 결정 트리
부하 분산 솔루션을 선택할 때 다음과 같은 요인을 고려합니다.
- 트래픽 유형: 웹 HTTP(S) 애플리케이션인가요? 공용인가요 아니면 개인 애플리케이션인가요?
- 전역 및 지역: 단일 가상 네트워크 내에서 VM 또는 컨테이너의 부하를 분산해야 하나요, 아니면 지역 간에 배율 단위/배포의 부하를 분산해야 하나요?
- 가용성: 서비스 수준 계약은 무엇인가요?
- 비용: 자세한 내용은 Azure 가격 책정을 참조하세요. 서비스 자체의 비용 외에도, 해당 서비스에 구축된 솔루션을 관리하기 위한 운영 비용을 고려합니다.
- 기능 및 제한: 각 서비스에서 지원되는 기능과 각 서비스의 서비스 제한은 무엇인가요?
! [TIP] Azure Portal은 다음 순서도와 유사한 설문지 기반 가이드를 제공합니다. Azure Portal에서 '부하 분산 - 선택 도움말'을 검색합니다. 질문에 대답하면 부하 분산 옵션을 좁힐 수 있습니다.
다음 순서도는 애플리케이션에 대한 부하 분산 솔루션을 선택하는 데 도움이 됩니다. 순서도는 권장 사항에 연결할 주요 의사 결정 기준의 집합을 안내합니다.
이 순서도를 시작점으로 처리합니다. 모든 애플리케이션에는 고유한 요구 사항이 있으므로 권장 사항을 시작점으로 처리합니다. 그런 다음, 더 자세한 평가를 수행합니다.
워크로드에 부하 분산이 필요한 여러 서비스가 포함된 경우 각 서비스를 개별적으로 평가하는 것이 중요합니다. 대부분의 경우 효과적인 설정은 둘 이상의 부하 분산 솔루션을 사용합니다. 이러한 솔루션을 워크로드 아키텍처의 여러 위치에 통합할 수 있으며 각각 고유한 기능 또는 역할을 제공합니다.
정의
웹 애플리케이션(HTTP/HTTPS): URL 경로와 같은 계층 7 데이터에 대한 라우팅 결정을 내리거나, 통신 페이로드(예: HTTP 요청 본문) 검사를 지원하거나, TLS 기능을 처리하는 기능을 필요로 합니다.
인터넷 연결 애플리케이션: 인터넷에서 공개적으로 액세스할 수 있는 애플리케이션입니다. 애플리케이션 소유자가 웹 애플리케이션 방화벽 및 DDoS 보호와 같은 제품을 설정하여 제한적인 액세스 정책을 적용하거나 애플리케이션을 보호하는 것이 모범 사례입니다.
전역/여러 지역에 배포됨: 이 부하 분산 장치에 전역적으로 분산된 애플리케이션의 퍼블릭 엔드포인트로 트래픽 라우팅을 담당하는 고가용성 컨트롤 플레인이 하나 있어야 하는 경우 이는 지역 전체에서 활성-활성 또는 활성-수동 토폴로지 중 하나를 지원하는 것일 수 있습니다.
참고 항목
Application Gateway와 같은 지역 서비스를 사용하여 여러 지역에 걸쳐 있는 백 엔드 간에 부하를 분산하고 단일 제어 평면을 통한 라우팅을 제어할 수 있습니다. 해당 아키텍처는 지역 간 Private Link, 글로벌 가상 네트워크 피어링 또는 다른 지역의 공용 서비스 IP를 사용하여 가능합니다.
그러나 이 시나리오는 이 결정의 주요 지점이 아닙니다.
지역 리소스를 전역적으로 분산된 백 엔드에 대한 라우터로 사용하면 지역별 단일 실패 지점이 발생하며 트래픽이 한 지역을 통과한 다음 다시 다시 돌아가기 전에 트래픽이 강제로 진행되므로 추가 대기 시간이 발생합니다.
PaaS(Platform as a Service) : VM 또는 네트워킹 리소스를 관리할 필요 없이 애플리케이션을 배포할 수 있는 관리되는 호스팅 환경을 제공합니다. 이 경우 PaaS는 한 지역 내에서 통합 부하 분산을 제공하는 서비스를 의미합니다. 자세한 내용은 컴퓨팅 서비스 선택 – 확장성을 참조 하세요.
AKS(Azure Kubernetes Service): 컨테이너화된 애플리케이션을 배포하고 관리할 수 있습니다. AKS는 서버리스 Kubernetes, 통합된 연속 통합 및 지속적인 업데이트 환경, 엔터프라이즈급 보안 및 거버넌스를 제공합니다. AKS 아키텍처 리소스에 대한 자세한 내용은 Azure Kubernetes Service 아키텍처 디자인을 참조 하세요.
IaaS(Infrastructure as a Service): 연결된 네트워크 및 스토리지 구성 요소와 함께 필요한 가상 머신을 프로비전하는 컴퓨팅 옵션입니다. IaaS 애플리케이션에는 Load Balancer를 사용하여 가상 네트워크 내에서 내부 부하 분산이 필요합니다.
애플리케이션 계층 처리: 가상 네트워크 내의 특수 라우팅을 나타냅니다. 예를 들어 가상 네트워크 내에서 VM 즉, 가상 머신 확장 집합에 걸친 경로 기반 라우팅이 있습니다. 자세한 내용은 Azure Front Door 뒤에 Application Gateway를 배포해야 하는 경우를 참조 하세요.
성능 가속: 웹 액세스를 가속화하는 기능을 나타냅니다. CDN(콘텐츠 배달 네트워크) 또는 대상 네트워크에 가속화된 클라이언트 온보딩을 위해 최적화된 현재 상태 수신 지점을 사용하여 성능 가속을 달성할 수 있습니다. Azure Front Door는 CDN 및 Anycast 트래픽 가속을 모두 지원합니다. 두 기능의 이점은 아키텍처에서 Application Gateway를 사용 여부에 관계없이 얻을 수 있다는 것입니다.
추가 고려 사항
각 부하 분산 서비스에는 기능 지원 또는 구현 세부 정보도 고려해야 합니다. 다음은 부하 분산 시나리오와 관련될 수 있는 몇 가지 예입니다.
- 웹 소켓 지원
- HTTP/2 지원(백 엔드 노드 수신 및 계속)
- 고정 세션 지원
- 백 엔드 노드 상태 모니터링 메커니즘
- 클라이언트 환경 또는 비정상 노드 검색과 라우팅 논리에서 제거 사이의 지연
예제
다음 표에서는 솔루션으로 사용되는 부하 분산 서비스를 기반으로 하는 다양한 문서를 나열합니다.
Services | 아티클 | Description |
---|---|---|
Load Balancer | 가용성 영역 간의 부하 분산 VM(가상 머신) | 가용성 영역 간에 VM 부하를 분산하여 전체 데이터 센터의 실패 또는 손실로부터 앱과 데이터를 보호합니다. 영역 중복을 사용하면 하나 이상의 가용성 영역이 실패할 수 있으며 해당 지역의 한 영역이 정상 상태로 유지되는 한 데이터 경로가 유지됩니다. |
Azure Front Door | 저렴한 서버리스 Azure 서비스를 사용하여 실시간으로 위치 공유 | Azure Front Door를 사용하여 애플리케이션에 단일 지역에 배포하는 것보다 더 높은 가용성을 제공합니다. 지역 중단이 주 지역에 영향을 미치는 경우 Azure Front Door를 사용하여 보조 지역으로 장애 조치(failover)할 수 있습니다. |
Traffic Manager | 고가용성 및 재해 복구를 위해 빌드된 다중 계층 웹 애플리케이션 | 고가용성 및 재해 복구를 위해 빌드된 복원력 있는 다중 계층 애플리케이션을 배포합니다. 주 지역을 사용할 수 없게 되면 Traffic Manager가 보조 지역으로 장애 조치합니다. |
Azure Front Door + Application Gateway | Azure의 다중 테넌트 SaaS | Azure Front Door 및 Application Gateway의 조합을 포함하는 다중 테넌트 솔루션을 사용합니다. Azure Front Door는 지역 간 트래픽 부하를 분산하는 데 도움이 됩니다. Application Gateway는 클라이언트 비즈니스 요구 사항을 충족하는 다양한 서비스로 애플리케이션의 트래픽을 내부적으로 라우팅하고 부하를 분산합니다. |
Traffic Manager + Application Gateway | Traffic Manager 및 Application Gateway를 사용한 다중Region 부하 분산 | 고가용성 및 강력한 재해 복구 인프라를 달성하기 위해 웹 워크로드를 제공하고 여러 Azure 지역에 복원력 있는 다중 계층 애플리케이션을 배포하는 방법을 알아봅니다. |