Azure Front Door는 전 세계 Microsoft 엣지에서 HTTP(S) 요청을 받아 가장 가까운 정상 원본으로 보내는 글로벌 L7 부하 분산기이자 CDN입니다. Anycast로 사용자와 가까운 엣지에서 TLS를 종료하고, 캐시와 WAF를 거친 뒤 Microsoft 백본으로 원본까지 전달합니다. 지금은 Standard와 Premium을 쓰며, Private Link 원본과 관리형 WAF 규칙은 Premium에서만 됩니다.
1. Front Door란
앞 글의 Application Gateway는 한 리전 안에서 동작하는 L7 부하 분산기였습니다. Front Door는 같은 L7이지만 리전 밖, Microsoft 엣지(100개 넘는 도시의 118곳 이상)에서 동작합니다. 사용자는 Anycast로 가장 가까운 엣지에 접속하고, 엣지는 TLS를 종료한 뒤 캐시에 있으면 바로 응답하고, 없으면 Microsoft 전용 WAN을 통해 원본으로 요청을 보냅니다.
사용자와 엣지 사이의 짧은 구간에서 TCP·TLS 연결을 맺고, 엣지와 원본 사이는 이미 열려 있는 연결을 재사용하는 split TCP 구조라 먼 리전의 원본도 빠르게 응답합니다. 여러 리전에 같은 서비스를 두고 가장 가까운 곳으로 보내거나, 한 리전이 죽으면 다른 리전으로 넘기는 글로벌 분산이 주 용도입니다.
2. 동작 구조

