Application Gateway 만들기 및 구성

완료됨

Application Gateway는 요청을 웹 서버 풀로 라우팅하고 이러한 웹 서버의 상태를 확인하기 위해 결합되는 일련의 구성 요소로 구성됩니다. 이러한 구성 요소가 Application Gateway에서 어떻게 관련이 되고, 또 무엇을 수행하는지 살펴보겠습니다.

Application Gateway 구성 요소의 시각화가 포함된 다이어그램

프런트 엔드 IP 주소

클라이언트 요청은 프런트 엔드 IP 주소를 통해 받습니다. 공용 IP 주소, 사설 IP 주소 또는 둘 모두를 사용하도록 Application Gateway를 구성할 수 있습니다. Application Gateway는 둘 이상의 공용 IP 주소와 하나의 사설 IP주소를 가질 수 없습니다.

수신기

Application Gateway는 하나 이상의 수신기를 사용하여 들어오는 요청을 받습니다. 수신기는 프로토콜, 포트, 호스트 및 IP 주소의 지정된 조합에 도착하는 트래픽을 허용합니다. 각 수신기는 지정한 라우팅 규칙에 따라 요청을 서버의 백 엔드 풀로 라우팅합니다. 수신기는 기본 또는 다중 사이트일 수 있습니다. 기본 수신기는 URL의 경로에 따라 요청을 라우팅합니다. 다중 사이트 수신기는 URL의 호스트 이름 요소를 사용하여 요청을 라우팅할 수도 있습니다.

또한 수신기는 사용자와 Application Gateway 간에 애플리케이션을 보호하기 위한 SSL 인증서를 처리합니다.

라우팅 규칙

라우팅 규칙은 수신기를 백 엔드 풀에 바인딩합니다. 규칙은 요청의 URL에서 호스트 이름 및 경로 요소를 해석하고 해당 요청을 적절한 백 엔드 풀로 보내는 방법을 지정합니다. 라우팅 규칙에는 연결된 HTTP 설정 세트도 있습니다. 이러한 설정은 Application Gateway와 백 엔드 서버 간의 트래픽 암호화 여부 및 다음과 같은 다른 구성 정보를 나타냅니다.

  • 프로토콜(HTTP 또는 HTTPS)
  • 세션 연결 유지 - 클라이언트 세션의 모든 요청을 부하 분산을 통해 서버 간에 분산시키는 대신 동일한 웹 서버로 전달합니다.
  • 연결 드레이닝 - 백 엔드 풀에서 서버를 정상적으로 제거하도록 설정합니다.
  • 요청 시간 제한 기간(초)
  • 상태 프로브 - 프로브 URL 지정, 시간 제한 기간 및 백 엔드 풀의 서버를 사용할 수 있는지 여부를 결정하는 데 사용되는 다른 매개 변수를 지정합니다.

백 엔드 풀

백 엔드 풀은 웹 서버의 컬렉션을 참조합니다. 풀을 구성할 때 각 웹 서버의 IP 주소와 요청을 수신 대기하는 포트를 제공합니다. 각 풀에서는 고정된 가상 머신 집합, 가상 머신 확장 집합, Azure App Services에서 호스팅하는 앱 또는 온-프레미스 서버 컬렉션을 지정할 수 있습니다. 각 백 엔드 풀에는 작업을 풀 전체에 분산시키는 연결된 부하 분산 장치가 있습니다.

웹 애플리케이션 방화벽

WAF(웹 애플리케이션 방화벽)는 들어오는 요청이 수신기에 도달하기 전에 이를 처리하는 선택적 구성 요소입니다. 웹 애플리케이션 방화벽은 각 요청에 OWASP(Open Web Application Security Project)에서 발표한 다양한 일반적인 위협이 있는지 확인합니다. 이러한 위협은 다음과 같습니다.

  • SQL 삽입
  • 사이트 간 스크립팅
  • 명령 삽입
  • HTTP 요청 밀반입
  • HTTP 응답 분할
  • 원격 파일 포함
  • 봇, 크롤러 및 스캐너
  • HTTP 프로토콜 위반 및 변칙

