Incident Library
  • 원인
  • 구성 요소
  • 증상
  • 기여 요인
  • 사례

사례5건

5건 중 1~5번째

  1. 증상

    2025-03-13 eu-west1 리전에서 Managed Services for Kubernetes 고객의 파드가 거의 모두 13:36 에서 18:11 UTC 사이에 적어도 한동안 네트워크 연결을 잃었다. Nebius 팀은 15:13 UTC 에 문제를 알아챘다. eu-north1 리전은 영향을 받지 않았다.

    촉발

    eu-west1 에 배포한 VPC 컨트롤 플레인 구성 요소의 릴리스가 새 기능에 필요한 route distinguisher 값을 바꿨다. 이 변경으로 오래전부터 코드에 있던 버그가 실제로 드러났다.

    원인
    구성 요소
    기여 요인
    조치
    • 문제가 난 노드에서 구성 요소를 재시작하면 그 노드가 풀린다는 것을 찾고, 영향을 받은 모든 노드에서 구성 요소를 한 번에 한 노드씩 재시작하기 시작했다.
    • 17:57 UTC 에 구성 요소 재시작만으로 고쳐진다고 확신하고 병렬 재시작을 시작했다. 18:11 UTC 에 영향이 완전히 해소되었다.
    후속 조치
    • 버그 자체를 바로잡는다.
    • 경로 수가 어긋나면 울리는 알림을 더한다.
    • 데이터 플레인의 패킷 drop 수를 보는 알림을 더한다.
    • 호스트 VPC 구성 요소를 재시작하지 않고도 엔드포인트를 초기화하는 방법을 만든다.
    • VPC 의 상시 e2e 테스트 가상 머신을 카나리 호스트로 옮긴다.
    • Managed Services for Kubernetes 용 상시 e2e 테스트를 더한다.
    • e2e 테스트를 더 자주 돌린다.
    • 중요하지 않은 내부 서비스가 가장 먼저 업데이트를 받는 배포 단계를 새로 둔다.
    교훈

    문제를 재현하려면 두 조건이 함께 맞아야 해서 테스트 환경과 카나리의 e2e 테스트로는 잡지 못했다. 기술 지표가 평소 값에서 벗어날 때 울리는 알림이 모자라 대응이 늦어졌다. 이번 경우에는 경로 수와 패킷 drop 수가 민감하게 반응한 지표였다.

  2. 증상

    FR-PAR-1 가용 영역의 하이퍼바이저 약 25% 가 리전의 나머지와 VPC 로 통신하지 못했다. 7:50 부터 8:01 UTC 까지 Managed Database, Redis, Serverless, Kubernetes Kapsule 처럼 VPC 에 기대는 제품이 함께 영향을 받았다.

    촉발

    6:20 UTC 에 랙 하나의 ToR 스위치 소프트웨어가 충돌했다. 이 불안정이 같은 랙의 하이퍼바이저에서 돌던 VPC 용 BGP 경로 반사기를 비정상 상태에 빠뜨렸다.

    원인
    구성 요소
    기여 요인
    감지

    Scaleway 의 Customer Excellence 팀과 SRE 팀이 영향을 알아채고 사고를 열었다. RR 의 헬스 체크 모니터링도 이상을 잡았지만 자동 재시작은 실패했다.

    조치
    • 멈춘 VPC 경로 반사기 두 대를 손으로 고쳤다.
    후속 조치
    • 멈춘 상태의 경로 반사기를 고치지 못한 자동 복구 장치를 고쳤다. 수정 내용은 https://github.com/FRRouting/frr/pull/17163 이다.
    • 버그 하나가 여러 경로 반사기를 한꺼번에 멈추지 않도록 경로 반사기의 소프트웨어 버전을 서로 다르게 둔다.
    • 경로 반사기를 멈춘 상태에 빠뜨린 소프트웨어 문제를 깊이 조사한다.
  3. 증상

    2023년 8월 9일 09:55 UTC 부터 DigitalOcean 의 AMS3, LON1, SFO2 데이터 센터가 인터넷 연결을 잃었다. 끊김은 세 차례 일어났다. 한 번에 10~15분씩 이어졌고, 끊김 사이의 간격은 한 시간쯤이었다.

    촉발

    에지 라우터가 RPKI 관련 라우팅 갱신을 받으면서, 일부 에지 라우터에서 돌던 운영체제 소프트웨어 버전의 버그가 라우팅 프로세스를 죽였다.

    원인
    구성 요소
    기여 요인
    조치
    • 장비 업체의 조사 뒤 문제의 운영체제 버전을 쓰는 에지 라우터에 소프트웨어 업데이트를 긴급히 내보냈다. 회선에서 트래픽을 빼고 라우터가 인터넷에 다시 붙는 동안 연결 문제가 더 났다.
    • AMS3 와 FRA1 사이 경로의 혼잡을 줄이려고 트래픽을 다시 나눴다.
    • 장애 전환이 일어나도 같은 문제를 겪지 않도록 이중화된 네트워크 장비에도 수정을 내보냈다. 14:58 UTC 공지에서 AMS3, LON1, SFO2 의 모든 네트워크 장비를 패치했다고 알렸다.
    후속 조치
    • 전 세계 모든 에지 라우터를 버그를 피하는 버전으로 업그레이드했다.
    • 네트워크의 안정성과 보안을 높이는 네트워크 업그레이드를 진행한다. 아시아는 이미 업그레이드를 마쳤고, 유럽과 북미는 올해 말과 2024년 초에 업그레이드한다.
  4. 증상

    2020-07-16 13:26 UTC 부터 Gandi LiveDNS 의 DNS 노드 두 대로 간 질의가 타임아웃으로 실패했다. 상태 페이지에는 13:26 에 FR 고객에게 영향이 있다는 글이 올라갔다.

    촉발

    LiveDNS 노드 두 대의 DNS 서버 소프트웨어에서 버그가 장애를 일으켜 서버가 멈췄다.

    원인
    구성 요소
    기여 요인
    감지

    DNS 서버에서 LiveDNS 모니터링 알림이 울렸다. 그러나 앞서 다루던 내부 네트워크 사고가 모니터링 시스템에 소음을 많이 만들고 있어 엔지니어들은 이 알림을 오탐으로 잘못 읽었고, 알림을 다시 판단하기까지 시간이 걸렸다.

    후속 조치
    • DNS 서버가 제대로 동작하지 않을 때 노드를 서비스에서 빼는 방식을 고친다.
    • 노드 설정을 고치고, 한 노드가 여러 클러스터의 주소를 알리지 않는지 확인하는 모니터링을 둔다.
    • 모니터링과 내부 교육, 조직 운영을 다시 짠다.
    • DNS 서버 소프트웨어의 버그를 찾아냈고, 고친 판을 배포하고 있다.
  5. 증상

    2019-06-02 US/Pacific 11:47~11:49 부터 미국 여러 리전의 Google Cloud 프로젝트에서 패킷 손실이 늘고, 지연이 커지고, 간헐적 오류와 인스턴스 연결 끊김이 나타났다. us-west1 과 유럽, 아시아 리전에는 리전 네트워크 혼잡이 없었다. Google 엔지니어는 장애가 시작되고 2분 뒤 알림을 받았다.

    촉발

    US/Pacific 11:45 에 비교적 드문 유형의 데이터 센터 유지보수 이벤트가 물리 위치 한 곳에서 시작됐다. 자동화 소프트웨어가 내릴 작업 목록에 네트워크 제어 작업을 돌리는 논리 클러스터를 넣었다. 이 클러스터에는 다른 물리 위치의 네트워크 제어 작업도 들어 있어, 여러 위치의 네트워크 제어 평면과 지원 인프라가 한꺼번에 내려갔다.

    원인
    구성 요소
    기여 요인
    감지

    Google 엔지니어는 장애가 시작되고 2분 뒤 알림을 받았고, 가장 심각한 운영 사고에 쓰는 사고 관리 절차를 곧바로 시작했다. 고객용 상태 페이지에는 US/Pacific 12:53 에 첫 공지가 올라왔다.

    조치
    • 혼잡을 줄이려고 덜 중요한 네트워크 트래픽 등급의 우선순위를 낮췄다.
    • US/Pacific 13:01 에 근본 원인을 찾고, 유지보수 이벤트를 일으킨 자동화 소프트웨어를 멈췄다.
    • 네트워크 제어 평면과 지원 인프라를 위치마다 다시 스케줄해 켰다.
    • 제어 평면 인스턴스가 모두 내려가면서 사라진 설정 데이터를 여러 위치에 다시 만들어 배포했다. 새 설정은 14:03 부터 나가기 시작했다.
    • Google 안의 여러 팀이 서비스별 완화 조치로 트래픽을 피해 리전 밖으로 돌려 다른 곳에서 계속 서비스했다.
    • us-west2, northamerica-northeast1, southamerica-east1 에서 장애 때문에 fail-safe 상태에 들어간 VPN 제어 평면을 손으로 빼냈다. 이 리전의 VPN 게이트웨이는 16:30 에 회복됐다.
    후속 조치
    • 유지보수 때 작업을 내리는 데이터 센터 자동화 소프트웨어를 즉시 멈췄고, 여러 물리 위치에서 동시에 작업을 내리지 않게 하는 안전장치를 갖춘 뒤에만 다시 켠다.
    • 클러스터 관리 소프트웨어가 요청의 출처와 상관없이 여러 물리 위치의 작업을 한꺼번에 내리는 요청을 거부하도록 강화한다.
    • 네트워크 제어 평면 소프트웨어와 지원 인프라가 이번 사고에 얽힌 유형의 유지보수 요청을 거부하도록 다시 설정한다.
    • 위치마다 네트워크 제어 평면이 설정을 영구 저장하게 바꿔, 모든 작업이 내려가도 설정을 다시 만들고 배포할 필요가 없게 한다. 이렇게 하면 복구 시간이 열 배쯤 줄어든다.
    • 제어 평면을 잃었을 때 네트워크가 fail static 모드로 더 오래 버티게 해, 사용자 영향 없이 복구할 시간을 충분히 둔다.
    • 고객 소통 도구를 포함한 비상 대응 도구와 절차를 검토하고 고치고 시험해, 이번과 같은 네트워크 장애에도 견디게 한다.
    • 상시 재해 복구 시험의 범위를 넓혀 이번 장애와 이와 비슷한 수준의 큰 장애를 넣는다.
내 클러스터에도 있는지 확인하기

이 5건에서 가장 많이 나오는 구성 요소: BGP 라우팅, 네트워크 컨트롤 플레인. kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이런 틈을 점검합니다. 점검 항목의 근거는 이 라이브러리와 같은 공개 보고서입니다.

원인별1