IL-0407 Microsoft Azure · 2024-07-13azureai-infra
정리 자동화가 Azure OpenAI 의 GPU VM 과 모델 엔드포인트를 지워 28개 지역 중 14곳에서 5xx 오류가 났다
Azure OpenAI 는 내부 자동화 시스템으로 서비스에 필요한 Azure 리소스를 만들고 관리한다. 이 리소스에는 OpenAI 대형 언어 모델을 올린 Azure GPU VM 과, 백엔드 추론 요청을 처리하는 managed online endpoint 를 올린 Azure Machine Learning workspace 가 들어간다. 자동화 서비스 자체는 지역 서비스지만, 모든 지역의 리소스 상태는 코드 저장소에 있는 전역 설정 파일 하나로 정의했다. 서비스가 빠르게 커지면서 여러 구성 요소가 같은 리소스 구조를 쓰기 시작했고, 일부 리소스 그룹에는 자동화가 관리하는 리소스와 자동화가 모르는 리소스가 섞였다. 설정 파일은 리소스 그룹 14개에 더는 필요 없는 리소스만 있다고 적고 있었지만, 실제로는 서비스에 필요한 GPU VM 과 모델 엔드포인트가 그 안에 있었다.
Microsoft 는 구독 한도 문제를 풀고 공격 표면을 줄이려고 쓰지 않는 리소스를 정리하고 있었고, 그 작업의 하나로 전역 설정 파일에서 이 14개 리소스 그룹을 뺐다. 변경은 커밋 직후 적용됐고 그 안의 리소스가 짧은 시간에 모두 지워졌다. 변경은 전역 범위의 콘텐츠 업데이트로 나갔다. 그래서 변경이 지역 하나씩 차례로 적용되게 통제하는 안전 배포 절차를 거치지 않았고, 장애가 여러 지역으로 번졌다. 2024년 7월 13일 00:00 UTC 부터 28개 지역 중 14곳의 고객이 5xx 오류를 비롯한 문제를 겪었다.
00:05 UTC 에 모니터링 알림이 울렸고, 01:00 UTC 에 엔지니어가 자동 정리 작업을 원인으로 찾아 그 자동화를 멈췄다. 정리 작업은 01:40 UTC 에 스스로 멈췄고 모든 것을 지우지는 않았다. 02:00 UTC 에 ARM 과 자동화 양쪽에서 리소스 잠금을 걸고 삭제 요청을 막은 뒤 지워진 리소스를 다시 만들기 시작했다. 복구는 오래 걸렸다. 모델이 매우 커서 보안 채널로만 옮길 수 있었고, 지역과 모델마다 있는 모델 풀 안에서는 배포가 하나씩 차례로 진행됐기 때문이다. 대부분의 모델과 지역은 10:20 UTC 에 돌아왔다. GPT-4o 와 DALL-E 는 손으로 다시 설정해야 했고, 모든 기본 모델은 23:35 UTC 에 복구됐다. 삭제를 막으려고 꺼 둔 자동화가 fine-tuning 배포 생성도 맡고 있어서, fine-tuned 모델 배포는 자동화를 다시 켠 7월 15일 16:54 UTC 에야 모든 지역에서 돌아왔다. RAG 나 fine-tuning 모델의 데이터 손실은 없었다.
- 심각도
- –
- 영향 범위
- Azure OpenAI endpoints in 14 of 28 regions returned errors such as 5xx until 23:35 UTC on 13 July; new Standard fine-tuned model deployments unavailable in four regions until 16:54 UTC on 15 July
- 영향 사용자
- A subset of Azure OpenAI customers
- 지역
- Australia East, Brazil South, Canada Central, Canada East, East US 2, France Central, Korea Central, North Central US, Norway East, Poland Central, South Africa North, South India, Sweden Central, UK South; fine-tuning also Switzerland West
- 감지까지
- 5m
- 복구까지
- 2d 16h 54m
증상
2024년 7월 13일 00:00 UTC 부터 Azure OpenAI 엔드포인트를 호출하는 일부 고객이 5xx 오류를 비롯한 문제를 겪었다. 00:05 UTC 에 서비스 모니터링이 실패율이 정해 둔 기준을 넘었다고 엔지니어에게 알렸다.
영향은 Azure OpenAI 를 제공하는 28개 지역 가운데 14곳에서 나타났다. Australia East, Brazil South, Canada Central, Canada East, East US 2, France Central, Korea Central, North Central US, Norway East, Poland Central, South Africa North, South India, Sweden Central, UK South 였다.
지역들은 한꺼번에 내려가지 않았다. 정리 작업이 지역마다 시작되면서 영향이 점점 넓어졌다. 삭제가 끝나기까지 30~40분이 걸렸기 때문에 내려간 시각은 지역마다 달랐고, 같은 지역 안에서도 엔드포인트마다 달랐다. 엔지니어는 00:30 UTC 에 알림과 서비스 지표와 텔레메트리 대시보드를 맞춰 보고 여러 지역에 걸친 장애라는 것을 알았다.
00:45 UTC 에 엔지니어는 백엔드 엔드포인트가 지워지고 있다는 것을 알았지만, 어떻게 왜 지워지는지는 아직 몰랐다. 당직 엔지니어는 두 가지 가설을 놓고 조사했고, 01:00 UTC 에 자동 정리 작업이 리소스를 지우고 있다는 것을 찾았다.
7월 13일 01:00 UTC 부터 7월 15일 16:54 UTC 까지 East US 2, North Central US, Sweden Central, Switzerland West 에서는 Standard Pay-As-You-Go fine-tuned 모델을 새로 배포할 수 없었고, 배포를 지우는 요청도 반영되지 않았을 수 있다. 이 지역들에서 이미 배포된 모델의 추론 엔드포인트는 계속 쓸 수 있었다.
원인
원인 설정 변경
- 촉발
- Microsoft 는 쓰지 않는 리소스를 정리하는 작업의 하나로, 쓰지 않는다고 본 리소스 그룹 14개를 전역 설정 파일에서 뺐다. 이 변경은 커밋 직후 적용됐고, 그 리소스 그룹 안의 리소스가 짧은 시간에 모두 지워졌다.
감지
서비스 내부 모니터링이 2024년 7월 13일 00:05 UTC 에 실패율이 정해 둔 기준을 넘었다고 엔지니어에게 알렸다. 영향이 시작되고 5분 뒤였다.
조치
- 자동 정리 작업이 리소스를 지우는 것을 확인하고, 정리를 실행하던 자동화부터 멈췄다.
- ARM 과 자동화 양쪽에서 리소스 잠금을 걸고 삭제 요청을 막아 더 지워지지 않게 했다.
- 지워진 리소스를 다시 만들기 시작했고, 14개 지역의 모델 풀을 병렬로 다시 세웠다.
- GPT-4o 가 쓰는 REDIS 와 Private Link 를 Azure REDIS 팀, Azure Networking 팀과 함께 손으로 다시 설정했다.
- DALL-E 프론트엔드와 백엔드 사이의 Managed Identity 를 허용 목록에 추가해 DALL-E 를 복구했다.
- 모든 것이 복구되고 안정된 7월 15일에 자동화를 다시 켰고, 이와 함께 fine-tuning 배포 기능이 돌아왔다.
후속 조치
- 안전 배포 절차에 따라 이후의 모든 설정 업데이트가 지역 단위로 나가도록 설정 정책을 바꿨다. 문제가 있는 변경이 한 지역에 머물게 하려는 것이다.
- 자동화가 관리하면 안 되는 리소스에 붙은 잘못된 메타데이터 태그를 지우고, 자동화 설정에서 그 리소스를 빼서 중요한 리소스를 실수로 지우지 않게 했다.
- 워크로드마다 걸치는 지역 수를 줄여, 비슷한 실수로 리소스가 지워져도 피해가 넓게 퍼지지 않게 했다.
- 장애 대응 인력을 더 빨리 불러 모으도록 장애 대응 호출 자동화를 고쳤다.
- 운영 환경의 모든 변경이 단계마다 확인을 거쳐 나가는 안전 배포 절차를 따르도록 변경 관리 통제를 더 넣는 방안을 검토한다. 완료 예정은 2024년 8월이다.
- 영향받은 고객의 범위를 정하기 어려운 상황에서도 더 빨리 알릴 수 있도록 공지 도구에 Azure OpenAI 관련 데이터를 넣는다. 완료 예정은 2024년 9월이다.
- 앞으로의 설정 업데이트 위험을 줄이려고 테스트 범위와 검증 절차를 더 늘리는 방안을 검토한다. 완료 예정은 2024년 9월이다.
- 고객 트래픽에 기대지 않고 시스템 상태를 확인할 수 있도록 모델 계열마다 능동 모니터링을 더 만든다. 완료 예정은 2024년 9월이다.
- 복구 시간을 줄이려고 모델 풀을 세우는 작업의 병렬도를 높인다. 완료 예정은 2024년 12월이다.
교훈
Microsoft 는 이 장애의 가장 큰 빈틈이 변경 관리 절차에 있었다고 밝혔다. 설정 변경이 전역 범위의 콘텐츠 업데이트로 나가서, 변경이 지역 하나씩 차례로 적용되게 통제하는 안전 배포 절차를 거치지 않았다. 그래서 한 번에 여러 지역이 무너졌다. 자동화가 관리하는 리소스와 모르는 리소스가 같은 리소스 그룹에 섞이면서 설정 파일과 실제 구독의 상태가 어긋났고, 이 어긋남 때문에 필요한 리소스까지 지워졌다. 고객에게는 주 지역이 내려갈 때를 대비해 여러 지역에 엔드포인트를 두라고 권했다.
출처
- https://azure.status.microsoft/en-us/status/history/?trackingId=4L44-3F0 · official-status · 보관본
참고 문서
관련 사례
IL-0235Azure OpenAI Service 의 GPT-5.2 모델 요청이 일곱 개 리전에서 HTTP 400 과 HTTP 429 오류로 실패했다Microsoft Azure · 2026같은 원인 · 공통 모델 추론 서버
IL-0285Clever Cloud 의 Apache Pulsar 메시징 클러스터가 멈추면서 EU-FR-1 리전의 배포 API 가 먹통이 되고 하이퍼바이저들이 커널 패닉으로 재부팅됐다Clever Cloud · 2024같은 원인 · 공통 자동 용량 관리 시스템
내 클러스터에도 있는지 확인하기
AI 도구와 스크립트용
- 이 사례의 JSON: https://incidentlib-api.benchlet.com/cases/IL-0407
- 가장 비슷한 사례들: https://incidentlib-api.benchlet.com/cases/IL-0407/similar
- MCP 서버(Streamable HTTP, 키 없음):
https://incidentlib-mcp.benchlet.com/mcp
API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.