Azure Front Door를 사용하여 웹 애플리케이션 가속화 및 보호
Azure Front Door는 웹 애플리케이션 및 콘텐츠의 대기 시간을 낮추고 더 빠르게 배달할 수 있는 CDN(글로벌 분산 콘텐츠 배달 네트워크)입니다. 또한 Front Door를 사용하면 최고 수준의 복원력으로 콘텐츠를 사용할 수 있으며 고급 애플리케이션 부하 분산 장치, 트래픽 가속 및 보안을 비롯한 다양한 기능을 제공합니다.
공개적으로 연결되는 웹 애플리케이션 앞에 Front Door를 배포하는 것이 좋습니다.
Azure에서 잘 설계된 솔루션
Azure Well-Architected Framework는 아키텍처 우수성의 다섯 가지 핵심 요소를 설명합니다. Azure Front Door를 사용하면 기본 제공 기능과 성능을 사용하여 5가지 핵심 요소를 각각 해결할 수 있습니다.
성능 효율성
Front Door는 애플리케이션의 성능을 가속화하는 데 도움이 되는 몇 가지 기능을 제공합니다.
- 캐싱: Front Door는 네트워크 에지에서 콘텐츠를 캐시하는 강력한 CDN(콘텐츠 배달 네트워크)을 제공합니다. 거의 모든 웹 애플리케이션에는 캐시 가능한 콘텐츠가 포함됩니다. 이미지 및 JavaScript 파일과 같은 정적 자산은 캐시할 수 있습니다. 또한 많은 API는 짧은 기간 동안도 캐시할 수 있는 응답을 반환합니다. 캐싱은 애플리케이션의 성능을 향상시키고 애플리케이션 서버의 부하를 줄이는 데 도움이 됩니다.
- 압축: 많은 응답 형식을 압축하여 애플리케이션의 응답 시간을 향상시킬 수 있습니다.
- 글로벌 트래픽 가속: Front Door의 글로벌 트래픽 가속 기능은 Microsoft의 고속 백본 네트워크를 통해 요청을 라우팅하여 동적 웹 애플리케이션의 성능을 향상시키는 데 도움이 됩니다.
- TLS 종료: Front Door에 대한 연결은 가장 가까운 PoP(Front Door 지점)에서 종료됩니다. TLS 암호 해독은 PoP에서 수행됩니다. TLS 암호 해독을 수행할 때 가장 큰 성능 저하는 초기 핸드셰이크입니다. 성능을 향상시키기 위해 암호 해독을 수행하는 서버는 TLS 세션 ID를 캐시하고 TLS 세션 티켓을 관리합니다. Front Door PoP에서 TLS 연결이 종료되는 경우 동일한 클라이언트의 모든 요청에서 캐시된 값을 사용할 수 있습니다. 원본 서버에서 작업이 수행된 경우 클라이언트의 요청이 다른 서버로 이동할 때마다 클라이언트는 다시 인증해야 합니다. TLS 티켓을 사용하면 이 문제를 완화할 수 있지만 모든 클라이언트에서 지원되지 않으며 구성 및 관리가 어려울 수 있습니다.
보안
Front Door의 보안 기능은 여러 가지 유형의 위협으로부터 애플리케이션 서버를 보호하는 데 도움이 됩니다.
- 엔드투엔드 TLS: Front Door는 엔드투엔드 TLS 암호화를 지원합니다. Front Door TLS/SSL 오프로드는 TLS 연결을 종료하고, Azure Front Door에서 트래픽의 암호를 해독한 다음, 트래픽을 다시 암호화한 후에 백 엔드에 전달합니다.
- 관리형 TLS 인증서: Front Door는 강력한 암호화 및 신뢰로 애플리케이션을 보호할 수 있도록 인증서를 발급하고 관리할 수 있습니다.
- 사용자 지정 TLS 인증서: 자체 TLS 인증서를 가져와야 하는 경우 Front Door를 사용하면 관리 ID를 사용하여 인증서가 포함된 키 자격 증명 모음에 액세스할 수 있습니다.
- 웹 애플리케이션 방화벽: Front Door의 WAF(웹 애플리케이션 방화벽)는 애플리케이션에 다양한 보안 기능을 제공합니다. 관리되는 규칙 집합은 수신되는 요청에서 의심스러운 콘텐츠를 검색합니다. 봇 보호 규칙은 봇의 트래픽을 식별하고 대응합니다. 지역 필터링 및 속도 제한 기능은 예기치 않은 트래픽으로부터 애플리케이션 서버를 보호합니다.
- 프로토콜 차단: Front Door는 HTTP 및 HTTPS 프로토콜에 대한 트래픽만 허용하고 알려진
Host
헤더를 사용하는 유효한 요청만 처리합니다. 이 동작으로 인해 애플리케이션은 다양한 프로토콜에서 다양한 유형의 공격으로부터 보호됩니다. - DDoS 보호: Front Door의 아키텍처로 인해 대규모 DDoS(분산 서비스 거부) 공격을 흡수하고 트래픽이 애플리케이션에 도달하지 못하도록 방지할 수도 있습니다.
- Private Link 원본: Private Link 통합 을 사용하면 백 엔드 애플리케이션을 보호할 수 있으므로 Front Door 및 해당 보안 보호를 통해서만 트래픽이 애플리케이션에 도달할 수 있습니다.
엄격한 네트워크 보안 요구 사항이 있는 경우 Azure Front Door를 사용하여 애플리케이션에 대한 인바운드 HTTP 및 HTTPS 트래픽을 관리하고 Azure Firewall을 사용하여 비 HTTP 및 송신 트래픽을 제어할 수 있습니다.
안정성
Front Door를 사용하여 복원력 있고 고가용성 솔루션을 만들 수 있습니다.
- 부하 분산 및 장애 조치: Front Door는 전역 부하 분산 장치입니다. Front Door는 원본 서버의 상태를 모니터링하고 원본을 사용할 수 없게 되면 Front Door에서 요청을 대체 원본으로 라우팅할 수 있습니다. Front Door를 사용하여 원본 간에 트래픽을 분산하여 하나의 원본 서버에서 부하를 줄일 수도 있습니다.
- 애니캐스트 라우팅: Front Door 자체에는 많은 수의 PoP가 있으며, 각 PoP는 모든 요청에 트래픽을 제공할 수 있습니다. 애니캐스트 라우팅은 트래픽을 사용 가능한 가장 가까운 Front Door PoP로 조정하고, PoP를 사용할 수 없는 경우 클라이언트는 다음으로 가장 가까운 PoP로 자동으로 라우팅됩니다.
- 캐싱: Front Door 캐시를 사용하여 애플리케이션 서버의 부하를 줄입니다. 서버를 사용할 수 없는 경우 Front Door는 애플리케이션이 복구될 때까지 캐시된 응답을 계속 제공할 수 있습니다.
비용 최적화
Front Door를 사용하면 Azure 솔루션을 실행하는 비용을 줄일 수 있습니다.
- 캐싱: 캐싱을 사용하도록 설정하면 전역 Front Door 에지 노드에서 콘텐츠가 반환됩니다. 이 방법은 글로벌 대역폭 요금을 줄이고 성능을 향상시킵니다.
- 압축: Front Door가 응답을 압축하면 솔루션에 대한 대역폭 요금을 줄일 수 있습니다.
- 원본 간에 트래픽 분산: Front Door를 사용하여 애플리케이션 서버 크기를 조정하거나 트래픽 급증에 대한 서버 용량을 과도하게 프로비전할 필요가 없습니다. 각 Front Door PoP는 사용 가능한 경우 캐시된 콘텐츠를 반환하여 애플리케이션 서버의 부하를 줄일 수 있습니다. 여러 백 엔드 서버에 트래픽을 분산하여 각 개별 서버의 부하를 줄일 수도 있습니다.
- 공유 프로필: 다양한 애플리케이션에 단일 Front Door 프로필을 사용할 수 있습니다. Front Door에서 여러 애플리케이션을 구성하는 경우 각 애플리케이션에서 비용을 공유하고 수행해야 하는 구성을 줄일 수 있습니다.
운영 우수성
Front Door를 사용하면 최신 인터넷 애플리케이션을 실행하는 운영 부담을 줄이고 애플리케이션을 수정하지 않고도 솔루션을 변경할 수 있습니다.
- 관리되는 TLS 인증서: Front Door는 인증서를 발급하고 관리할 수 있습니다. 이 기능은 인증서 갱신을 관리할 필요가 없으며 유효하지 않거나 만료된 TLS 인증서를 사용하여 중단될 가능성을 줄입니다.
- 와일드카드 TLS 인증서: DNS 및 TLS 인증서를 비롯한 와일드카드 도메인에 대한 Front Door의 지원을 통해 각 하위 도메인에 대해 Front Door를 다시 구성하지 않고도 여러 호스트 이름을 사용할 수 있습니다.
- HTTP/2: Front Door를 사용하면 애플리케이션 서버를 수정하지 않고도 HTTP/2 지원을 통해 레거시 애플리케이션을 현대화할 수 있습니다.
- 규칙 엔진: Front Door 규칙 엔진을 사용하면 클라이언트에 영향을 주지 않고 솔루션의 내부 아키텍처를 변경할 수 있습니다.
- 코드 제공 인프라: Bicep, Terraform, ARM 템플릿, Azure PowerShell 및 Azure CLI를 비롯한 IaC(코드 제공 인프라) 기술을 사용하여 Front Door를 배포하고 구성할 수도 있습니다.
솔루션 아키텍처
Azure Front Door를 사용하는 솔루션을 배포하는 경우 트래픽이 클라이언트에서 Front Door로, Front Door에서 원본으로 이동하는 방식을 고려해야 합니다.
다음 다이어그램에서는 Front Door를 사용하는 일반 솔루션 아키텍처를 보여 줍니다.
클라이언트-Front Door
클라이언트의 트래픽은 먼저 Front Door PoP에 도착합니다. Front Door에는 전 세계적으로 많은 수의 PoP가 분산되어 있으며 애니캐스트는 클라이언트를 가장 가까운 PoP로 라우팅합니다.
Front Door의 PoP에서 요청을 받으면 Front Door는 사용자 지정 도메인 이름을 사용하여 요청을 처리합니다. Front Door는 Front Door 관리형 TLS 인증서 또는 사용자 지정 TLS 인증서를 사용하여 TLS 오프로드를 수행합니다.
PoP는 Front Door 프로필에 지정한 구성에 따라 다음을 비롯한 많은 함수를 수행합니다.
- 다양한 유형의 DDoS 공격으로부터 솔루션을 보호합니다.
- Front Door WAF를 사용하여 알려진 취약성에 대한 요청을 검사합니다.
- 캐시된 응답을 반환하여 성능을 향상시킵니다(Front Door PoP에 저장되고 요청에 유효한 경우).
- 응답을 압축하여 성능을 향상시킵니다.
- Front Door에서 직접 HTTP 리디렉션 응답을 반환합니다.
- 라우팅 아키텍처에 따라 트래픽을 수신할 최상의 원본을 선택합니다.
- 규칙 엔진을 사용하여 요청을 수정합니다.
Front Door는 인바운드 요청 처리를 완료한 후 클라이언트에 직접 응답하거나(예: 캐시된 결과를 반환하는 경우) 요청을 원본으로 전달합니다.
Front Door에서 원본으로
Front Door는 프라이빗 링크를 사용하고 공용 IP 주소를 사용하는 두 가지 방법으로 원본으로 트래픽을 보낼 수 있습니다.
Front Door의 프리미엄 SKU는 프라이빗 링크를 사용하여 일부 원본 유형으로 트래픽 전송을 지원합니다. 원본에 대한 프라이빗 링크를 구성하는 경우 트래픽은 개인 IP 주소를 사용합니다. 이 방법을 사용하여 원본은 특정 Front Door 인스턴스의 트래픽만 허용하고 인터넷에서 온 트래픽을 차단할 수 있습니다.
Front Door PoP가 공용 IP 주소를 사용해 원본에 요청을 보내면 새 TCP 연결이 시작됩니다. 이 동작으로 인해 원본 서버는 클라이언트 대신 Front Door의 IP 주소에서 시작된 요청을 확인합니다.
원본으로 트래픽을 보내기 위해 어떤 방법을 사용하든, 일반적으로 Front Door 프로필의 트래픽을 예상하도록 원본을 구성하고 Front Door를 통과하지 않는 트래픽을 차단하는 것이 좋습니다. 자세한 내용은 Azure Front Door 원본에 대한 보안 트래픽을 참조하세요.
응답 처리
Front Door의 PoP는 아웃바운드 응답도 처리합니다. 응답 처리에는 다음 단계가 포함될 수 있습니다.
- 이후 요청을 가속화하기 위해 PoP의 캐시에 대한 응답을 저장합니다.
- 규칙 엔진을 사용하여 응답 헤더 수정
분석 및 보고
Front Door는 수신되는 모든 요청을 처리하므로 솔루션을 통해 흐르는 모든 트래픽을 볼 수 있습니다. Front Door의 보고서, 메트릭 및 로그를 사용하여 트래픽 패턴을 이해할 수 있습니다.
팁
Front Door를 사용하는 경우 일부 요청이 원본 서버에서 처리되지 않을 수 있습니다. 예를 들어 Front Door의 WAF는 일부 요청을 차단할 수 있으며 다른 요청에 대해 캐시된 응답을 반환할 수 있습니다. Front Door의 원격 분석을 사용하여 솔루션의 트래픽 패턴을 이해합니다.
다음 단계
Front Door 프로필 만들기 방법에 대해 알아봅니다.