{"id":"IL-0370","org":"Render","date":"2022-05-23","docs":[],"title":{"en":"Render Postgres databases in Frankfurt were down up to 65 minutes as their disks stayed attached to a failed node","ko":"Frankfurt 에서 노드 하드웨어 장애 뒤 Render Postgres 데이터베이스가 다른 노드에서 시작하지 못해 최대 1시간 5분 멈췄다"},"domain":["database"],"impact":{"scope":"All user Postgres databases on the failed node had a complete outage","users":"unknown","region":"Frankfurt"},"review":{"written_by":"session","reviewed_at":null,"reviewed_by":null},"lessons":{"en":"Hardware issues are rare but expected, so Render's mitigations aim at detecting them sooner and shortening the time to resolve them.","ko":"Render 는 하드웨어 문제가 드물지만 언젠가는 일어나는 일이라고 봤다. 그래서 대책을 탐지를 앞당기고 복구 시간을 줄이는 데 맞췄다."},"related":[],"sources":[{"url":"https://status.render.com/incidents/tk4lms6lbjfh","kind":"official-status","archived":"https://web.archive.org/web/20220526195727/https://status.render.com/incidents/tk4lms6lbjfh"}],"summary":{"en":"A node from Render's external cloud provider in Frankfurt failed its status check because of a hardware issue. The Postgres database instances on it had to start on a healthy node, but their disks were still attached to the failed node, so the instances could not start and all user databases on that node were fully down. The on-call engineer was paged automatically at 08:57 UTC, found the disk attachment problem and terminated the failed node by hand at about 09:27 UTC, 30 minutes after the page. The disks could then attach to healthy nodes, and all database instances were back online by 09:35 UTC. The status page incident was opened late and recorded the outage as 19 minutes of partial downtime; Render could not edit the incident and corrected the uptime figure by hand to the full 1 hour and 5 minutes. Render was working on high availability for Postgres, expected around Q4 2022, so that databases opting in would see minimal downtime when the primary's node has a hardware issue.","ko":"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분 동안 완전히 멈췄다."},"trigger":{"en":"A node supplied by Render's external cloud provider had a hardware issue and failed its status check at 08:30 UTC on 23 May 2022.","ko":"외부 클라우드 제공자가 준 노드에 하드웨어 문제가 생겨 2022년 5월 23일 08:30 AM UTC 에 상태 검사에 실패했다."},"severity":"unknown","symptoms":["service-unavailable","storage-disconnected"],"timeline":{"detected_after":"27m","resolved_after":"1h 5m"},"date_kind":"incident","detection":{"en":"An alert that fires when databases have been stuck in one state while starting up for at least 15 minutes paged the on-call engineer automatically at 08:57 UTC.","ko":"데이터베이스가 시작 도중 한 상태에서 15분 이상 넘어가지 못하면 울리는 알림이 08:57 AM UTC 에 당번 엔지니어를 자동으로 호출했다. 장애가 시작되고 27분 뒤였다."},"components":["database","block-storage"],"root_cause":"hardware-failure","remediation":[{"text":{"en":"Manually terminated the failed node at about 09:27 UTC so the disks could attach to healthy nodes","ko":"엔지니어가 09:27 AM UTC 쯤 문제의 노드를 손으로 종료했다. 그러자 디스크가 건강한 노드에 붙었고, 09:35 AM UTC 에 모든 데이터베이스 인스턴스가 돌아왔다."}}],"action_items":[{"text":{"en":"Create an alert that fires sooner than the current 15-minute startup alert","ko":"당번 엔지니어를 더 일찍 호출하는 알림을 만든다."}},{"text":{"en":"Make it easier to identify the correct corrective action, and eventually automate it","ko":"알맞은 조치를 더 빨리 찾을 수 있게 하고, 결국 그 조치를 자동화해 복구 시간을 줄인다."}},{"text":{"en":"Review incident procedures so the status page reflects reliability accurately","ko":"장애 절차를 검토해 상태 페이지가 실제 가용성을 최대한 정확하게 보여 주게 한다."}},{"text":{"en":"Build high availability for Postgres so a primary's node hardware failure causes minimal downtime","ko":"Postgres 고가용성 기능을 만든다. 2022년 4분기쯤 나올 예정이고, 이 기능을 켠 사용자는 프라이머리가 있는 노드에 하드웨어 문제가 나도 장애 시간이 아주 짧아진다."}}],"contributing":["single-point-of-failure"],"recurrence_of":null,"symptoms_text":{"en":"At 08:30 UTC on 23 May 2022, every user Postgres database on one node in Render's Frankfurt region went completely down after the node, supplied by Render's external cloud provider, had a hardware issue and failed its status check. The database instances could not start on a healthy node because their disks were still attached to the failed node.\n\nThe alert that paged the on-call engineer fires only after databases have been stuck in one state while starting up for at least 15 minutes, so the page came at 08:57 UTC, 27 minutes into the outage. The status page incident was created 46 minutes into the outage and showed 19 minutes of partial downtime instead of the 1 hour and 5 minutes of total downtime.","ko":"Frankfurt 의 한 노드에 있던 사용자 Postgres 데이터베이스가 모두 완전히 멈췄다. Render 는 Frankfurt 의 Postgres 데이터베이스 가용성 문제 보고를 받았다.\n\n2022년 5월 23일 08:30 AM UTC 에 외부 클라우드 제공자의 노드가 하드웨어 문제로 상태 검사에 실패했다. 데이터베이스 인스턴스는 건강한 노드에서 시작하지 못하고, 시작 도중 한 상태에서 더 나아가지 못했다. 디스크가 아직 옛 노드에 붙어 있었기 때문이다.\n\n당번 엔지니어는 08:57 AM UTC 에 호출됐다. Render 는 호출 19분 뒤, 장애가 시작된 지 46분째에야 상태 페이지에 장애를 올렸다. 그래서 상태 페이지에는 19분짜리 부분 장애로 잘못 표시됐다. 09:35 AM UTC 에 모든 데이터베이스 인스턴스가 돌아왔다."},"updated_at":"2026-11-14T12:34:02.267418Z","url":"https://benchlet.com/incidentlib/app/cases/IL-0370","org_slug":"render"}