IL-0370 Render · 2022-05-23database
Frankfurt 에서 노드 하드웨어 장애 뒤 Render Postgres 데이터베이스가 다른 노드에서 시작하지 못해 최대 1시간 5분 멈췄다
2022년 5월 23일 08:30 AM UTC 에 Frankfurt 에서 외부 클라우드 제공자의 노드 하나가 하드웨어 문제로 상태 검사에 실패했다. 그 노드의 Postgres 데이터베이스 인스턴스는 건강한 노드에서 다시 시작해야 했지만, 디스크가 아직 옛 노드에 붙어 있어 시작하지 못했다. 데이터베이스가 시작 도중 한 상태에서 15분 이상 넘어가지 못하면 울리는 알림이 08:57 AM UTC 에 당번 엔지니어를 자동으로 호출했다. 엔지니어는 디스크가 옛 노드에 붙어 있는 것을 확인하고 09:27 AM UTC 쯤 그 노드를 손으로 종료했다. 그러자 디스크가 건강한 노드에 붙었고, 09:35 AM UTC 에 모든 데이터베이스 인스턴스가 돌아왔다. 그 노드의 사용자 Postgres 데이터베이스는 모두 최대 1시간 5분 동안 완전히 멈췄다.
- 심각도
- –
- 영향 범위
- All user Postgres databases on the failed node had a complete outage
- 영향 사용자
- –
- 지역
- Frankfurt
- 감지까지
- 27m
- 복구까지
- 1h 5m
증상
Frankfurt 의 한 노드에 있던 사용자 Postgres 데이터베이스가 모두 완전히 멈췄다. Render 는 Frankfurt 의 Postgres 데이터베이스 가용성 문제 보고를 받았다.
2022년 5월 23일 08:30 AM UTC 에 외부 클라우드 제공자의 노드가 하드웨어 문제로 상태 검사에 실패했다. 데이터베이스 인스턴스는 건강한 노드에서 시작하지 못하고, 시작 도중 한 상태에서 더 나아가지 못했다. 디스크가 아직 옛 노드에 붙어 있었기 때문이다.
당번 엔지니어는 08:57 AM UTC 에 호출됐다. Render 는 호출 19분 뒤, 장애가 시작된 지 46분째에야 상태 페이지에 장애를 올렸다. 그래서 상태 페이지에는 19분짜리 부분 장애로 잘못 표시됐다. 09:35 AM UTC 에 모든 데이터베이스 인스턴스가 돌아왔다.
원인
원인 하드웨어 고장
- 촉발
- 외부 클라우드 제공자가 준 노드에 하드웨어 문제가 생겨 2022년 5월 23일 08:30 AM UTC 에 상태 검사에 실패했다.
감지
데이터베이스가 시작 도중 한 상태에서 15분 이상 넘어가지 못하면 울리는 알림이 08:57 AM UTC 에 당번 엔지니어를 자동으로 호출했다. 장애가 시작되고 27분 뒤였다.
조치
- 엔지니어가 09:27 AM UTC 쯤 문제의 노드를 손으로 종료했다. 그러자 디스크가 건강한 노드에 붙었고, 09:35 AM UTC 에 모든 데이터베이스 인스턴스가 돌아왔다.
후속 조치
- 당번 엔지니어를 더 일찍 호출하는 알림을 만든다.
- 알맞은 조치를 더 빨리 찾을 수 있게 하고, 결국 그 조치를 자동화해 복구 시간을 줄인다.
- 장애 절차를 검토해 상태 페이지가 실제 가용성을 최대한 정확하게 보여 주게 한다.
- Postgres 고가용성 기능을 만든다. 2022년 4분기쯤 나올 예정이고, 이 기능을 켠 사용자는 프라이머리가 있는 노드에 하드웨어 문제가 나도 장애 시간이 아주 짧아진다.
교훈
Render 는 하드웨어 문제가 드물지만 언젠가는 일어나는 일이라고 봤다. 그래서 대책을 탐지를 앞당기고 복구 시간을 줄이는 데 맞췄다.
출처
- https://status.render.com/incidents/tk4lms6lbjfh · official-status · 보관본
관련 사례
IL-0306Neon us-east-1 에서 pageserver 를 돌리던 EC2 인스턴스가 예고 없이 죽어 프로젝트 0.4% 의 Postgres 가 최대 2시간 동안 멈췄다Neon · 2024같은 원인 · 공통 데이터베이스
같은 원인 · 공통 데이터베이스
같은 원인 · 공통 데이터베이스
IL-0289updown.io 의 주 MongoDB 서버가 쿼리에 평소보다 약 200배 느리게 응답해 사이트와 모니터링 데몬이 거의 멈췄는데 자동 페일오버가 일어나지 않았다updown.io · 2019같은 원인 · 공통 데이터베이스
IL-0219Postgres 프라이머리의 디스크 어레이가 망가진 뒤 Pacemaker 가 새 프라이머리를 승격하지 못해 GoCardless API 와 대시보드가 1시간 50분 멈췄다GoCardless · 2017같은 원인 · 공통 데이터베이스
내 클러스터에도 있는지 확인하기
AI 도구와 스크립트용
- 이 사례의 JSON: https://incidentlib-api.benchlet.com/cases/IL-0370
- 가장 비슷한 사례들: https://incidentlib-api.benchlet.com/cases/IL-0370/similar
- MCP 서버(Streamable HTTP, 키 없음):
https://incidentlib-mcp.benchlet.com/mcp
API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.