분할 브레인 DNS 구성을 사용하여 Azure에서 웹앱 호스팅

Azure Front Door
Azure Application Gateway
Azure ExpressRoute
Azure DNS

워크로드를 관리하는 팀은 고객 액세스를 위해 FQDN(정규화된 do기본 이름)을 사용하는 경우가 많습니다. FQDN은 일반적으로 TLS(전송 계층 보안) SNI(서버 이름 표시)와 결합됩니다. 이 방법을 사용하면 공용 고객이 공용 인터넷에서 워크로드에 액세스하거나 엔터프라이즈 고객이 내부적으로 워크로드에 액세스하는 경우 애플리케이션에 대한 라우팅은 고정 경로를 따르고 다양한 수준의 보안 또는 서비스 품질(QoS)을 가질 수 있습니다.

다음 아키텍처에서는 DNS(Do기본 Name System)를 기반으로 트래픽이 처리되는 방식과 고객이 인터넷 또는 회사 네트워크에서 발생하는지 여부를 구분하는 방법을 보여 줍니다.

아키텍처

애플리케이션 호스팅 아키텍처의 다이어그램.

이 아키텍처의 Visio 파일을 다운로드합니다.

다음 워크플로 섹션에서는 공용 인터넷 워크플로와 프라이빗 워크플로의 두 가지 구성에 대해 설명합니다. 두 워크플로를 결합하여 분할 브레인 호스팅 아키텍처를 구현합니다.

공용 인터넷 워크플로

공용 인터넷 워크플로의 다이어그램.

이 아키텍처의 Visio 파일을 다운로드합니다.

  1. 고객은 공용 인터넷을 통해 애플리케이션에 app.contoso.com 대한 요청을 보냅니다.

  2. Azure DNS 영역은 contoso.com 기본 구성됩니다. 적절한 CNAME(정식 이름) 항목 은 Azure Front Door 엔드포인트에 대해 구성됩니다.

  3. 외부 고객은 전역 부하 분산 장치 및 WAF(웹 애플리케이션 방화벽)로 작동하는 Azure Front Door를 통해 웹 애플리케이션에 액세스합니다.

    • Azure Front Door app.contoso.com 내에서 구성된 엔드포인트의 경로를 통해 FQDN으로 할당됩니다. Azure Front Door는 애플리케이션에 대한 TLS SNI 인증서도 호스팅합니다.

      참고 항목

      Azure Front Door는 자체 서명된 인증서를 지원하지 않습니다.

    • Azure Front Door는 고객의 Host HTTP 헤더를 기반으로 구성된 원본 그룹으로 요청을 라우팅합니다.

    • 원본 그룹은 Application Gateway의 공용 IP 주소를 통해 Azure 애플리케이션 게이트웨이 인스턴스를 가리키도록 구성됩니다.

  4. NSG(네트워크 보안 그룹)는 AzureFrontDoor.Backend 서비스 태그에서 포트 80 및 포트 443에 대한 인바운드 액세스를 허용하도록 AppGW 서브넷구성됩니다. NSG는 인터넷 서비스 태그의 포트 80 및 포트 443에서 인바운드 트래픽을 허용하지 않습니다.

    참고 항목

    AzureFrontDoor.Backend 서비스 태그는 트래픽을 Azure Front Door 인스턴스로 만 제한하지 않습니다. 유효성 검사는 다음 단계에서 수행됩니다.

  5. Application Gateway 인스턴스에는 포트 443에 수신기 가 있습니다. 트래픽은 수신기 내에 지정된 호스트 이름을 기반으로 백 엔드로 라우팅됩니다.

    • 트래픽이 Azure Front Door 프로필에서 발생하도록 하려면 헤더 값을 검사 X-Azure-FDID 사용자 지정 WAF 규칙을 구성합니다.

    • Azure는 각 Azure Front Door 프로필에 대한 고유 식별자를 생성합니다. 고유 식별자는 Azure Portal의 개요 페이지에 있는 Front Door ID 값입니다.

  6. 트래픽은 Application Gateway에서 백 엔드 풀로 구성된 컴퓨팅 리소스에 도달합니다.

프라이빗 엔터프라이즈 워크플로

프라이빗 엔터프라이즈 워크플로의 다이어그램.

