Application Gateway 상태 프로브 개요
Azure Application Gateway는 백 엔드 풀에 있는 모든 서버의 상태를 모니터링하고 비정상으로 간주되는 모든 서버로의 트래픽 전송을 자동으로 중지합니다. 프로브는 이러한 비정상 서버를 계속 모니터링하고, 게이트웨이는 프로브가 해당 서버를 정상으로 감지하는 즉시 트래픽을 다시 한 번 라우팅하기 시작합니다.
기본 프로브는 연결된 백 엔드 설정 및 기타 미리 설정된 구성의 포트 번호를 사용합니다. 사용자 지정 프로브를 사용하여 원하는 방식으로 구성할 수 있습니다.
프로브 동작
원본 IP 주소
프로브의 원본 IP 주소는 백 엔드 서버 유형에 따라 달라집니다.
- 백 엔드 풀의 서버가 퍼블릭 엔드포인트인 경우 원본 주소는 애플리케이션 게이트웨이의 프런트 엔드 공용 IP 주소가 됩니다.
- 백 엔드 풀의 서버가 프라이빗 엔드포인트인 경우 원본 IP 주소는 애플리케이션 게이트웨이 서브넷의 주소 공간에서 가져옵니다.
프로브 작업
게이트웨이는 규칙을 백 엔드 설정 및 백 엔드 풀(및 리스너)과 연결하여 규칙을 구성한 직후 프로브 실행을 시작합니다. 이 그림에서는 게이트웨이가 모든 백 엔드 풀 서버를 독립적으로 프로브하는 것을 보여 줍니다. 도착하기 시작하는 들어오는 요청은 정상 서버로만 전송됩니다. 백 엔드 서버는 프로브 응답이 성공적으로 수신될 때까지 기본적으로 비정상으로 표시됩니다.
필요한 프로브는 백 엔드 서버와 백 엔드 설정의 고유한 조합에 따라 결정됩니다. 예를 들어 서버 2개와 백 엔드 설정 2개가 각각 다른 포트 번호를 갖는 단일 백 엔드 풀이 있는 게이트웨이를 고려해 보세요. 이러한 고유한 백 엔드 설정이 해당 규칙을 사용하여 동일한 백 엔드 풀과 연결된 경우 게이트웨이는 각 서버에 대한 프로브와 백 엔드 설정의 조합을 만듭니다. 백 엔드 상태 페이지를 볼 수 있습니다.
또한 애플리케이션 게이트웨이의 모든 인스턴스는 서로 독립적으로 백 엔드 서버를 프로브합니다.
프로브 간격
Application Gateway의 각 인스턴스에 동일한 프로브 구성이 적용됩니다. 예를 들어 애플리케이션 게이트웨이에 두 개의 인스턴스가 있고 프로브 간격이 20초로 설정된 경우 두 인스턴스 모두 20초마다 상태 프로브를 보냅니다.
프로브가 실패한 응답을 감지하면 연속 실패 횟수가 구성된 임계값과 일치하는 경우 "비정상 임계값"에 대한 카운터가 해제되고 서버를 비정상으로 표시합니다. 따라서 이 비정상 임계값을 2로 설정하면 후속 프로브가 먼저 이 오류를 검색합니다. 그런 다음, 애플리케이션 게이트웨이는 2회 연속 실패한 프로브[첫 번째 검색 20초 + (2회 연속 실패한 프로브 * 20초)] 후에 서버를 비정상으로 표시합니다.
참고 항목
백 엔드 상태 보고서는 각 프로브의 새로 고침 간격에 따라 업데이트되며 사용자의 요청에 따라 달라지지 않습니다.
기본 상태 프로브
애플리케이션 게이트웨이는 사용자 지정 프로브 구성을 설정하지 않는 경우 기본 상태 프로브를 자동으로 구성합니다. 모니터링 동작은 백 엔드 풀에서 구성된 IP 주소 또는 FQDN에 대해 HTTP GET 요청을 수행하는 방식으로 작동합니다. 기본 프로브의 경우 백 엔드 HTTP 설정이 HTTPS로 구성되어 있으면 프로브는 HTTPS를 사용하여 백 엔드 서버의 상태를 테스트합니다.
예: 포트 80에서 HTTP 네트워크 트래픽을 수신할 백 엔드 서버 A, B, C를 사용하도록 애플리케이션 게이트웨이를 구성합니다. 기본 상태 모니터링은 30초마다 서버 3대를 테스트하여 각 요청에 30초 시간 제한으로 정상 HTTP 응답을 확인합니다. 정상 HTTP 응답은 상태 코드 200에서 399 사이입니다. 예제에서 상태 프로브에 대한 HTTP GET 요청은 http://127.0.0.1/
과 같이 표시됩니다. Application Gateway의 HTTP 응답 코드도 참조하세요.
서버 A에 대한 기본 프로브 검사가 실패하면 애플리케이션 게이트웨이는 이 서버에 더 이상 요청을 전달하지 않습니다. 기본 프로브는 서버 A에 대해 30초마다 계속 확인합니다. 서버 A가 기본 상태 프로브의 요청에 성공적으로 응답하면 애플리케이션 게이트웨이가 다시 서버에 요청을 전달하기 시작합니다.
기본 상태 프로브 설정
프로브 속성 | 값 | 설명 |
---|---|---|
프로브 URL | <protocol>://127.0.0.1:<port>/ | 프로토콜과 포트는 프로브가 연결된 백 엔드 HTTP 설정에서 상속됩니다. |
간격 | 30 | 다음 상태 프로브가 전송되기 전에 대기할 시간의 양(초)입니다. |
시간 제한 | 30 | 프로브를 비정상으로 표시하기 전에 애플리케이션 게이트웨이에서 프로브 응답에 대해 대기할 시간의 양(초)입니다. 프로브가 정상으로 반환하는 경우 해당 백 엔드는 즉시 정상으로 표시됩니다. |
비정상 임계값 | 3 | 일반 상태 프로브에 오류가 발생하는 경우 보내는 프로브의 수를 제어합니다. v1 SKU에서는 추가 상태 프로브가 연속해서 빠르게 전송되어 백 엔드의 상태를 빠르게 확인하고 프로브 간격 동안 기다리지 않습니다. v2 SKU의 경우 상태 프로브에서 간격을 기다립니다. 연속된 프로브 실패 횟수가 비정상 임계값에 도달하면 백 엔드 서버가 다운된 것으로 표시됩니다. |
기본 프로브는 <protocol>://127.0.0.1:<port>만 조사하여 상태를 확인합니다. 사용자 지정 URL로 이동하거나 다른 모든 설정을 수정하도록 상태 프로브를 구성하려면 사용자 지정 프로브를 사용해야 합니다. HTTPS 프로브에 대한 자세한 내용은 Application Gateway를 사용한 TLS 종료 및 엔드투엔드 TLS 개요를 참조하세요.
사용자 지정 상태 프로브
사용자 지정 프로브를 통해 상태 모니터링을 보다 세부적으로 제어할 수 있습니다. 사용자 지정 프로브를 사용하는 경우 사용자 지정 호스트 이름, URL 경로, 프로브 간격, 백 엔드 풀 인스턴스를 비정상으로 표시하기 전에 허용할 실패 응답 횟수를 구성할 수 있습니다.
사용자 지정 상태 프로브 설정
다음 표에는 사용자 지정 상태 프로브의 속성을 위한 정의가 나와 있습니다.
프로브 속성 | 설명 |
---|---|
속성 | 프로브 이름입니다. 이 이름은 백 엔드 HTTP 설정에서 프로브를 식별하고 참조하는 데 사용됩니다. |
프로토콜 | 프로브를 보내는 데 사용하는 프로토콜입니다. 연결된 백 엔드 HTTP 설정에서 정의된 프로토콜과 일치해야 합니다. |
호스트 | 프로브를 보내는 데 사용할 호스트 이름입니다. v1 SKU에서 이 값은 프로브 요청의 호스트 헤더에만 사용됩니다. v2 SKU에서는 호스트 헤더와 SNI로 모두 사용됩니다. |
경로 | 프로브의 상대 경로입니다. 올바른 경로는 '/'부터 시작합니다. |
포트 | 정의된 경우 이 포트가 대상 포트로 사용됩니다. 그렇지 않으면 연결된 HTTP 설정과 동일한 포트가 사용됩니다. 이 속성은 v2 SKU에서만 사용할 수만 있습니다. |
간격 | 프로브 간격(초). 이 값은 연속된 두 프로브 사이의 시간 간격입니다. |
시간 제한 | 프로브 시간 제한(초) 이 시간 제한 기간 내에 유효한 응답을 받지 못하면 프로브가 실패로 표시됩니다. |
비정상 임계값 | 프로브 재시도 횟수. 연속된 프로브 실패 횟수가 비정상 임계값에 도달하면 백 엔드 서버가 다운된 것으로 표시됩니다. |
프로브 일치
기본적으로 상태 코드가 200-399인 HTTP(S) 응답은 정상으로 간주됩니다. 사용자 지정 상태 프로브는 또한 일치하는 두 조건을 지원합니다. 일치하는 조건을 사용하여 정상 응답을 만드는 항목에 대한 기본 해석을 필요에 따라 수정할 수 있습니다.
다음이 일치하는 조건입니다.
- HTTP 응답 상태 코드 일치 - 사용자 지정 http 응답 코드 또는 응답 코드 범위를 수용하기 위한 프로브 일치 조건입니다. 응답 상태 코드 또는 상태 코드 범위를 구분하는 개별 쉼표가 지원됩니다.
- HTTP 응답 본문 일치 - HTTP 응답 본문을 살펴보고 사용자 지정 문자열과 일치하는 프로브 일치 조건입니다. 일치는 응답 본문에서 사용자 지정 문자열의 존재만 찾으며 전체 정규식과 일치하지는 않습니다. 지정된 일치 항목은 4090자 이하여야 합니다.
New-AzApplicationGatewayProbeHealthResponseMatch
cmdlet을 사용하여 일치 조건을 지정할 수 있습니다.
예시:
$match = New-AzApplicationGatewayProbeHealthResponseMatch -StatusCode 200-399
$match = New-AzApplicationGatewayProbeHealthResponseMatch -Body "Healthy"
일치 조건은 PowerShell에서 -Match
연산자를 사용하여 프로브 구성에 연결할 수 있습니다.
사용자 지정 프로브에 대한 일부 사용 사례
- 백 엔드 서버가 인증된 사용자만 액세스할 수 있도록 허용하는 경우 애플리케이션 게이트웨이 프로브는 200 대신 403 응답 코드를 받습니다. 클라이언트(사용자)는 라이브 트래픽에 대해 자신을 인증하도록 바인딩되므로 예상 응답으로 403을 허용하도록 프로브 트래픽을 구성할 수 있습니다.
- 백 엔드 서버에 다른 하위 도메인을 제공하기 위해 와일드카드 인증서(*.contoso.com)가 설치된 경우 성공적인 TLS 프로브를 설정하고 해당 서버를 정상으로 보고하는 데 허용되는 특정 호스트 이름(SNI에 필요)이 있는 사용자 지정 프로브를 사용할 수 있습니다. 백 엔드 설정에서 "호스트 이름 재정의"를 NO로 설정하면 다른 수신 호스트 이름(하위 도메인)이 백 엔드에 있는 그대로 전달됩니다.
NSG 고려 사항
NSG 규칙을 통해 Application Gateway 서브넷에 대한 세밀한 제어가 공개 미리 보기에서 가능합니다. 자세한 내용은 여기에서 찾을 수 있습니다.
현재 기능에는 몇 가지 제한 사항이 있습니다.
들어오는 인터넷 트래픽을 Application Gateway v1 SKU의 경우 65503-65534 TCP 포트에서 허용하고, 대상 서브넷이 Any이고 원본이 GatewayManager 서비스 태그인 v2 SKU의 경우 65200-65535 TCP 포트에서 허용해야 합니다. 이 포트 범위는 Azure 인프라 통신에 필요합니다.
또한 아웃바운드 인터넷 연결은 차단할 수 없으며, AzureLoadBalancer 태그에서 들어오는 인바운드 트래픽은 허용해야 합니다.
자세한 내용은 Application Gateway 구성 개요를 참조하세요.
다음 단계
Application Gateway 상태 모니터링에 대해 알아본 후에 PowerShell 및 Azure Resource Manager 배포 모델을 사용하여 Azure Portal의 사용자 지정 상태 프로브 또는 사용자 지정 상태 프로브를 구성할 수 있습니다.