Application Gateway를 사용하여 App Service 구성

Application Gateway를 통해 App Service 앱 또는 다른 다중 테넌트 서비스를 백 엔드 풀 멤버로 사용할 수 있습니다. 이 문서에서는 Application Gateway를 사용하여 App Service 앱을 구성하는 방법을 알아봅니다. Application Gateway에 대한 구성은 App Service에 액세스하는 방법에 따라 달라집니다.

  • 첫 번째 옵션은 Application Gateway와 백 엔드의 App Service 모두에서 사용자 지정 도메인을 사용합니다.
  • 두 번째 옵션은 Application Gateway가 ".azurewebsites.net"와 같은 접미사가 붙은 기본 도메인을 사용하여 App Service에 액세스하도록 하는 것입니다.

이 구성은 프로덕션 등급 시나리오에 권장되며 요청 흐름에서 호스트 이름을 변경하지 않는 방식을 충족합니다. 기본 ".azurewebsites" 도메인에 의존하지 않으려면 사용자 지정 도메인(및 관련 인증서)을 사용할 수 있어야 합니다.

백 엔드 풀의 Application Gateway와 App Service 모두에 동일한 도메인 이름을 연결하면 요청 흐름이 호스트 이름을 재정의할 필요가 없습니다. 백 엔드 웹 애플리케이션은 클라이언트가 사용한 원래 호스트를 볼 수 있습니다.

Scenario overview for Application Gateway to App Service using the same custom domain for both

이 문서에서는 다음 작업을 수행하는 방법을 알아봅니다.

  • DNS 구성
  • Application Gateway에 백 엔드 풀로 App Service 추가
  • App Service 연결을 위한 HTTP 설정 구성
  • HTTP 수신기 구성
  • 요청 회람 규칙 구성

필수 조건

DNS 구성

이 시나리오의 컨텍스트에서 DNS는 다음 두 위치에서 관련이 있습니다.

  • 사용자 또는 클라이언트가 Application Gateway에 대해 사용하는 DNS 이름 및 브라우저에 표시되는 항목
  • Application Gateway가 백 엔드의 App Service에 액세스하기 위해 내부적으로 사용하는 DNS 이름

사용자 지정 도메인을 사용하여 사용자 또는 클라이언트를 Application Gateway로 라우팅합니다. Application Gateway용 DNS를 가리키는 CNAME 별칭을 사용하여 DNS를 설정합니다. Application Gateway DNS 주소는 연결된 공용 IP 주소의 개요 페이지에 표시됩니다. 또는 IP 주소를 직접 가리키는 A 레코드를 만듭니다. (Application Gateway V1의 경우 서비스를 중지했다가 시작하면 VIP가 변경될 수 있으므로 이 옵션은 바람직하지 않습니다.)

사용자 지정 도메인 이름을 수신 호스트로 사용하여 Application Gateway의 트래픽을 허용하도록 App Service를 구성해야 합니다. 사용자 지정 도메인을 App Service에 매핑하는 방법에 대한 자세한 내용은 자습서: Azure App Service에 기존 사용자 지정 DNS 이름 매핑을 참조하세요. 도메인을 확인하려면 App Service에서 TXT 레코드를 추가하기만 하면 됩니다. CNAME 또는 A 레코드는 변경할 필요가 없습니다. 사용자 지정 도메인에 대한 DNS 구성은 Application Gateway를 향한 상태로 유지됩니다.

HTTPS를 통해 App Service에 대한 연결을 수락하려면 해당 TLS 바인딩을 구성합니다. 자세한 내용은 Azure App Service에서 TLS/SSL 바인딩으로 사용자 지정 DNS 이름 보호 Azure Key Vault에서 사용자 지정 도메인에 대한 인증서를 가져오도록 App Service 구성을 참조하세요.

백 엔드 풀로 App Service 추가

  1. Azure Portal에서 Application Gateway를 선택합니다.

  2. 백 엔드 풀에서 백 엔드 풀을 선택합니다.

  3. 대상 유형에서 App Services를 선택합니다.

  4. 대상에서 App Service를 선택합니다.

    App service backend

    참고 항목

    드롭다운에는 Application Gateway와 동일한 구독에 있는 App Service만 있습니다. Application Gateway가 속해 있는 구독이 아닌 다른 구독에 있는 App Service를 사용하려는 경우 대상 드롭다운에서 App Services를 선택하는 대신 IP 주소 또는 호스트 이름 옵션을 선택하고 App Service의 호스트 이름(example.azurewebsites.net)을 입력합니다.

  5. 저장을 선택합니다.

App Service에 대한 HTTP 설정 편집

사용자 지정 도메인 이름을 사용하여 App Service 백 엔드에 액세스하도록 Application Gateway에 지시하는 HTTP 설정이 필요합니다. HTTP 설정은 기본적으로 기본 상태 프로브를 사용합니다. 기본 상태 프로브는 트래픽이 수신되는 호스트 이름으로 요청을 전달하지만 명시적으로 정의된 호스트 이름이 없으므로 상태 프로브는 127.0.0.1을 백 엔드 풀의 호스트 이름으로 활용합니다. 따라서 올바른 사용자 지정 도메인 이름을 호스트 이름으로 사용하여 구성된 사용자 지정 상태 프로브를 만들어야 합니다.