이 아키텍처의 Visio 파일을 다운로드합니다.

  1. 고객은 온-프레미스 환경에서 애플리케이션에 대한 app.contoso.com 요청을 시작합니다.

  2. 애플리케이션 FQDN은 온-프레미스 DNS 공급자에서 구성됩니다. 이 DNS 공급자는 온-프레미스 Windows Server Active Directory DNS 서버 또는 기타 파트너 솔루션일 수 있습니다. 각 애플리케이션 FQDN에 대한 DNS 항목은 Application Gateway 인스턴스의 개인 IP 주소를 가리키도록 구성됩니다.

  3. Azure ExpressRoute 회로 또는 사이트-사이트 VPN을 사용하면 Application Gateway에 쉽게 액세스할 수 있습니다.

  4. 트래픽이 시작되는 온-프레미스 고객 네트워크에서 들어오는 프라이빗 요청을 허용하도록 AppGW 서브넷에 NSG가 구성됩니다. 이 구성은 다른 프라이빗 트래픽 원본이 Application Gateway의 개인 IP 주소에 직접 연결할 수 없도록 합니다.

  5. Application Gateway에는 포트 80 및 포트 443에 구성된 수신기 가 있습니다. 트래픽은 수신기 내에 지정된 호스트 이름을 기반으로 백 엔드로 라우팅됩니다.

  6. 프라이빗 네트워크 트래픽만 Application Gateway에서 백 엔드 풀로 구성된 컴퓨팅에 도달합니다.

구성 요소

  • DNS: 공용 인터넷 워크플로의 경우 Azure Front Door 엔드포인트 FQDN의 적절한 CNAME을 사용하여 공용 Azure DNS 영역을 구성해야 합니다. 프라이빗(엔터프라이즈) 쪽에서 각 애플리케이션 FQDN을 Application Gateway의 개인 IP 주소로 가리키도록 로컬 DNS 공급자(Windows Server Active Directory DNS 또는 파트너 솔루션)를 구성합니다.

  • Azure DNS Private Resolver: 온-프레미스 고객의 확인을 위해 DNS Private Resolver를 사용할 수 있습니다. 엔터프라이즈 고객은 이 분할 브레인 DNS 솔루션을 사용하여 공용 인터넷을 트래버스하지 않고 애플리케이션에 액세스할 수 있습니다.

  • Azure Front Door: Azure Front Door는 전 세계 고객에게 빠르고 안전한 웹 애플리케이션 배달을 제공하는 글로벌 부하 분산 장치 및 WAF입니다. 이 아키텍처에서 Azure Front Door는 외부 고객을 Application Gateway 인스턴스로 라우팅하고 캐싱 및 최적화 옵션을 제공하여 고객 환경을 향상시킵니다.

  • Application Gateway: Application Gateway는 웹 애플리케이션에 대한 고가용성, 확장성 및 보안을 제공하는 지역 부하 분산 장치 및 WAF입니다. 이 아키텍처에서 Application Gateway는 외부 및 내부 고객 요청을 백 엔드 컴퓨팅으로 라우팅하고 일반적인 웹 공격으로부터 웹 애플리케이션을 보호합니다.

    Azure Front Door와 Application Gateway 모두 WAF 기능을 제공하지만 이 솔루션의 프라이빗 워크플로는 Azure Front Door를 사용하지 않습니다. 따라서 두 아키텍처 모두 Application Gateway의 WAF 기능을 사용합니다.

  • ExpressRoute: ExpressRoute를 사용하여 연결 공급자의 도움을 받아 프라이빗 연결을 통해 온-프레미스 네트워크를 Microsoft 클라우드로 확장할 수 있습니다. 이 아키텍처에서는 ExpressRoute를 사용하여 온-프레미스 고객을 위한 Application Gateway에 대한 프라이빗 연결을 용이하게 할 수 있습니다.

대안

대체 솔루션으로 Azure Front Door를 제거하고 대신 공용 Azure DNS 레코드를 Application Gateway의 공용 IP 주소로 가리킬 수 있습니다. 이 아키텍처의 요구 사항에 따라 Azure로의 진입점에서 캐싱 및 최적화를 수행해야 합니다. 따라서 대체 솔루션은 이 시나리오에 대한 옵션이 아닙니다. 자세한 내용은 비용 최적화를 참조 하세요.

대체 분할 브레인 DNS 호스팅 아키텍처의 다이어그램.

이 아키텍처의 Visio 파일을 다운로드합니다.

이 아키텍처에서 공용 수신 트래픽에 대한 다른 가능한 대안은 다음과 같습니다.

  • Azure Traffic Manager: Traffic Manager는 다양한 지역 및 엔드포인트에 트래픽을 분산하는 DNS 기반 트래픽 라우팅 서비스입니다. Azure Front Door 대신 Traffic Manager를 사용하여 외부 고객을 가장 가까운 Application Gateway 인스턴스로 라우팅할 수 있습니다. 그러나 Azure Front Door는 WAF 기능, 캐싱 및 세션 선호도와 같은 기능을 제공합니다. Traffic Manager는 이러한 기능을 제공하지 않습니다.

  • Azure Load Balancer: Azure Load Balancer는 TCP(Transmission Control Protocol) 및 UDP(사용자 데이터그램 프로토콜) 트래픽에 대한 고가용성 및 확장성을 제공하는 네트워크 부하 분산 장치입니다. Application Gateway 대신 Load Balancer를 사용하여 외부 및 내부 고객 요청을 백 엔드 웹 서버로 라우팅할 수 있습니다. 그러나 Application Gateway는 WAF 기능, SSL(Secure Sockets Layer) 종료 및 쿠키 기반 세션 선호도와 같은 기능을 제공합니다. Load Balancer는 이러한 기능을 제공하지 않습니다.

