Incident Library

IL-0226 Microsoft Azure · 2025-10-29azurenetworking

호환되지 않는 설정 메타데이터가 전 세계로 퍼져 Azure Front Door 와 Azure CDN 엣지 서버가 크래시했다.

Azure Front Door 와 Azure CDN 은 전 세계에 흩어진 엣지 사이트로 고객과 Microsoft 서비스의 트래픽을 보낸다. AFD 컨트롤 플레인이 고객 설정 메타데이터를 만들면 데이터 플레인이 이를 받아 쓴다. 설정 변경은 전 세계의 모든 엣지 사이트에 배포된다. 배포는 여러 단계로 나뉘고, 설정 보호 시스템이 단계마다 데이터 플레인의 정상 신호를 받은 뒤에만 다음 단계로 넘긴다. 배포가 성공하면 정상 설정의 주기적 스냅샷인 Last Known Good, 줄여서 LKG 도 갱신해 문제가 생기면 자동으로 롤백할 수 있게 한다.

2025-10-29 에 두 컨트롤 플레인 빌드 버전에 걸친 특정 순서의 고객 설정 변경이 호환되지 않는 메타데이터를 만들었다. 변경 자체는 정상적이고 악의가 없었지만, 이 메타데이터가 데이터 플레인의 잠재 버그를 건드려 비동기 처리 중 크래시를 일으켰다. 모든 기능을 서로 다른 컨트롤 플레인 빌드 버전에 걸쳐 검증하지는 않았기 때문에 사전 운영 검증에서 이 결함을 잡지 못했다. 변경은 15:35 UTC 에 들어갔다. 크래시는 약 5분 뒤에 비동기로 드러났고, 그동안 보호 시스템은 정상 신호를 받아 15:39 UTC 까지 엣지 사이트 대부분에 설정을 퍼뜨리고 LKG 도 이 설정으로 갱신했다. 15:41 UTC 부터 사전 운영 환경에서 시작해 15:45 UTC 까지 전 세계 엣지 사이트의 서버가 크래시했고, 엣지 사이트에 있는 AFD 내부 DNS 서비스도 영향을 받았다. 15:43 UTC 에 보호 시스템이 모든 설정 변경의 배포를 막았다. 이 사고는 10월 9일의 AFD 사고와 같은 설정 전파 위험에서 나왔지만 원인이 된 결함은 달랐다.

최신 LKG 에 문제 메타데이터가 들어 있어 팀은 LKG 로도, 그 이전 버전으로도 되돌리지 않았다. 대신 17:10 UTC 부터 최신 LKG 에서 문제 고객 설정을 손으로 지웠다. 17:30 UTC 에 고객 설정 전파를 모두 막고 17:40 UTC 에 고친 LKG 를 전 세계에 배포하기 시작했다. 엣지 사이트마다 고객 설정을 모두 다시 읽어야 했고, 돌아오는 엣지 사이트가 과부하에 걸리지 않도록 트래픽을 천천히 재분배했다. 18:30 UTC 에 AFD DNS 서버가 회복하자 소수의 정상 엣지 사이트로 트래픽을 손으로 돌렸다. 20:20 UTC 에 자동 트래픽 관리로 바꿨고, 10월 30일 00:05 UTC 에 완화를 확인했다. 그 뒤 Azure Resource Manager 수준에서 AFD 고객 설정 변경을 임시로 막았다가 안전장치를 모두 넣은 11월 5일에 풀었다.

심각도
–
영향 범위
Azure Front Door and Azure CDN and the Azure and Microsoft services behind them, including Azure Portal, App Service, SQL Database, Microsoft 365, Entra ID, Dynamics 365, Power Platform and support case creation
영향 사용자
–
지역
global
감지까지
7m
복구까지
8h 24m

증상

2025-10-29 15:41 UTC 부터 Azure Front Door 와 Azure CDN 을 쓰는 고객과 Microsoft 서비스에서 연결 타임아웃 오류와 DNS 해석 문제가 났다. 15:48 UTC 에 모니터링 알림이 울려 조사가 시작됐다.

영향은 15:41 UTC 에 사전 운영 환경에서 시작해 15:45 UTC 까지 전 세계 모든 엣지 사이트로 번졌다. 엣지 서버가 호환되지 않는 고객 설정을 처리하다 크래시했다. Azure Front Door 엣지 사이트에서 도는 AFD 내부 DNS 서비스도 영향을 받아 AFD 고객 요청 일부에서 간헐적인 DNS 해석 오류가 났다.