사용자는 가장 가까운 엣지에 접속하고, 엣지는 지연 시간이 가장 짧은 정상 원본으로 요청을 보내는 구성
| 구성 요소 | 역할 |
| 프로필 | Front Door 리소스 자체입니다. Standard, Premium 계층을 여기서 정합니다. |
| 엔드포인트 | xxx.azurefd.net 형식의 기본 도메인입니다. 사용자 지정 도메인을 연결하고 관리형 인증서를 쓸 수 있습니다. |
| 경로(Route) | 도메인과 경로 패턴(/*, /api/* 등)을 원본 그룹에 연결합니다. 캐시, HTTPS 리디렉션도 경로 단위로 설정합니다. |
| 원본 그룹, 원본 | 요청을 받을 백엔드 묶음입니다. App Service, Application Gateway, Storage, 공인 IP, 외부 서버 등을 원본으로 둡니다. |
| 규칙 집합 | 헤더 수정, URL 재작성·리디렉션, 캐시 동작 변경을 조건별로 적용합니다. |
| 보안 정책 | 도메인에 WAF 정책을 연결합니다. |
3. 원본 선택과 상태 프로브
Front Door는 정상 원본 중에서 우선순위, 지연 시간, 가중치 순서로 대상을 좁힙니다. 먼저 가장 높은 우선순위(1이 가장 높음)의 원본만 남기고, 그중 가장 빠른 원본과 허용 지연 범위 안에 있는 원본을 고른 뒤, 가중치 비율로 나눕니다.
| 설정 | 값 | 용도 |
| 우선순위 | 1~5 | 액티브-스탠바이, 장애 조치 |
| 지연 시간 민감도 | 기본 0ms | 값을 키우면 더 많은 원본에 나눠 보냄 |
| 가중치 | 1~1,000, 기본 50 | 점진적 전환, 카나리 배포 |
| 세션 선호도 | 쿠키 기반 | 같은 사용자를 같은 원본으로 |
상태 프로브는 새 프로필 기준 HEAD 요청을 기본 30초마다 보내고, 200 응답만 정상으로 봅니다. 프로브는 엣지마다 따로 보내기 때문에 원본이 받는 프로브 요청 수가 생각보다 많습니다. 기본 설정에서 엣지 수 × 분당 2회 정도이므로, 프로브 경로는 DB를 조회하지 않는 가벼운 페이지로 둡니다.
4. 캐싱
캐시는 경로 단위로 켭니다. GET 요청만 캐시하고, 응답에 Cache-Control: private, no-cache, no-store가 있으면 캐시하지 않습니다. 원본이 Cache-Control이나 Expires를 주지 않으면 Front Door가 1~3일 사이에서 임의로 캐시 시간을 정하므로, 자주 바뀌는 콘텐츠는 원본에서 캐시 헤더를 명시하는 편이 안전합니다.
| 쿼리 문자열 동작 | 캐시 키 |
| 쿼리 문자열 무시 | 쿼리 문자열과 관계없이 같은 캐시 |
| 쿼리 문자열 사용 | URL과 쿼리 문자열 조합마다 따로 캐시 |
| 지정한 쿼리 문자열 무시 | 지정한 파라미터만 빼고 캐시 키 생성 |
| 지정한 쿼리 문자열 포함 | 지정한 파라미터만 넣어 캐시 키 생성 |
배포 후 바로 반영해야 하면 /images/* 같은 경로나 / 전체를 캐시 제거(Purge)합니다.
5. 원본 보호

Premium은 Private Link로 원본의 공용 접근을 막고, 공용 원본은 서비스 태그와 X-Azure-FDID 헤더를 함께 확인하는 구성
Front Door를 앞에 둬도 원본이 인터넷에 열려 있으면 공격자가 원본 주소로 직접 들어와 WAF를 우회할 수 있습니다. Premium은 원본에 Private Link로 연결하고, 원본 쪽에서 연결을 승인한 뒤 공용 네트워크 액세스를 끄면 Front Door를 통한 요청만 들어옵니다.
Standard이거나 공용 원본을 써야 한다면 두 가지를 함께 적용합니다. NSG나 방화벽에서 AzureFrontDoor.Backend 서비스 태그만 허용하고, 원본 애플리케이션이나 Application Gateway에서 X-Azure-FDID 헤더가 내 Front Door 프로필 ID와 같은지 확인합니다. 서비스 태그는 모든 Front Door 고객이 공유하는 주소 대역이라 IP 제한만으로는 다른 사람의 Front Door를 막을 수 없기 때문입니다.
6. Standard와 Premium
| 기능 | Standard | Premium |
| 글로벌 부하 분산, 캐싱, 관리형 인증서 | 가능 | 가능 |
| WAF 사용자 지정 규칙 | 가능 | 가능 |
| WAF 관리형 규칙(OWASP) | 불가 | 가능 |
| 봇 보호 | 불가 | 가능 |
| Private Link 원본 | 불가 | 가능 |
기존 Front Door (classic)는 2027년 3월 31일에 종료됩니다. classic을 쓰고 있다면 Standard나 Premium으로 옮길 계획을 세워 둡니다.
7. Azure CLI로 만들어 보기
7.1 프로필, 엔드포인트, 원본 그룹
RG=rg-web
AFD="--resource-group $RG --profile-name afd-web"
az afd profile create $AFD --sku Premium_AzureFrontDoor
az afd endpoint create $AFD --endpoint-name web --enabled-state Enabled
# HEAD /health 를 30초마다, 최근 4번 중 3번 성공하면 정상
az afd origin-group create $AFD --origin-group-name og-web \
--probe-request-type HEAD --probe-protocol Https \
--probe-interval-in-seconds 30 --probe-path /health \
--sample-size 4 --successful-samples-required 3 \
--additional-latency-in-milliseconds 50
7.2 원본과 경로
# 한국 중부를 우선, 일본 동부를 대기로
az afd origin create $AFD --origin-group-name og-web --origin-name krc \
--host-name app-krc.azurewebsites.net \
--origin-host-header app-krc.azurewebsites.net \
--priority 1 --weight 50 --enabled-state Enabled \
--http-port 80 --https-port 443
az afd origin create $AFD --origin-group-name og-web --origin-name jpe \
--host-name app-jpe.azurewebsites.net \
--origin-host-header app-jpe.azurewebsites.net \
--priority 2 --weight 50 --enabled-state Enabled \
--http-port 80 --https-port 443
az afd route create $AFD --endpoint-name web --route-name rt-web \
--origin-group og-web --patterns-to-match "/*" \
--supported-protocols Http Https --https-redirect Enabled \
--forwarding-protocol HttpsOnly --link-to-default-domain Enabled
배포가 전 세계 엣지에 퍼지는 데 몇 분 걸립니다. 이후 엔드포인트 주소로 접속해 응답 헤더의 X-Azure-Ref 값이 보이면 Front Door를 거친 것이고, 원본 한 곳을 중지해 다른 원본으로 넘어가는지 확인합니다.
8. 운영 시 주의점
| 항목 | 확인할 것 |
| 원본 직접 접속 | Private Link 또는 서비스 태그 + X-Azure-FDID로 원본을 잠급니다. |
| 프로브 부하 | 프로브는 엣지마다 오므로 가벼운 경로를 쓰고, 원본이 하나뿐이면 프로브를 꺼도 됩니다. |
| 캐시 시간 | 캐시 헤더가 없으면 1~3일 캐시될 수 있습니다. API 경로는 캐시를 끄거나 no-store를 줍니다. |
| 클라이언트 IP | 원본에는 Front Door 주소로 들어옵니다. 실제 사용자 IP는 X-Forwarded-For 헤더로 확인합니다. |
| 호스트 헤더 | App Service 원본은 원본 호스트 헤더를 원본 주소와 같게 두거나, 사용자 지정 도메인을 원본에도 등록합니다. |
| classic 종료 | Front Door (classic)는 2027년 3월 31일 종료 예정입니다. |
9. 정리
- Front Door는 Microsoft 엣지에서 TLS 종료, 캐시, WAF를 처리하고 가장 가까운 정상 원본으로 보내는 글로벌 L7 서비스입니다.
- 원본은 우선순위, 지연 시간, 가중치 순서로 고르고, 프로브는 HEAD 30초 간격, 200 응답만 정상입니다.
- 원본은 Premium의 Private Link나 서비스 태그 + X-Azure-FDID 조합으로 반드시 잠급니다.
참고
'Cloud > Azure' 카테고리의 다른 글
| [Azure] Azure WAF 정책과 규칙 정리 (0) | 2026.09.25 |
|---|---|
| [Azure] Traffic Manager 정리 (0) | 2026.09.25 |
| [Azure] Application Gateway 정리 (0) | 2026.09.25 |
| [Azure] Azure Load Balancer 정리 (0) | 2026.09.25 |
| [Azure] Hub-Spoke와 Virtual WAN 비교 (0) | 2026.09.25 |