HTTPS를 사용하여 백 엔드에 연결합니다.

  1. HTTP 설정에서 기존 HTTP 설정을 선택하거나 새 설정을 추가합니다.
  2. 새 HTTP 설정을 만들 때 이름을 지정합니다.
  3. 포트 443을 사용하여 원하는 백 엔드 프로토콜로 HTTPS를 선택합니다.
  4. 인증서가 잘 알려진 기관에서 서명한 경우 "잘 알려진 사용자 CA 인증서"에 대해 "예"를 선택합니다. 또는 백 엔드 서버의 인증/신뢰할 수 있는 루트 인증서 추가
  5. "새 호스트 이름으로 재정의"를 "아니요"로 설정해야 합니다.
  6. "사용자 지정 프로브" 드롭다운에서 사용자 지정 HTTPS 상태 프로브를 선택합니다.

Configure H T T P Settings to use custom domain towards App Service backend using No Override

HTTP 수신기 구성

트래픽을 허용하려면 수신기를 구성해야 합니다. 이에 대한 자세한 내용은 Application Gateway 수신기 구성을 참조하세요.

  1. "수신기" 섹션을 열고 "수신기 추가"를 선택하거나 편집할 기존 섹션을 클릭합니다.
  2. 새 수신기의 경우: 이름을 지정합니다.
  3. "프런트 엔드 IP"에서 수신 대기할 IP 주소를 선택합니다.
  4. "포트"에서 443을 선택합니다.
  5. "프로토콜"에서 "HTTPS"를 선택합니다.
  6. "인증서 선택"에서 "Key Vault에서 인증서 선택"을 선택합니다. 자세한 내용은 Key Vault 사용을 참조하세요. 여기서 관리 ID를 할당하고 Key Vault에 대한 권한을 부여하는 방법에 대한 자세한 내용을 확인할 수 있습니다.
    1. 인증서에 이름을 지정합니다.
    2. 관리 ID를 선택합니다.
    3. 인증서를 가져올 위치에서 Key Vault를 선택합니다.
    4. 인증서 선택
  7. "수신기 유형"에서 "기본"을 선택합니다.
  8. 수신기를 추가하려면 "추가"를 클릭합니다.

Add a listener for H T T P S traffic

요청 회람 규칙 구성

이전에 구성한 백 엔드 풀과 HTTP 설정을 사용하여 수신기에서 트래픽을 가져오고 HTTP 설정을 사용하여 백 엔드 풀로 라우팅하도록 요청 회람 규칙을 설정할 수 있습니다. 이를 위해 기존 회람 규칙에 아직 바인딩되지 않은 사용 가능한 HTTP 또는 HTTPS 수신기가 있는지 확인합니다.

  1. "규칙"에서 새 "요청 회람 규칙"을 클릭하여 추가합니다.
  2. 규칙에 이름을 지정합니다.
  3. 기존 회람 규칙에 아직 연결되지 않은 HTTP 또는 HTTPS 수신기를 선택합니다.
  4. "백 엔드 대상"에서 App Service가 구성된 백 엔드 풀을 선택합니다.
  5. Application Gateway가 App Service 백 엔드에 연결해야 하는 HTTP 설정을 구성합니다.
  6. "추가"를 선택하여 이 구성을 저장합니다.

Add a new Routing rule from the listener to the App Service Backend Pool using the configured H T T P Settings

테스팅

이렇게 하기 전에 백 엔드 상태가 정상으로 표시되는지 확인합니다.

"백 엔드 상태" 섹션을 열고 "상태" 열에 HTTP 설정 및 백 엔드 풀의 조합이 "정상"으로 표시되는지 확인합니다.

Check backend health in Azure portal

이제 백 엔드에서 Application Gateway 및 App Service와 연결한 사용자 지정 도메인을 사용하여 웹 애플리케이션으로 이동합니다.

액세스 제한

이 예제에서 배포된 웹앱은 인터넷에서 직접 액세스할 수 있는 공용 IP 주소를 사용합니다. 따라서 새로운 기능을 배우고 새로운 것을 시도할 때 문제를 해결하는 데 도움이 됩니다. 하지만 프로덕션 환경에 기능을 배포하려는 경우 더 많은 제한을 추가해야 합니다. 다음 옵션을 살펴보세요.

  • 서비스 엔드포인트 기반 액세스 제한 규칙을 구성합니다. 이렇게 하면 원본 주소가 Application Gateway에서 온 것인지 확인하여 앱에 대한 인바운드 액세스를 잠글 수 있습니다.
  • Azure App Service 고정 IP 제한을 사용합니다. 웹앱이 애플리케이션 게이트웨이의 트래픽만 수신하도록 웹앱을 제한할 수 있습니다. 앱 서비스 IP 제한 기능을 사용하여 액세스할 수 있는 유일한 주소로 애플리케이션 게이트웨이 VIP를 나열할 수 있습니다.