0Pricing
Azure Fundamentals · 강의

CDN 규칙으로 성능 최적화

규칙 엔진을 사용해 HTTP를 HTTPS로 리디렉션하고 보안 헤더를 추가하며, 특정 국가에서 콘텐츠에 액세스하지 못하도록 지역 필터링을 적용합니다.

CDN 규칙으로 성능 최적화은(는) CoddyKit의 무료 Azure Fundamentals 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Azure Fundamentals 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Azure Fundamentals 강의에는 총 4개의 강의가 포함되어 있습니다.

규칙 엔진이 중요한 이유

Azure Front Door의 규칙 엔진(Standard/Premium에서는 Rule sets라고 함)을 사용하면 캐시되거나 원본으로 전달되기 전에 에지 PoP에서 HTTP 요청과 응답을 가로채고 수정할 수 있습니다. 규칙 엔진이 없다면 HTTP에서 HTTPS로의 Redirect, 보안 응답 헤더, 지역 차단과 같은 작업을 원본 애플리케이션 코드에서 처리해야 하므로 지연 시간이 늘어나고 보안 문제와 비즈니스 로직이 서로 결합됩니다. 에지에서 규칙을 실행하면 더 빠르게 처리되고 원본의 부하가 줄어듭니다.

HTTP에서 HTTPS로 Redirect

가장 일반적인 규칙 엔진 사용 사례 중 하나는 HTTPS를 강제하는 것입니다. 클라이언트가 HTTP를 통해 사이트를 요청하면 Front Door 에지의 Redirect 규칙이 요청을 원본에 전달하지 않고 HTTPS URL을 가리키는 301 Moved Permanently(또는 302 Found) 응답을 즉시 반환합니다. 이는 원본 측 Redirect보다 빠르고 모든 트래픽이 전송 중 암호화되도록 보장합니다. RequestScheme 조건이 HTTP와 같을 때 요청에 대한 Redirect 작업으로 구성하십시오.

// Rules engine rule — redirect HTTP to HTTPS
// Match condition: RequestScheme Equals HTTP
// Action: URL Redirect
//   Redirect type: Moved (301)
//   Destination protocol: HTTPS
//   Destination host: {http.request.host}
//   Destination path: {http.request.uri.path}
//   Query string: {http.request.uri.querystring}

보안 응답 헤더 추가

최신 브라우저는 일반적인 공격을 방지하는 HTTP 보안 헤더를 지원합니다. 원본 서버를 수정하지 않고도 규칙 엔진의 응답 헤더 추가 작업을 사용하여 모든 응답에 이러한 헤더를 추가할 수 있습니다. 주요 헤더로는 Strict-Transport-Security(일정 기간 동안 HTTPS 강제), X-Content-Type-Options: nosniff(MIME 스니핑 방지), X-Frame-Options: DENY(클릭재킹 방지), Content-Security-Policy(콘텐츠 원본 제한)가 있습니다. 에지에서 이러한 헤더를 추가하면 모든 원본에 일관되게 적용할 수 있습니다.

// Rules engine — add security headers to all responses
// Action 1: Append response header
//   Header name: Strict-Transport-Security
//   Value: max-age=31536000; includeSubDomains
// Action 2: Append response header
//   Header name: X-Content-Type-Options
//   Value: nosniff
// Action 3: Append response header
//   Header name: X-Frame-Options
//   Value: DENY

규칙별 캐시 설정 재정의