영향받은 Azure 서비스에는 Azure Active Directory B2C, Azure AI Video Indexer, Azure App Service, Azure Communication Services, Azure Databricks, Azure Healthcare APIs, Azure Maps, Azure Marketplace, Azure Media Services, Azure Portal, Azure Sphere Security Service, Azure SQL Database, Azure Static Web Apps 가 있었다. Microsoft 365, Microsoft Communication Registry 웹사이트, Microsoft Copilot for Security, Microsoft Defender External Attack Surface Management, Microsoft Dragon Copilot, Microsoft Dynamics 365, Power Platform, Microsoft Entra ID 의 Mobility Management Policy Service 와 Identity & Access Management 와 User Management, Microsoft Purview, Microsoft Sentinel Threat Intelligence, Visual Studio App Center 도 영향을 받았다. Azure Portal 과 전화로 지원 케이스를 여는 것도 막혔다.

설정 전파 모니터링은 문제 메타데이터가 들어간 뒤에도 정상 신호를 받았다. 데이터 플레인 크래시가 비동기로 약 5분 뒤에 드러났기 때문에, 설정은 보호 장치를 통과해 15:39 UTC 까지 엣지 사이트 대부분에 퍼졌다. 조사팀은 16:15 UTC 부터 AFD 설정 변경을 집중해서 살폈다.

Microsoft Entra 와 Intune 포털, Azure Active Directory B2C 처럼 AFD 를 쓰는 여러 서비스는 failover 해 고객 영향을 줄였다. Azure Portal 은 17:26 UTC 에 Azure Front Door 를 거치지 않는 경로로 failover 했다. 하지만 대체 경로가 없던 Marketplace 같은 Portal 안의 일부 서비스는 Portal 이 회복한 뒤에도 계속 실패했다. 18:30 UTC 부터 가용성이 나아지기 시작했지만 지연은 높았고, 00:05 UTC 에 가용성과 지연이 사고 전 수준으로 돌아왔다.

고객 공지는 16:18 UTC 에 공개 상태 페이지에, 16:20 UTC 에 Azure Service Health 에 올라갔다. Azure Service Health 로 영향받은 고객에게 가는 알림은 늦게 전달됐다.

증상 간헐적 타임아웃DNS 조회 실패서비스 중단지연 시간 증가

원인

촉발
두 컨트롤 플레인 빌드 버전에 걸쳐 이뤄진 특정 순서의 고객 설정 변경이 호환되지 않는 고객 설정 메타데이터를 만들었다. 15:35 UTC 에 들어간 이 메타데이터가 엣지 사이트 서버에 배포되면서 데이터 플레인의 잠재 버그가 드러났고, 데이터 플레인 서비스가 비동기 처리 중에 크래시했다.

감지

장애는 15:41 UTC 에 시작됐고 15:48 UTC 에 모니터링 알림이 울려 조사가 시작됐다. 그보다 앞선 15:43 UTC 에 설정 보호 시스템이 넓은 데이터 플레인 문제를 감지해 설정 배포를 자동으로 막았다.

조치

후속 조치

교훈

Microsoft 는 라우팅, WAF, 오리진 변경을 전 세계에 빠르게 배포해야 하는 전 세계 CDN 에는 설정 전파 위험이 따른다고 봤다. 이번 사고와 10월 9일의 AFD 사고는 모두 이 위험에서 나왔다. 설정 보호 시스템은 데이터 플레인의 정상 신호를 보고 다음 단계로 넘긴다. 이번에는 크래시가 나중에 도는 비동기 처리에서 늦게 드러나, 문제 메타데이터가 보호 시스템을 통과했다. 앞선 사고에서 얻은 교훈과 개선 항목 일부가 이번 사고에도 들어맞았다. Microsoft 는 고객에게 리전 장애나 네트워크 장애 때도 가용성을 지키는 전 세계 HTTP 진입 계층을 만들라고 권했다. 관리 포털을 쓸 수 없을 때는 REST API 나 PowerShell 로 리소스를 관리하고, 알맞은 사람이 서비스 문제를 알 수 있도록 Azure Service Health 알림을 설정하라고도 권했다.

출처

참고 문서

관련 사례

내 클러스터에도 있는지 확인하기

kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이 사례와 같은 상태를 점검합니다. 이 사례의 구성 요소: CDN 과 엣지 네트워크, DNS 서버와 레코드. 점검 항목의 근거는 이 사례 같은 공개 보고서입니다.

AI 도구와 스크립트용

API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.