시나리오 정보

이 시나리오는 외부 및 내부 고객에게 모두 서비스를 제공하는 웹 애플리케이션을 호스팅하는 문제를 해결합니다. 이 아키텍처는 트래픽이 고객의 원본에 따라 적절한 경로를 따르도록 합니다. 이 아키텍처는 다음과 같습니다.

  • 전 세계 비 기업 고객을 위해 인터넷을 통해 웹 애플리케이션에 빠르고 신뢰할 수 있는 액세스를 제공합니다.

  • 엔터프라이즈 고객에게 공용 인터넷을 트래버스하지 않고 애플리케이션에 액세스할 수 있는 기능을 제공합니다.

  • 일반적인 웹 공격 및 악의적인 트래픽으로부터 웹 애플리케이션을 보호합니다.

잠재적인 사용 사례

다음이 필요한 시나리오에 이 아키텍처를 사용합니다.

  • 스플릿 브레인 DNS: 이 솔루션은 외부 고객을 위한 Azure Front Door 및 내부 고객을 위한 Application Gateway를 사용하며 각 서비스에 대해 서로 다른 DNS 레코드를 사용합니다. 이 방법은 다양한 고객의 네트워크 성능, 보안 및 가용성을 최적화하는 데 도움이 됩니다.

  • 애플리케이션 확장성: 이 솔루션은 구성된 백 엔드 컴퓨팅 리소스 간에 트래픽을 분산할 수 있는 Application Gateway를 사용합니다. 이 방법은 애플리케이션 성능 및 가용성을 향상시키고 수평 크기 조정을 지원하는 데 도움이 됩니다.

고려 사항

이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일단의 지침 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Microsoft Azure Well-Architected Framework를 참조하세요.

안정성

안정성은 애플리케이션이 고객에 대한 약속을 충족할 수 있도록 합니다. 자세한 내용은 디자인 검토 검사 안정성 목록을 참조하세요.

  • 오류 지점 식별: 이 분할 브레인 DNS 아키텍처에서 안정성은 Azure Front Door, Application Gateway 및 DNS 구성과 같은 주요 구성 요소의 올바른 작동에 달려 있습니다. 구성 오류, SSL 인증서 문제 또는 용량 오버로드와 같은 잠재적인 오류 지점을 식별해야 합니다.

  • 영향 평가: 오류의 영향을 평가해야 합니다. 외부 고객의 경우 게이트웨이 역할을 하는 Azure Front Door의 중단이 글로벌 액세스에 영향을 줄 수 있습니다. 내부 고객의 경우 Application Gateway의 중단으로 인해 엔터프라이즈 운영이 방해가 될 수 있습니다.

  • 완화 전략 구현: 위험을 완화하고, 여러 가용성 영역에서 중복성을 구현하고, 실시간 모니터링에 상태 프로브를 사용하고, 외부 및 내부 트래픽 모두에 대한 DNS 라우팅의 올바른 구성을 보장합니다. DNS 레코드를 정기적으로 업데이트하고 재해 복구 계획을 가지고 있는지 확인합니다.

  • 지속적으로 모니터링: 시스템의 상태를 주시하려면 Azure Monitor 기능을 사용합니다. 변칙에 대한 경고를 설정하고 잠재적인 문제를 신속하게 해결할 수 있도록 인시던트 대응 계획을 준비합니다.

이러한 원칙을 준수하여 문제를 견디고 서비스 연속성을 기본 수 있는 강력하고 신뢰할 수 있는 시스템을 보장합니다.

보안

