소개
Microsoft Azure는 네트워크 트래픽이 분산되고 부하가 분산되는 방식을 관리하기 위한 여러 서비스를 제공합니다. 이러한 서비스를 개별적으로 사용하거나 필요에 따라 해당 메서드를 결합하여 최적의 솔루션을 빌드할 수 있습니다.
이 자습서에서는 먼저 고객 사용 사례를 정의하고 Traffic Manager, Application Gateway 및 Load Balancer와 같은 Azure 부하 분산 포트폴리오를 사용하여 더 강력하고 성능이 좋은 방법을 알아봅니다. 그런 다음 지리적으로 중복되고, VM에 트래픽을 분산하고, 다양한 유형의 요청을 관리하는 데 도움이 되는 배포를 만들기 위한 단계별 지침을 제공합니다.
개념적 수준에서 이러한 각 서비스는 부하 분산 계층 구조에서 고유한 역할을 합니다.
Traffic Manager 는 전역 DNS 부하 분산을 제공합니다. 들어오는 DNS 요청을 살펴보고 고객이 선택한 라우팅 정책에 따라 정상 엔드포인트로 응답합니다. 라우팅 방법에 대한 옵션은 다음과 같습니다.
- 대기 시간 측면에서 가장 가까운 엔드포인트로 요청자를 보내는 성능 라우팅입니다.
- 다른 엔드포인트를 백업으로 사용하여 모든 트래픽을 엔드포인트로 전송하는 우선 순위 라우팅입니다.
- 각 엔드포인트에 할당된 가중치에 따라 트래픽을 분산하는 가중 라운드 로빈 라우팅입니다.
- 사용자의 지리적 위치에 따라 애플리케이션 엔드포인트에 트래픽을 분산하는 지리 기반 라우팅입니다.
- 사용자의 서브넷(IP 주소 범위)에 따라 애플리케이션 엔드포인트에 트래픽을 분산하는 서브넷 기반 라우팅입니다.
- 단일 DNS 응답에서 둘 이상의 애플리케이션 엔드포인트의 IP 주소를 보낼 수 있는 다중 값 라우팅입니다.
클라이언트는 Traffic Manager에서 반환된 엔드포인트에 직접 연결합니다. Azure Traffic Manager는 엔드포인트가 비정상일 때를 감지한 다음 클라이언트를 다른 정상 인스턴스로 리디렉션합니다. 서비스에 대한 자세한 내용은 Azure Traffic Manager 설명서를 참조하세요.
Application Gateway 는 ADC(애플리케이션 배달 컨트롤러)를 서비스로 제공하여 애플리케이션에 대한 다양한 계층 7 부하 분산 기능을 제공합니다. 이를 통해 고객은 CPU 집약적 TLS 종료를 애플리케이션 게이트웨이로 오프로드하여 웹 팜 생산성을 최적화할 수 있습니다. 다른 계층 7 라우팅 기능에는 들어오는 트래픽의 라운드 로빈 배포, 쿠키 기반 세션 선호도, URL 경로 기반 라우팅 및 단일 애플리케이션 게이트웨이 뒤에 여러 웹 사이트를 호스트하는 기능이 포함됩니다. Application Gateway는 인터넷 연결 게이트웨이, 내부 전용 게이트웨이 또는 둘 다의 조합으로 구성할 수 있습니다. Application Gateway는 완전히 Azure에서 관리되고 확장 가능하며 고가용성입니다. 관리 효율성을 높이기 위해 다양한 진단 및 로깅 기능을 제공합니다.
Load Balancer 는 모든 UDP 및 TCP 프로토콜에 대해 고성능, 짧은 대기 시간 계층 4 부하 분산 서비스를 제공하는 Azure SDN 스택의 필수적인 부분입니다. 인바운드 및 아웃 바운드 연결을 관리합니다. TCP 및 HTTP 상태 검색 옵션을 사용하여 서비스 가용성을 관리하여 공용 및 내부 부하 분산 엔드포인트를 구성하고 백 엔드 풀 대상에 인바운드 연결을 매핑하는 규칙을 정의할 수 있습니다.
시나리오
이 예제 시나리오에서는 이미지와 동적으로 렌더링된 웹 페이지라는 두 가지 유형의 콘텐츠를 제공하는 간단한 웹 사이트를 사용합니다. 웹 사이트는 지리적으로 중복되어야 하며 가장 가까운(가장 낮은 대기 시간) 위치에서 사용자에게 서비스를 제공해야 합니다. 애플리케이션 개발자는 /images/* 패턴과 일치하는 모든 URL이 웹 팜의 나머지 부분과 다른 전용 VM 풀에서 제공되도록 결정했습니다.
또한 동적 콘텐츠를 제공하는 기본 VM 풀은 고가용성 클러스터에서 호스트되는 백 엔드 데이터베이스와 통신해야 합니다. 전체 배포는 Azure Resource Manager를 통해 설정됩니다.
Traffic Manager, Application Gateway 및 Load Balancer를 사용하여 이 웹 사이트에서 다음 디자인 목표를 달성할 수 있습니다.
- 다중 지역 중복성: 한 지역이 다운되면 Traffic Manager는 애플리케이션 소유자의 개입 없이 트래픽을 가장 가까운 지역으로 원활하게 라우팅합니다.
- 대기 시간 감소: Traffic Manager는 고객을 가장 가까운 지역으로 자동으로 안내하므로 웹 페이지 콘텐츠를 요청할 때 대기 시간이 줄어듭니다.
- 독립적인 확장성: 웹 애플리케이션 워크로드는 콘텐츠 유형별로 구분되므로 애플리케이션 소유자는 요청 워크로드를 서로 독립적으로 확장할 수 있습니다. Application Gateway는 지정된 규칙 및 애플리케이션의 상태에 따라 트래픽이 올바른 풀로 라우팅되도록 합니다.
- 내부 부하 분산: Load Balancer는 고가용성 클러스터 앞에 있으므로 데이터베이스에 대한 활성 및 정상 엔드포인트만 애플리케이션에 노출됩니다. 또한 데이터베이스 관리자는 프런트 엔드 애플리케이션과 독립적으로 클러스터 전체에 활성 및 수동 복제본을 배포하여 워크로드를 최적화할 수 있습니다. Load Balancer는 고가용성 클러스터에 대한 연결을 제공하고 정상 데이터베이스만 연결 요청을 받도록 합니다.
다음 다이어그램은 이 시나리오의 아키텍처를 보여줍니다.
비고
이 예제는 Azure에서 제공하는 부하 분산 서비스의 가능한 여러 구성 중 하나일 뿐입니다. Traffic Manager, Application Gateway 및 Load Balancer는 부하 분산 요구 사항에 가장 적합하도록 혼합 및 일치시킬 수 있습니다. 예를 들어 TLS 오프로드 또는 계층 7 처리가 필요하지 않은 경우 Application Gateway 대신 Load Balancer를 사용할 수 있습니다.
부하 분산 스택 설정
1단계: Traffic Manager 프로필 만들기
Azure Portal에서 리소스 만들기>네트워킹>Traffic Manager 프로필>만들기를 클릭합니다.
다음 기본 정보를 입력합니다.
- 이름: Traffic Manager 프로필에 DNS 접두사 이름을 지정합니다.
- 라우팅 방법: 트래픽 라우팅 방법 정책을 선택합니다. 메서드에 대한 자세한 내용은 Traffic Manager 트래픽 라우팅 방법 정보를 참조하세요.
- 구독: 프로필이 포함된 구독을 선택합니다.
- 리소스 그룹: 프로필이 포함된 리소스 그룹을 선택합니다. 새 리소스 그룹 또는 기존 리소스 그룹일 수 있습니다.
- 리소스 그룹 위치: Traffic Manager 서비스는 전역이며 위치에 바인딩되지 않습니다. 그러나 Traffic Manager 프로필과 연결된 메타데이터가 있는 그룹의 지역을 지정해야 합니다. 이 위치는 프로필의 런타임 가용성에 영향을 주지 않습니다.
만들기를 클릭하여 Traffic Manager 프로필을 생성합니다.
2단계: 애플리케이션 게이트웨이 만들기
Azure Portal의 왼쪽 창에서 리소스> 네트워킹Application Gateway 만들기를> 클릭합니다.
Application Gateway에 대한 다음 기본 정보를 입력합니다.
- 이름: 애플리케이션 게이트웨이의 이름입니다.
- SKU 크기: 애플리케이션 게이트웨이의 크기로, Small, Medium 또는 Large로 사용할 수 있습니다.
- 인스턴스 수: 인스턴스 수, 2에서 10까지의 값입니다.
- 리소스 그룹: 애플리케이션 게이트웨이를 보유하는 리소스 그룹입니다. 기존 리소스 그룹 또는 새 리소스 그룹일 수 있습니다.
- 위치: 리소스 그룹과 동일한 위치인 애플리케이션 게이트웨이의 지역입니다. 가상 네트워크 및 공용 IP가 게이트웨이와 동일한 위치에 있어야 하므로 위치가 중요합니다.
OK를 클릭합니다.
애플리케이션 게이트웨이에 대한 가상 네트워크, 서브넷, 프런트 엔드 IP 및 수신기 구성을 정의합니다. 이 시나리오에서 프런트 엔드 IP 주소는 공용이며 나중에 Traffic Manager 프로필에 엔드포인트로 추가할 수 있습니다.
비고
HTTPS를 사용하는 경우 수신기 탭에서 프로토콜 옆에 있는 HTTPS를 선택합니다. 기본 옵션은 HTTP입니다. 또한 SSL 인증서를 만들고 할당해야 합니다. 자세한 내용은 SSL용 Application Gateway 자습서를 참조하세요.
애플리케이션 게이트웨이에 대한 URL 라우팅 구성
백 엔드 풀을 선택하면 경로 기반 규칙으로 구성된 애플리케이션 게이트웨이는 라운드 로빈 배포 외에도 요청 URL의 경로 패턴을 사용합니다. 이 시나리오에서는 "/images/*"가 있는 URL을 이미지 서버 풀로 전송하는 경로 기반 규칙을 추가합니다. 애플리케이션 게이트웨이에 대한 URL 경로 기반 라우팅을 구성하는 방법에 대한 자세한 내용은 애플리케이션 게이트웨이에 대한 경로 기반 규칙 만들기를 참조하세요.
리소스 그룹에서 이전 섹션에서 만든 애플리케이션 게이트웨이의 인스턴스로 이동합니다.
설정에서 백 엔드 풀을 선택한 다음 추가를 선택하여 웹 계층 백 엔드 풀과 연결할 VM을 추가합니다.
백 엔드 풀의 이름과 풀에 상주하는 컴퓨터의 모든 IP 주소를 입력합니다. 이 시나리오에서는 가상 머신의 두 백 엔드 서버 풀을 연결합니다.
Application Gateway "백엔드 풀 추가"
애플리케이션 게이트웨이의 설정 에서 규칙을 선택한 다음 경로 기반 단추를 클릭하여 규칙을 추가합니다.
다음 정보를 제공하여 규칙을 구성합니다.
기본 설정:
- 이름: 포털에서 액세스할 수 있는 규칙의 친숙한 이름입니다.
- 수신기: 규칙에 사용되는 수신기입니다.
- 기본 백 엔드 풀: 기본 규칙과 함께 사용할 백 엔드 풀입니다.
- 기본 HTTP 설정: 기본 규칙과 함께 사용할 HTTP 설정입니다.
경로 기반 규칙:
- 이름: 경로 기반 규칙의 친숙한 이름입니다.
- 경로: 트래픽 전달에 사용되는 경로 규칙입니다.
- 백 엔드 풀: 이 규칙과 함께 사용할 백 엔드 풀입니다.
- HTTP 설정: 이 규칙과 함께 사용할 HTTP 설정입니다.
중요합니다
경로: 유효한 경로는 "/"로 시작해야 합니다. 와일드카드 "*"는 끝에만 허용됩니다. 유효한 예는 /xyz, /xyz*또는 /xyz/*입니다.
3단계: Traffic Manager 엔드포인트에 애플리케이션 게이트웨이 추가
이 시나리오에서 Traffic Manager는 다른 지역에 있는 애플리케이션 게이트웨이(이전 단계에서 구성됨)에 연결됩니다. 이제 애플리케이션 게이트웨이가 구성되었으므로 다음 단계는 Traffic Manager 프로필에 연결하는 것입니다.
Traffic Manager 프로필을 엽니다. 이렇게 하려면 리소스 그룹을 확인하거나 모든 리소스에서 Traffic Manager 프로필의 이름을 검색 합니다.
왼쪽 창에서 엔드포인트를 선택한 다음 추가 를 클릭하여 엔드포인트를 추가합니다.
다음 정보를 입력하여 엔드포인트를 만듭니다.
- 형식: 부하를 분산할 엔드포인트 유형을 선택합니다. 이 시나리오에서는 이전에 구성한 애플리케이션 게이트웨이 인스턴스에 연결하기 때문에 Azure 엔드포인트 를 선택합니다.
- 이름: 엔드포인트의 이름을 입력합니다.
- 대상 리소스 종류: 공용 IP 주소를 선택한 다음 대상 리소스에서 이전에 구성한 애플리케이션 게이트웨이의 공용 IP를 선택합니다.
이제 Traffic Manager 프로필의 DNS를 사용하여 설치에 액세스하여 설치 프로그램을 테스트할 수 있습니다(이 예제에서는
TrafficManagerScenario.trafficmanager.net
). 요청을 다시 보내거나, VM을 표시하거나, 다른 지역에서 만든 VM 및 웹 서버를 제거할 수 있습니다. 다른 Traffic Manager 프로필 설정을 변경하고 테스트할 수도 있습니다.
4단계: 부하 분산 장치 만들기
이 시나리오에서 Load Balancer는 웹 계층에서 고가용성 클러스터 내의 데이터베이스로 연결을 분산합니다.
고가용성 데이터베이스 클러스터에서 SQL Server Always On을 사용하는 경우 단계별 지침 은 하나 이상의 Always On 가용성 그룹 수신기 구성 을 참조하세요.
내부 부하 분산 장치를 구성하는 방법에 대한 자세한 내용은 Azure Portal에서 내부 부하 분산 장치 만들기를 참조하세요.
- Azure Portal의 왼쪽 창에서 리소스> 네트워킹부하 분산 장치 만들기를> 클릭합니다.
- 부하 분산 장치의 이름을 선택합니다.
- 형식을 내부로 설정하고 부하 분산 장치에 상주할 적절한 가상 네트워크 및 서브넷을 선택합니다.
- IP 주소 할당에서 동적 또는 정적을 선택합니다.
- 리소스 그룹에서 부하 분산 장치에 대한 리소스 그룹을 선택합니다.
- 위치 아래에서 부하 분산 장치에 적합한 지역을 선택합니다.
- 만들기를 클릭하여 부하 분산 장치를 생성합니다.
백 엔드 데이터베이스 계층을 부하 분산 장치에 연결
리소스 그룹에서 이전 단계에서 만든 부하 분산 장치를 찾습니다.
설정에서 백 엔드 풀을 클릭한 다음 추가를 클릭하여 백 엔드 풀을 추가합니다.
백 엔드 풀의 이름을 입력합니다.
개별 컴퓨터 또는 가용성 집합을 백 엔드 풀에 추가합니다.
프로브 구성
부하 분산 장치의 설정에서 프로브를 선택한 다음 추가 를 클릭하여 프로브를 추가합니다.
프로브의 이름을 입력합니다.
프로브에 대한 프로토콜 을 선택합니다. 데이터베이스의 경우 HTTP 프로브가 아닌 TCP 프로브를 사용할 수 있습니다. 부하 분산 장치 프로브에 대한 자세한 내용은 부하 분산 장치 프로브 이해를 참조하세요.
프로브에 액세스하는 데 사용할 데이터베이스의 포트 를 입력합니다.
간격에서 애플리케이션을 검색하는 빈도를 지정합니다.
비정상 임계값에서 백 엔드 VM을 비정상으로 간주하기 위해 발생해야 하는 연속 프로브 오류 수를 지정합니다.
확인을 클릭하여 프로브를 만듭니다.
부하 분산 규칙 구성
- 부하 분산 장치의 설정 에서 부하 분산 규칙을 선택한 다음 추가 를 클릭하여 규칙을 만듭니다.
- 부하 분산 규칙의 이름을 입력합니다.
- 부하 분산 장치, 프로토콜 및 포트의 프런트 엔드 IP 주소를 선택합니다.
- 백 엔드 포트에서 백 엔드 풀에서 사용할 포트를 지정합니다.
- 이전 단계에서 만든 백 엔드 풀 및 프로브 를 선택하여 규칙을 적용합니다.
- 세션 지속성에서 세션을 유지할 방법을 선택합니다.
- 유휴 시간 제한에서 유휴 시간 제한(분)을 지정합니다.
- Floating IP에서 비활성화 또는 활성화를 선택합니다.
- 확인을 클릭하여 규칙을 만듭니다.
5단계: 부하 분산 장치에 웹 계층 VM 연결
이제 데이터베이스 연결에 대해 웹 계층 VM에서 실행되는 애플리케이션에서 IP 주소 및 부하 분산 장치 프런트 엔드 포트를 구성합니다. 이 구성은 이러한 VM에서 실행되는 애플리케이션과 관련이 있습니다. 대상 IP 주소 및 포트를 구성하려면 애플리케이션 설명서를 참조하세요. 프런트 엔드의 IP 주소를 찾으려면 Azure Portal에서 부하 분산 장치 설정의 프런트 엔드 IP 풀로 이동합니다.