OWASP는 CRS(핵심 규칙 집합)라는 공격을 감지하기 위한 제네릭 규칙 집합을 정의했습니다. 공격이 정교하게 진화함에 따라 규칙 집합이 지속적으로 검토되고 있습니다. WAF는 CRS 2.2.9 및 CRS 3.0이라는 두 가지 규칙 집합을 지원합니다. CRS 3.0은 이러한 규칙 집합의 기본값이며 최신 버전입니다. 필요한 경우 규칙 집합에서 특정 위협을 대상으로 하는 특정 규칙만 선택하도록 할 수 있습니다. 또한 방화벽을 사용자 지정하여 요청에서 검사할 요소를 지정하고, 메시지 크기를 제한하여 대량 업로드로 인한 서버의 과도한 부하를 방지할 수 있습니다.

게이트웨이를 만들 때 WAF 계층을 선택하여 Application Gateway에서 WAF를 사용하도록 설정할 수 있습니다.

상태 프로브

상태 프로브는 부하 분산 장치를 지원하여 백 엔드 풀에서 부하 분산에 사용할 수 있는 서버를 결정하는 데 있어 중요한 요소입니다. Application Gateway는 상태 프로브를 사용하여 요청을 서버에 보냅니다. 서버에서 200 ~ 399 상태 코드의 HTTP 응답을 반환하는 경우 해당 서버가 정상적인 상태로 간주됩니다.

상태 프로브를 구성하지 않으면 Application Gateway에서 서버를 사용할 수 없다고 결정할 때까지 30초 동안 기다리는 기본 프로브를 만듭니다.

Application Gateway 네트워크 요구 사항

Application Gateway에는 작동할 가상 네트워크가 필요합니다. Application Gateway를 설정하기 전에 이 가상 네트워크와 전용 서브넷을 만들어야 합니다. Application Gateway는 내부적으로 사용하고 게이트웨이가 확장되는 경우 각 인스턴스와 통신하기 위해 여러 사설 주소를 사용합니다. 예를 들어 4개의 인스턴스로 확장하려는 경우 /28 크기의 서브넷을 만듭니다. 더 많은 인스턴스로 확장하려면 더 큰 서브넷을 만듭니다.

공용 IP 주소를 통해 Application Gateway를 공개하거나 가상 네트워크 내에서 개인 IP만 제공하여 Application Gateway를 비공개로 유지할 수 있습니다. 이는 Application Gateway를 사용하여 부하 분산을 제공하려는 내부 사이트가 있는 경우에 유용합니다.

Application Gateway 옵션

Application Gateway는 표준 계층 또는 WAF 계층에서 만들 수 있습니다. 또한 다양한 성능, 가격 책정 및 확장성을 갖춘 세 가지 크기(소형, 중형 및 대형) 중에서 선택할 수 있습니다.

표준WAF 계층은 V1 및 V2의 두 가지 버전으로 사용할 수 있습니다. V2는 Azure 가용성 영역을 지원하지만 현재 미리 보기로 있습니다.

Application Gateway는 수동 크기 조정 및 자동 크기 조정을 지원합니다. 자동 크기 조정을 선택하면 Application Gateway가 애플리케이션 트래픽에 따라 자동으로 규모 확장하거나 감축됩니다. Application Gateway 인스턴스의 최대 및 최소 수를 제한할 수 있습니다.

게이트웨이 만들기 및 구성

Azure Portal, Azure PowerShell 또는 Azure CLI를 사용하여 Application Gateway를 만들고 구성할 수 있습니다. Azure CLI의 경우 az network application-gateway create 명령을 사용하여 새 게이트웨이를 만듭니다. PowerShell을 원하는 경우 New-AzApplicationGateway cmdlet을 사용할 수 있습니다. Azure Portal을 사용하여 대부분의 작업을 수행할 수도 있습니다.

Azure CLI에서 az network application-gateway http-listener, az network application-gateway rule, az network application-gateway address-pool, az network application-gateway http-settingsaz network application-gateway front-end-port 명령을 사용하여 게이트웨이의 구성 요소에 대한 구성을 검사하고 수정할 수 있습니다. 연속된 Get-AzApplicationGateway*Set-AzApplicationGateway* cmdlet은 동일한 PowerShell 작업을 제공합니다.

이제 배포한 차량 부서 웹 사이트에 대한 애플리케이션 게이트웨이를 만들고 구성해 보겠습니다.