우수한 보안은 중요한 데이터 및 시스템에 대한 고의적인 공격과 악용을 방어합니다. 자세한 내용은 보안에 대한 디자인 검토 검사 목록을 참조하세요.

  • 제로 트러스트 방법 사용: 분할 브레인 DNS 설정에서 제로 트러스트 방법을 적용합니다. 인터넷 또는 회사 네트워크에서 발생했는지 여부에 관계없이 고객의 ID를 명시적으로 확인합니다. 이 방법을 사용하면 신뢰할 수 있는 엔터티만 권한 있는 작업을 수행할 수 있습니다.

  • 구현: 강력한 ID 관리를 위해 Microsoft Entra ID를 구현합니다. Microsoft Entra 조건부 액세스 정책을 사용하여 고객 컨텍스트, 디바이스 상태 및 위치에 따라 엄격한 액세스 제어를 적용합니다.

  • 보안 효율성 평가: 다음을 구현하여 이중 액세스 워크로드에 대한 보안 조치의 효율성을 평가합니다.

    • 방어 투자: Azure Front Door 및 Application Gateway의 효율성을 정기적으로 평가합니다. 위협 방지에 의미 있는 보호를 제공해야 합니다.

    • 방사형 제한: 제한된 범위 내에 보안 위반이 포함되어 있는지 확인합니다. 예를 들어 외부 및 내부 트래픽 흐름을 효과적으로 격리합니다.

  • 위반 가정: 공격자가 보안 제어를 위반할 수 있음을 인정합니다. 이러한 시나리오를 준비합니다.

  • 보안 조치 구현: 네트워크 세분화, 마이크로 세분화 및 NSG를 구현합니다. 공격자가 액세스 권한을 얻고 그에 따라 보상 컨트롤을 설계할 수 있다고 가정합니다.

이러한 보안 원칙을 분할 브레인 DNS 아키텍처에 통합하여 워크로드에 대한 내부 및 외부 액세스를 보호하는 강력하고 복원력 있는 시스템을 만듭니다.

기타 보안 향상

  • Application Gateway: Application Gateway에서 WAF사용하여 일반적인 웹 취약성 및 악용으로부터 웹 애플리케이션을 보호할 수 있습니다. Azure Private Link를 사용하여 퍼블릭 인터넷에 노출하지 않고 Application Gateway에서 백 엔드 애플리케이션 서버에 안전하게 액세스할 수도 있습니다.

  • Azure Firewall: 허브 가상 네트워크에 Azure 방화벽을 추가하고 Azure Firewall 위협 인텔리전스를 사용하여 알려진 악성 IP 주소에서 악성 트래픽을 차단하고 기본 수행할 수 있습니다. Azure Firewall을 DNS 프록시로 사용하여 DNS 트래픽을 가로채고 검사하고 DNS 필터링 규칙을 적용할 수도 있습니다.

  • Azure Front Door: Azure Web Application Firewall을 사용하여 에지에서 일반적인 웹 취약성 및 악용으로부터 웹 애플리케이션을 보호할 수 있습니다. Azure Front Door 프리미엄 계층에서 Private Link를 사용하여 퍼블릭 인터넷에 노출하지 않고도 Azure Front Door에서 백 엔드 애플리케이션 서버에 안전하게 액세스할 수 있습니다.

비용 최적화

비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 높이는 방법을 찾는 것입니다. 자세한 내용은 디자인 검토 검사 비용 최적화 목록을 참조하세요.

  • 백 엔드 컴퓨팅: SKU 선택, 복제본(replica) 개수 및 지역과 같은 여러 요인으로 인해 백 엔드 컴퓨팅 서비스 실행 비용이 절감됩니다. 워크로드에 가장 적합한 옵션을 선택하기 전에 컴퓨팅 리소스 의 모든 요소를 고려해야 합니다.

  • Application Gateway: Application Gateway 비용은 인스턴스 수, 인스턴스 크기 및 처리된 데이터의 양에 따라 달라집니다. 자동 크기 조정을 사용하여 트래픽 수요에 따라 인스턴스 수를 조정하여 비용을 최적화할 수 있습니다. 가용성 영역에 영역 중복 SKU를 배포하여 고가용성을 위한 추가 인스턴스의 필요성을 줄일 수도 있습니다.

  • Azure Front Door: Azure Front Door 비용은 라우팅 규칙 수, HTTP 또는 HTTPS 요청 수 및 전송된 데이터의 양에 따라 달라집니다. Azure Front Door 표준 계층 또는 프리미엄 계층을 사용하여 Azure Content Delivery Network, Azure Web Application Firewall 및 Private Link를 사용하여 통합된 환경을 얻을 수 있습니다. Azure Front Door 규칙 엔진 기능을 사용하여 트래픽 관리를 사용자 지정하고 성능 및 비용을 최적화할 수도 있습니다.

    시나리오에 전역 액세스 또는 Azure Front Door의 추가 기능이 필요하지 않은 경우 Application Gateway에서만 이 솔루션을 사용할 수 있습니다. 모든 공용 DNS 레코드를 Application Gateway 수신기에 구성된 공용 IP 주소로 가리킬 수 있습니다.

이 아키텍처에서 구성 요소의 일반적인 사용량을 근사하는 이 솔루션의 예를 참조하세요. 시나리오에 맞게 비용을 조정합니다.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

보안 주체 작성자:

기타 기여자:

비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.

다음 단계