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

완료됨

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

Application Gateway에서 요청을 웹 서버로 라우팅하는 방법을 보여 주는 다이어그램.

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

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

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

경로 기반 라우팅

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

경로 기반 라우팅으로 구성된 Application Gateway에서 요청을 라우팅하는 방법을 보여 주는 다이어그램.

다중 사이트 호스팅

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

다중 사이트 호스팅으로 구성된 Application Gateway에 의해 요청이 라우팅되는 방식을 보여 주는 다이어그램.

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

기타 라우팅 기능

경로 기반 라우팅 및 다중 사이트 호스팅과 함께 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에서 구현하는 부하 분산 전략은 다음 중 어느 것인가요?