규칙 엔진을 사용하면 특정 URL 패턴에 대해 기본 캐시 TTL을 재정의할 수 있습니다. 예를 들어 /static/images/*는 30일 동안 캐시하고 /api/* 응답은 60초 동안만 캐시할 수 있습니다. RequestUri에 일치 조건을 사용하고 사용자 지정 캐시 기간을 설정하는 Route 구성 재정의 작업을 지정하십시오. 이를 통해 콘텐츠 유형마다 별도의 Route를 여러 개 만들지 않고도 캐시 동작을 세밀하게 제어할 수 있습니다.

// Rules engine — cache API responses for 60 seconds
// Match condition: RequestUri BeginsWith /api/
// Action: Route configuration override
//   Cache: Enabled
//   Caching duration: 0 days, 0 hours, 1 minute
//   Query string caching: Include All

// Rules engine — cache static images for 30 days
// Match condition: RequestUri BeginsWith /static/images/
// Action: Route configuration override
//   Cache: Enabled
//   Caching duration: 30 days

에지에서 URL 재작성

URL 재작성 작업은 클라이언트에 표시되는 URL은 변경하지 않고 원본으로 전달하기 전에 요청 URL을 수정합니다. 이를 사용하면 한 URL 구조의 요청을 다른 백엔드 경로로 보낼 수 있습니다. 예를 들어 클라이언트 링크를 업데이트하지 않고 백엔드 API 변경에 대응하기 위해 /products/item/{id}를 /catalog/v2/products/{id}로 재작성할 수 있습니다. URL 재작성은 규칙 엔진의 작업이며 문자열 치환 또는 캡처 그룹을 사용하여 URL path를 수정합니다.

지역 필터링 규칙

규칙 엔진 수준의 지역 필터링을 사용하면 클라이언트 IP에서 추정한 지리적 위치를 기준으로 특정 국가의 사용자를 Redirect하거나 차단할 수 있습니다. 403을 반환하는 CDN 지역 필터링과 달리, 규칙 엔진의 지역 필터링은 더 유연합니다. 차단된 국가의 사용자를 지역별 서비스 제공 여부를 설명하는 랜딩 페이지로 Redirect하거나, 특정 국가의 사용자를 지역별 원본 그룹으로 라우팅할 수 있습니다(예: GDPR 준수를 위해 EU 사용자를 EU 원본으로 라우팅). RemoteAddress 지역 일치는 MaxMind의 IP-국가 데이터베이스를 사용합니다.

요청 헤더 조작

규칙 엔진은 원본으로 전달하기 전에 요청 헤더를 추가, 덮어쓰기 또는 삭제할 수 있습니다. 일반적인 사용 사례는 X-Forwarded-For 또는 X-Front-Door-Id와 같은 사용자 지정 헤더를 추가하여 원본이 요청이 Front Door를 통해 전달되었음을 알고 유효성을 검사할 수 있게 하는 것입니다. 또한 원래 Host 헤더를 삭제하고 원본 호스트 이름으로 바꿀 수도 있습니다. 이는 원본이 Host 헤더를 검증할 때 중요합니다. 이를 통해 원본 서버에 표시되는 내용을 완전히 제어할 수 있습니다.

요청 헤더를 기준으로 라우팅

규칙 엔진 조건은 요청 헤더 값과 일치할 수 있으므로 정교한 라우팅 로직을 구현할 수 있습니다. 예를 들어 X-API-Version: 2 헤더가 포함된 요청은 v2 API를 실행하는 다른 원본 그룹으로 라우팅하고, 해당 헤더가 없는 요청은 v1 원본으로 보낼 수 있습니다. 이를 통해 각 API 버전에 별도의 호스트 이름을 사용하지 않고도 에지에서 블루-그린 API 버전 관리를 구현할 수 있습니다. 헤더 기반 라우팅은 사용자 지정 사용자 세그먼트 쿠키를 기준으로 라우팅하는 A/B 테스트에도 사용됩니다.

에지에서 응답 압축

Front Door의 응답 압축은 PoP에서 제공하기 전에 gzip 또는 Brotli를 사용하여 텍스트 기반 응답(HTML, CSS, JavaScript, JSON)을 압축합니다. 압축은 큰 JS 번들에 가장 효과적이며 전송 크기를 최대 70%까지 줄일 수 있습니다. Route 설정에서 압축을 활성화하고 압축할 MIME 유형을 지정하십시오. 압축된 콘텐츠는 PoP에 압축된 형태로 캐시되므로 각 자산에 대한 첫 번째 요청에서만 압축이 수행되고, 이후 요청에서는 캐시된 압축 파일이 즉시 제공됩니다.

원본 보호

Origin Shield는 Front Door가 PoP 에지 노드와 원본 사이에 배치하는 선택적 추가 캐싱 계층입니다. 이를 활성화하면 100개가 넘는 각 에지 PoP가 캐시되지 않은 콘텐츠를 원본에 독립적으로 요청하는 대신, 모든 PoP가 캐시 누락을 하나의 지역 원본 보호 PoP로 전달하고 이 PoP가 다시 원본으로 전달합니다. 이렇게 하면 에지 PoP에서 전 세계에 콘텐츠를 제공하면서도 원본에 도달하는 요청 수(이를 원본 오프로딩 비율이라고 함)를 크게 줄일 수 있습니다.

Front Door Explorer로 규칙 테스트

규칙 엔진 변경 사항을 운영 환경에 배포하기 전에 포털의 진단 및 테스트 도구를 사용하여 유효성을 검사하십시오. 탐지 모드가 WAF 로그로 설정된 진단 설정 창에서 어떤 규칙이 일치하는지 확인할 수 있습니다. 규칙 엔진의 경우 스테이징 환경에 배포한 후 브라우저 개발자 도구에서 실제 요청 및 응답 헤더를 검사하거나, curl -v를 사용하여 특정 요청을 보내고 응답 헤더와 Redirect 동작이 운영 환경으로 전환하기 전에 예상대로 작동하는지 확인할 수도 있습니다.

# Test HTTP-to-HTTPS redirect at the CDN/Front Door edge
curl -v -L http://myapp.azurefd.net/ 2>&1 | grep -E '< (HTTP|Location)'
# Expected output:
# < HTTP/1.1 301 Moved Permanently
# < Location: https://myapp.azurefd.net/

빠른 확인

이 단원에서 다룬 Microsoft Azure Fundamentals (AZ-900) 개념에 대한 이해도를 확인해 보십시오.

단원 요약

이 단원에서는 다음을 배웠습니다. Front Door 규칙 엔진은 원본을 변경하지 않고 에지에서 HTTP-HTTPS Redirect, 보안 응답 헤더, 캐시-TTL 재정의를 처리합니다. URL 재작성은 원본으로 전달되는 요청 경로를 사용자에게 알리지 않고 수정하는 반면, URL Redirect는 클라이언트에 표시되는 URL을 변경합니다. 또한 Origin Shield는 캐시 누락 요청을 지역 보호 노드로 통합하여 원본 부하를 줄입니다. 다음 단원에서는 애플리케이션에 지능을 추가하는 Azure AI Services를 살펴보겠습니다.

자주 묻는 질문

“CDN 규칙으로 성능 최적화” 강의는 무료인가요?

네 — “CDN 규칙으로 성능 최적화” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Azure Fundamentals 강의 전체를 잠금 해제할 수 있습니다. Azure Fundamentals 강의에는 총 4개의 강의가 포함되어 있습니다.

“CDN 규칙으로 성능 최적화”에서 뭘 배우나요?

규칙 엔진을 사용해 HTTP를 HTTPS로 리디렉션하고 보안 헤더를 추가하며, 특정 국가에서 콘텐츠에 액세스하지 못하도록 지역 필터링을 적용합니다. 브라우저에서 직접 실행하는 실습 코드로 Azure Fundamentals을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Azure Fundamentals을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Azure Fundamentals은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“CDN 규칙으로 성능 최적화” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Azure Fundamentals 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Azure Fundamentals 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Azure CDN 프로필 및 엔드포인트
  2. Azure Front Door: 글로벌 부하 분산
  3. Front Door의 웹 애플리케이션 방화벽
  4. CDN 규칙으로 성능 최적화
← Azure Fundamentals(으)로 돌아가기