{"id":"IL-0345","org":"Render","date":"2020-12-06","docs":[],"title":{"en":"Many Render services in the Oregon region returned 503 errors for about four hours","ko":"Render Oregon 리전의 많은 서비스가 4시간 동안 503 오류를 평소보다 많이 냈다"},"domain":["networking"],"impact":{"scope":"many Render services in the Oregon region and the Render Dashboard","users":"unknown","region":"Oregon"},"review":{"written_by":"session","reviewed_at":null,"reviewed_by":null},"lessons":null,"related":[],"sources":[{"url":"https://status.render.com/incidents/rn1m41h82n5g","kind":"official-status","archived":"https://web.archive.org/web/20210304083517/https://status.render.com/incidents/rn1m41h82n5g"}],"summary":{"en":"Render's load balancing algorithm for HTTP requests is meant to handle a service that holds requests by rejecting traffic to that service, so that it cannot exhaust TCP connections on a load balancer shared with other services. When a customer API with one of the highest request rates in Oregon started holding requests until they timed out, it exposed a bug in that algorithm, and the load balancers also rejected some requests to other services with 503. Render mitigated the impact until the root cause was found, then rolled out a fix to all of its load balancers.","ko":"2020년 12월 6일 13:34 PST, Render 의 Oregon 리전에 올라간 고객 API 하나가 들어온 요청을 타임아웃이 날 때까지 붙잡기 시작했다. Render 플랫폼에서 HTTP 요청을 나누는 로드 밸런싱 알고리즘은 이런 고장이 나면 고장 난 서비스로 가는 트래픽을 거부하도록 만들어져 있다. 그래야 TCP 연결이 바닥나 같은 로드 밸런서의 다른 서비스까지 영향을 받는 일을 막을 수 있다. 그런데 이 서비스는 Oregon 리전에서 요청을 가장 많이 받는 축에 들었다. 이 서비스의 고장이 로드 밸런싱 알고리즘의 버그를 드러냈고, 다른 서비스로 가는 요청까지 간헐적으로 503 으로 거부됐다. 모니터링이 바로 문제를 알렸고, 팀은 원인을 찾아 고칠 때까지 영향을 줄이는 조치를 했다. 한때 문제가 풀린 것처럼 보였다가 오류율이 다시 오르기도 했다. 장애는 17:33 PST 에 끝났다. 상태 페이지에는 01:53 UTC 에 수정을 적용하고 결과를 지켜본다는 공지가 올라왔다. Render 는 같은 장애를 막는 수정을 모든 로드 밸런서에 내보냈다."},"trigger":{"en":"At 13:34 PST a customer API hosted in Oregon, one of the services with the highest request rates in the region, began holding incoming requests until they timed out.","ko":"13:34 PST 에 Oregon 리전에 올라간 고객 API 하나가 들어온 요청을 붙잡고 있다가 타임아웃 오류로 끝내기 시작했다. 이 서비스는 Oregon 리전에서 요청을 가장 많이 받는 축에 들었다."},"severity":"unknown","symptoms":["high-error-rate"],"timeline":{"detected_after":null,"resolved_after":"3h 59m"},"date_kind":"incident","detection":{"en":"Render's monitoring system notified the team immediately.","ko":"13:34 PST 에 장애가 시작되자 모니터링 시스템이 바로 Render 팀에 알렸다."},"components":["cloud-load-balancer"],"root_cause":"software-bug","remediation":[{"text":{"en":"Rolled out a fix to the load balancing algorithm across all load balancers","ko":"이번 같은 장애를 막는 수정을 모든 로드 밸런서에 내보냈다."}}],"action_items":[{"text":{"en":"Add mechanisms that isolate services from each other in the routing and load balancing layers","ko":"Render 의 라우팅 계층과 로드 밸런싱 계층에서 서비스끼리 더 격리하는 장치를 만든다."}},{"text":{"en":"Increase test coverage of the load balancing code","ko":"로드 밸런싱 코드의 테스트 범위를 넓힌다."}},{"text":{"en":"Add synthetic failure states to the continuous integration test suites","ko":"예상하지 못한 일이 생겨도 플랫폼이 버티도록, CI 테스트 스위트에 가상의 장애 상태를 더 넣는다."}},{"text":{"en":"Put more focus on chaos engineering","ko":"카오스 엔지니어링에 다시 힘을 쏟는다."}}],"contributing":["blast-radius-too-wide","test-coverage-gap"],"recurrence_of":null,"symptoms_text":{"en":"Between 13:34 and 17:33 PST on Sunday 6 December 2020, many Render services in the Oregon region returned 503 (Service Unavailable) errors at an elevated rate, and the Render Dashboard was affected. Render's monitoring alerted the team at once. The status page reported upstream load balancers having trouble connecting to the rest of the infrastructure, and after an apparent fix the connectivity error rates rose again before the final fix.","ko":"2020년 12월 6일 13:34 PST 부터 Render 의 Oregon 리전에서 많은 서비스가 높은 비율로 503 Service Unavailable 응답을 냈다. 모니터링 시스템이 바로 문제를 알렸다.\n\n상태 페이지는 21:57 UTC 에 조사를 시작했다고 알렸고, 23:40 UTC 에는 상위 로드 밸런서 일부가 나머지 인프라에 연결하는 데 문제가 있다고 밝혔다. 23:58 UTC 에 그 문제를 풀어 연결 문제가 사라진 것으로 보였지만, 00:59 UTC 에 연결 오류율이 다시 올랐다.\n\n요청이 실패하는 서비스는 장애를 일으킨 고객 API 하나에 그치지 않았다. 같은 로드 밸런서를 거치는 다른 서비스들로 가는 요청도 간헐적으로 503 으로 거부됐다."},"updated_at":"2026-11-14T12:33:59.992108Z","url":"https://benchlet.com/incidentlib/app/cases/IL-0345","org_slug":"render"}