마짱짱의 지식창고

Azure 의 부하 분산 서비스(Application Gateway, LoadBalncer) 본문

Cloud/Azure

Azure 의 부하 분산 서비스(Application Gateway, LoadBalncer)

마짱짱 2021. 1. 14. 14:50
반응형

0. 들어가기 전

부하 분산 기능은 네트워크 트래픽을 효율적으로 여러 서버에 분산시켜 사용자에게 안정적인 서비스를 제공합니다. 부하 분산 장치느 보통 OSI 4계층인 전송 계층에서 동작하는 L4 부하 분산을 제공하며, 어플리케이션 게이트웨이는 L7 부하 분산을 제공합니다.

 

L4 부하분산은 네트워크 프로토콜(TCP/UDP)계층에서 트래픽 관리를 제공합니다.

-> IP주소, 프로토콜, 라운드로빈 등을 사용하고 최소 연결 및 가장 빠른 응답 시간을 보이는 서버를 계산해 트래픽 전달

L7 부하분산은 HTTP/HTTPS 헤더와 메시지의 내용, URL 유형, 쿠키 정보와 같은 다양한 정보를 바탕으로 트래픽의 라우팅을 결정합니다.

 

2020/09/16 - [Network] - LoadBalance 란?

2020/09/16 - [Network] - Proxy 란? (HAProxy)

 

 

1. Azure Application Gateway 개요

Azure Application Gateway는 웹 애플리케이션에 대한 트래픽을 관리할 수 있도록 하는 웹 트래픽 부하 분산 장치입니다. 기존 부하 분산 장치는 전송 계층(OSI 계층 4 - TCP 및 UDP)에서 작동하고 원본 IP 주소와 포트를 기반으로 대상 IP 주소와 포트에 트래픽을 라우팅합니다.

 

Application Gateway는 URI 경로 또는 호스트 헤더와 같은 HTTP 요청의 추가 특성을 기반으로 라우팅 결정을 내릴 수 있습니다. 예를 들어 들어오는 URL을 기반으로 하는 트래픽을 라우팅할 수 있습니다. 따라서 /images가 들어오는 URL에 있는 경우 이미지에 대해 구성된 서버(풀 라고도 함)의 특정 집합에 트래픽을 라우팅할 수 있습니다. /video가 URL에 있는 경우 해당 트래픽은 비디오에 최적화된 다른 풀로 라우팅됩니다.

 

Azure 어플리케이션 게이트웨이는 웹 트래픽 부하 분산 장치이며 요청 URL 이나 호스트 헤더 등의 HTTP 특성을 기반으로 트래픽을 웹서버 풀로 보냅니다.

 

이 유형의 라우팅은 애플리케이션 계층(OSI 계층 7) 부하 분산이라고 합니다. Azure Application Gateway는 URL 기반 라우팅 및 기타 작업을 수행할 수 있습니다.

 

2. Azure Application Gateway 구성 요소

 

ㄱ. 프런트 엔드 IP 주소

  어플리케이션 게이트웨이는 공용IP주소(필수)와 개인IP주소(선택)을 할당할 수 있지만 개인 IP 주소 단독으로 할당 할 수 없다. 어플리케이션 게이트웨이, 가상네트워크, 공용 IP 주소는 동일한 위치여야 한다.

 

ㄴ. HTTP/HTTPS 수신기

  들어오는 요청을 위해 하나 이상을 추가해야 한다.

 

ㄷ. 라우팅 규칙

  규칙을 사용해 수신기에서 허용한 트래픽을 백 엔드 서버풀로 라우팅하거나 다른 위치로 리디렉션을 한다.

 

ㄹ. HTTP 설정

  어플리케이션 게이트웨이와 백 엔드 풀 간의 트래픽 암호화 여부, 동일한 서버에 사용자 세션 유지 여부, 백 엔드 풀 멤버의 안전한 제거, 백엔드 상태 모니터링을 지정

 

ㅁ. 상태 프로브

  백엔드 풀에서 부하를 받아줄 서버를 결정한다.

 

ㅂ. 백엔드 풀

  네트워크 인터페이스와 공용 IP 주소, 내부 IP 주소, FQDN, 가상 머신 확장 집합을 포함할  수 있다.

 

ㅅ. WAF(웹 어플리케이션 방화벽)

  수신기가 요청을 받기 전에 정의된 규칙을 기반으로 요청에 위협이 있는지 확인할 수 있습니다.

 

 


2. Azure Application Gateway 만들기

* 조금씩 다른 부분만 추가했습니다.

 

 

ㄱ. 접속할 공용 IP

ㄴ. 서버 풀 만들기

 

ㄷ. 회람(라우팅) 구성하기

ㄹ. 확인해보기

백엔드인 Windowserver 2대에 웹서버 설치후 확인하기

웹서버(IIS)설치
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
Default.html 파일 수정
Set-Content -Path "C:\inetpub\wwwroot\Default.htm" -Value "Running WEB Service from host winserver-01 !"

해당 IP 로 접속하기

 

 

3. Azure Loadbalncer 란

Azure Load Balancer는 OSI(Open Systems Interconnect) 모델의 계층 4에서 작동합니다. 클라이언트의 단일 연락 지점입니다. Load Balancer는 부하 분산 장치의 프런트 엔드에 도착하는 인바운드 흐름을 백 엔드 풀 인스턴스에 분산합니다. 이러한 흐름은 구성된 부하 분산 규칙 및 상태 프로브에 따라 진행됩니다. 백 엔드 풀 인스턴스는 Azure Virtual Machines 또는 가상 머신 확장 집합의 인스턴스일 수 있습니다.

 

공용 부하 분산 장치 를 사용하여 가상 네트워크 내의 VM(가상 머신)에 대해 아웃바운드 연결을 제공합니다. 이러한 연결은 개인 IP 주소를 공용 IP 주소로 변환하여 수행됩니다. 공용 Load Balancer는 인터넷 트래픽 부하를 VM에 분산하는 데 사용됩니다.

 

내부(또는 개인) 부하 분산 장치 는 사설 IP가 프런트 엔드에서만 필요한 경우에 사용됩니다. 내부 부하 분산 장치는 트래픽 부하를 가상 네트워크 내에 분산하는 데 사용됩니다. 하이브리드 시나리오의 온-프레미스 네트워크에서 부하 분산 장치 프런트 엔드에 액세스할 수 있습니다.

 

Azure Load Balancer를 사용하는 이유

표준 Load Balancer를 사용하면 애플리케이션 크기를 조정하고 고가용성 서비스를 만들 수 있습니다. 부하 분산 장치는 인바운드 및 아웃바운드 시나리오를 모두 지원합니다. 부하 분산 장치는 짧은 대기 시간과 높은 처리량을 제공하고, 모든 TCP 및 UDP 애플리케이션에 대해 최대 수백만 개의 흐름으로 확장합니다.

 

 

부하분산(LoadBalancer) 자세한 내용은 따로 포스팅하겠습니다.


출처

처음 배우는 애저(김도균 지음, 한빛미디어)

https://www.hanbit.co.kr/store/books/look.php?p_code=B1481913277

Azure docs

https://docs.microsoft.com/ko-kr/azure/application-gateway/configuration-overview 

https://docs.microsoft.com/ko-kr/azure/architecture/guide/technology-choices/load-balancing-overview

 

https://docs.microsoft.com/ko-kr/azure/application-gateway/overview

https://docs.microsoft.com/ko-kr/azure/load-balancer/load-balancer-overview

https://docs.microsoft.com/ko-kr/azure/load-balancer/components

 

반응형