Application Gateway를 사용하여 트래픽 라우팅

완료됨

Application Gateway는 클라이언트 애플리케이션에서 웹앱에 보낼 수 있는 요청을 관리합니다. Application Gateway는 요청의 URL에 따라 트래픽을 웹 서버 풀로 라우팅합니다. 이를 애플리케이션 계층 라우팅이라고 합니다. 웹 서버 풀은 Azure 가상 머신, Azure 가상 머신 확장 집합, Azure App Service 및 심지어 온-프레미스 서버일 수 있습니다.

Diagram showing how a request is routed by Application Gateway to a web server.

Application Gateway에서 요청을 라우팅하는 방법

클라이언트는 웹앱에 대한 요청을 게이트웨이의 IP 주소 또는 DNS 이름으로 보냅니다. 게이트웨이는 게이트웨이에 대해 구성된 일단의 규칙을 사용하여 요청을 선택한 백 엔드 풀의 웹 서버로 라우팅하여 요청을 전달할 위치를 결정합니다.

트래픽 라우팅에는 경로 기반 라우팅 및 다중 사이트 호스팅의 두 가지 기본 방법이 있습니다. 각각의 기능에 대해 살펴보겠습니다.

경로 기반 라우팅

경로 기반 라우팅을 사용하면 URL에 서로 다른 경로가 있는 요청을 다른 백 엔드 서버 풀로 보낼 수 있습니다. 예를 들어 /video/* 경로의 요청은 비디오 스트리밍을 처리하도록 최적화된 서버가 있는 백 엔드 풀로 전달하고, /images/* 요청은 이미지 검색을 처리하는 서버 풀로 전달할 수 있습니다.

Diagram showing how a request is routed by Application Gateway configured with path-based routing.

다중 사이트 호스팅

다중 사이트 호스팅을 사용하면 동일한 애플리케이션 게이트웨이 인스턴스에서 둘 이상의 웹 애플리케이션을 구성할 수 있습니다. 다중 사이트 구성에서 각 사이트의 이름을 지정하여 Application Gateway의 IP 주소에 대한 여러 DNS 이름(CNAME)을 등록할 수 있습니다. Application Gateway는 별도의 수신기를 사용하여 각 사이트에 대한 요청을 기다립니다. 각 수신기에서 요청을 다른 규칙에 전달하여 요청을 다른 백 엔드 풀의 서버로 라우팅할 수 있습니다. 예를 들어 http://contoso.com에 대한 모든 요청을 한 백 엔드 풀의 서버로 전달하고 http://fabrikam.com에 대한 요청을 다른 백 엔드 풀로 전달하도록 Application Gateway를 구성할 수 있습니다. 다음 다이어그램에서는 이 구성을 보여 줍니다.

Diagram showing how a request is routed by Application Gateway configured with multiple site hosting.

다중 사이트 구성은 각 테넌트에 고유한 가상 머신 세트 또는 웹 애플리케이션을 호스팅하는 다른 리소스가 있는 다중 테넌트 애플리케이션을 지원하는 데 유용합니다.

기타 라우팅 기능

경로 기반 라우팅 및 다중 사이트 호스팅과 함께 Application Gateway를 사용하여 라우팅하는 경우 몇 가지 추가 기능이 있습니다.

  • 리디렉션: 다른 사이트로 리디렉션하거나 HTTP에서 HTTPS로 리디렉션하는 데 사용할 수 있습니다.
  • HTTP 헤더 다시 작성: HTTP 헤더를 통해 클라이언트와 서버에서 요청 또는 응답과 함께 추가 정보를 전달할 수 있습니다.
  • 사용자 지정 오류 페이지: Application Gateway를 통해 기본 오류 페이지를 표시하는 대신 사용자 지정 오류 페이지를 만들 수 있습니다. 사용자 지정 오류 페이지를 사용하여 사용자 고유의 브랜딩과 레이아웃을 사용할 수 있습니다.

Application Gateway의 부하 분산

Application Gateway는 라운드 로빈 메커니즘을 사용하여 각 백 엔드 풀의 서버에 보낸 요청의 부하를 자동으로 분산시킵니다. 그러나 동일한 세션에서 클라이언트에 대한 모든 요청을 백 엔드 풀의 동일한 서버로 라우팅해야 하는 경우 세션 연결 유지를 구성할 수 있습니다.

부하 분산은 Application Gateway 라우팅이 구현하는 OSI 계층 7 라우팅에서 작동합니다. 즉, Application Gateway 규칙이 사용하는 라우팅 매개 변수(호스트 이름 및 경로)에 따라 요청 부하를 분산합니다. 반면 Azure Load Balancer와 같은 다른 부하 분산 장치는 OSI 계층 4 수준에서 작동하고 요청 대상의 IP 주소에 따라 트래픽을 분산시킵니다.

OSI 계층 7에서 작동하면 부하 분산이 Application Gateway에서 제공하는 다른 기능을 활용할 수 있습니다. 다음과 같은 기능이 있습니다.

  • HTTP, HTTPS, HTTP/2 및 WebSocket 프로토콜 지원
  • 웹 애플리케이션 취약성으로부터 보호하기 위한 웹 애플리케이션 방화벽
  • 엔드투엔드 요청 암호화
  • 웹 트래픽 부하의 변화에 따라 용량을 동적으로 조정하는 자동 크기 조정

자동차 부서에 대한 라우팅

자동차 부서의 시나리오를 다시 살펴보면 Application Gateway를 사용하여 두 문제를 모두 해결할 수 있습니다. 부하 분산 및 상태 프로브 기능을 사용하여 사용자에게 영향을 주지 않고 오류를 처리할 수 있습니다. 또한 경로 기반 라우팅을 사용하여 사용자가 서로 다른 웹 서비스에서 호스팅되는 사이트에 액세스할 수 있는 단일 엔드포인트를 제공할 수 있습니다.

이 작업을 수행할 수 있는 방법에 대해 자세히 살펴보겠습니다.

지식 점검

1.

Application Gateway에서 요청을 웹 서버로 라우팅하는 데 사용하는 조건은 다음 중 어느 것인가요?

2.

Application Gateway에서 구현하는 부하 분산 전략은 다음 중 어느 것인가요?