Incident Library

IL-0528 Google Cloud · 2025-01-08gcpdatabase

Cloud Pub/Sub 가 여러 리전에서 게시와 구독을 모두 못 했고 순서 지정 구독 일부는 그날 밤까지 메시지를 받지 못했다

Cloud Pub/Sub 는 저장 시스템의 메타데이터 상태를 리전 데이터베이스에 둔다. 여기에는 게시된 메시지의 정보와 순서 지정 전달에 쓰는 게시 순서가 들어 있다. 대부분의 데이터 플레인 작업이 이 데이터베이스를 거친다. 2025-01-08 미국 태평양 시간 06:54 부터 07:30 사이에 이 데이터베이스의 접근 권한을 의도치 않게 지나치게 제한한 설정 변경이 여러 리전에 배포됐다. 사전 운영 환경은 설정이 운영 환경과 달라서 문제가 드러나지 않았다. 이 변경은 표준 배포 절차를 따르지 않고 짧은 시간 안에 여러 리전에 잘못 배포됐다. Pub/Sub 가 리전 메타데이터 저장소에 접근하지 못하자 게시, 구독, 백로그 지표가 모두 실패했다.

엔지니어들은 07:03 에 내부 텔레메트리로 알림을 받았고, 원인이 된 설정 변경을 찾아 08:07 에 롤백을 마쳤다. 게시와 구독이 막힌 시간은 1시간 13분이었다. 그런데 데이터베이스를 오래 쓸 수 없던 동안 Pub/Sub 가 순서 지정 전달을 지키는 방식에 숨어 있던 버그가 드러났다. 순서에 관한 메타데이터가 게시된 메시지의 메타데이터와 어긋났고, 그 때문에 순서 지정 구독 일부에 메시지 일부가 전달되지 않았다.

엔지니어들은 09:07 에 이 문제로 알림을 받았고, 12:20 에 메타데이터 불일치가 원인이라는 것을 찾았다. 영향을 받은 순서 지정 구독을 모두 찾아 고치는 작업은 23:09 에 끝났고, 고친 구독은 쌓인 메시지를 모두 올바른 순서로 받았다.

심각도
–
영향 범위
Cloud Pub/Sub publish and subscribe, and backlog metrics, in ten regions for 1 hour and 13 minutes; a small subset of ordered subscriptions could not consume their backlog until 23:09; Cloud Logging exports to Pub/Sub delayed for 26 minutes; BigQuery Data Transfer Service runs failed for 20 minutes
영향 사용자
–
지역
europe-west10, asia-south1, europe-west1, us-central1, asia-southeast2, us-east1, us-east5, asia-south2, us-south1, me-central1
감지까지
9m
복구까지
16h 15m

증상

여러 리전에서 Cloud Pub/Sub 에 메시지를 게시할 수도, 구독할 수도 없었다. 백로그 지표는 오래된 값이거나 아예 비어 있을 수 있었다. 상태 페이지의 제목은 "Multiple regions completely blocked for subscribe for Pubsub" 였다.

영향을 받은 리전은 europe-west10, asia-south1, europe-west1, us-central1, asia-southeast2, us-east1, us-east5, asia-south2, us-south1, me-central1 이었다. 메시지 저장 정책에 이 리전이 들어 있으면 다른 리전에서 게시하는 고객도 같은 문제를 겪었을 수 있다.

Pub/Sub 를 쓰는 다른 서비스도 함께 영향을 받았다. Cloud Logging 에서 Pub/Sub 로 로그를 내보내는 고객은 모두 26분 동안 내보내기가 늦어졌다. BigQuery Data Transfer Service 는 전송 실행이 Pub/Sub 에 게시하지 못해 20분 동안 실패했다.

미국 태평양 시간 08:07 에 서비스가 돌아온 뒤에도 메시지 순서 지정을 켠 구독 일부는 백로그를 소비하지 못했다. 이 백로그 증가는 09:07 에 드러났다. 이 구독들은 23:09 에 복구될 때까지 쌓인 메시지를 받지 못했다. 메시지 순서와 전달 보장 자체는 깨지지 않았다.

증상 서비스 중단모니터링 중단

원인

촉발
미국 태평양 시간 06:54 부터 07:30 사이에 잘못된 서비스 설정 변경이 여러 리전에 배포됐다. 이 변경은 리전 메타데이터 데이터베이스에 접근하는 권한을 의도치 않게 지나치게 좁혔다.

감지

엔지니어들은 영향이 시작되고 9분 뒤인 미국 태평양 시간 07:03 에 내부 텔레메트리로 장애 알림을 받았다. 순서 지정 구독 일부가 백로그를 소비하지 못하는 문제는 09:07 에 역시 내부 텔레메트리 알림으로 알았다.

조치

후속 조치

교훈

–

출처

참고 문서

관련 사례

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

kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이 사례와 같은 상태를 점검합니다. 이 사례의 구성 요소: 메시지 브로커, 데이터베이스. 점검 항목의 근거는 이 사례 같은 공개 보고서입니다.

AI 도구와 스크립트용

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