IL-0526 OpenStreetMap Foundation · 2024-12-15networking
HE.net 암스테르담 라우팅 장비 고장으로 OpenStreetMap.org 의 이중 광 회선이 모두 끊김
2024년 12월 15일 03:53 UTC 에 HE.net 의 암스테르담 라우팅 장비가 고장 나, OpenStreetMap.org 가 HE.net 에 연결해 둔 이중 광 회선 두 개가 모두 끊겼다. 암스테르담 서버의 인터넷 연결은 HE.net 하나에만 기대고 있었고, 바로 넘어갈 다른 ISP 가 없었다. HE.net 은 라우팅 장비를 바꿔야 했고 새 장비를 캘리포니아에서 보내야 해서 복구가 길어졌다. 운영 팀은 여러 번 HE.net 에 연락했지만 쓸 만한 복구 예상 시각을 받지 못했다.
사이트는 8시간 동안 완전히 내려가 있다가, 11:31 UTC 에 더블린에 있는 읽기 전용 백업 인스턴스로 일부 기능이 돌아왔다. 읽기 전용 동안에는 지도 편집을 저장할 수 없었고, OAuth 서비스가 토큰을 저장하지 못해 OpenStreetMap.org 와 이 인증을 쓰는 다른 서비스에 로그인할 수 없었다. 복제가 끝나 있지 않았고 절차가 복잡하고 위험하다고 판단해, 더블린으로 완전히 페일오버하지는 못했다. 12월 16일 운영 팀은 Postgres 와 osmdbt 를 더블린으로 완전히 페일오버하는 비상 절차를 문서로 만들었지만, 암스테르담 연결이 돌아오기를 기다리기로 하고 페일오버를 미뤘다. 같은 날 Equinix 가 암스테르담과 더블린의 Equinix Internet 회선 설치를 앞당겨 주었고 두 곳에서 회선 시험을 했다.
12월 17일 12:21 UTC 에 HE.net 을 거치지 않는 새 Equinix Internet 회선이 암스테르담에서 개통돼, OpenStreetMap.org 와 API 의 모든 기능이 돌아왔다. 편집이 돌아오기까지 약 56시간이 걸렸다. HE.net 은 12월 18일 00:29 UTC 에 암스테르담 서비스를 복구했다. 장애 시작부터 약 68시간 뒤였다.
- 심각도
- –
- 영향 범위
- OpenStreetMap.org website and mapping API completely offline for 8 hours, then read-only with no edits and no logins (also for community.openstreetmap.org, umap and other services) until 12:21 UTC on 17 December; dev server, Taginfo and some aerial imagery unavailable; tile rendering and Nominatim at reduced capacity
- 영향 사용자
- –
- 지역
- Amsterdam
- 감지까지
- 8m
- 복구까지
- 2d 8h 28m
증상
2024년 12월 15일 03:53 UTC 에 OpenStreetMap.org 에 접속할 수 없게 됐고, 04:01 UTC 에 StatusCake 모니터링이 장애를 잡아 SMS 알림을 보냈다. 웹사이트와 지도 API 가 완전히 내려갔다.
04:03 UTC 에 운영 팀이 IRC 에서 OpenStreetMap 이 내려간 것을 확인했고, 04:06 UTC 에 한 엔지니어가 HE.net 쪽 외부 ISP 문제임을 확인했다. 서로 다른 경로로 HE.net 에 연결된 이중 광 회선 두 개가 모두 끊겨 있었다.
운영 팀은 04:18 UTC 에 HE.net NOC 에 계획에 없던 점검이 있는지 이메일로 물었다. HE.net 은 04:24 UTC 에 예정된 점검은 없고 조사 중이라고 답했고, 04:43 UTC 통화에서는 장애 지점이 암스테르담이며 복구 예상 시각은 없고 Equinix 현장 지원 인력의 조사를 기다린다고 했다. 07:24 UTC 에 다시 물었을 때도, 그 뒤 주기적으로 물었을 때도 예상 시각은 나오지 않았다.
11:31 UTC 에 더블린의 읽기 전용 백업으로 사이트를 되살린 뒤에는 사용자가 지도를 볼 수는 있었지만 편집은 저장할 수 없었다. OpenStreetMap 의 OAuth 서비스는 접근 토큰을 데이터베이스에 써야 하는데, 쓰기가 막혀 OAuth 가 실패했다. 그래서 사용자는 OpenStreetMap.org, community.openstreetmap.org, umap 같은 서비스에 로그인할 수 없었다.
암스테르담에 있는 다른 서비스도 영향을 받았다. dev 서버, Taginfo, 일부 항공 사진 서비스가 멈췄고, 타일 렌더링 서비스와 Nominatim 지오코딩은 줄어든 용량으로 돌았다.
원인
- 촉발
- 2024년 12월 15일 03:53 UTC 에 HE.net 의 암스테르담 라우팅 장비가 예기치 않게 고장 났다.
감지
04:01 UTC 에 StatusCake 모니터링이 장애를 잡아 SMS 알림을 보냈고, 곧바로 운영 팀에 알려졌다.
조치
- 11:31 UTC 에 더블린에 있는 OpenStreetMap.org 의 읽기 전용 백업 인스턴스를 켜 일부 기능을 되살렸다. 사이트에는 편집 내용을 저장할 수 없다는 점검 안내를 띄웠다.
- 12월 17일 12:21 UTC 에 HE.net 을 거치지 않는 새 Equinix Internet 회선을 암스테르담에서 개통해 OpenStreetMap.org 와 API 의 모든 기능을 되살렸다.
- 12월 18일 00:29 UTC 에 HE.net 이 암스테르담 서비스가 복구됐다고 확인했고, HE.net 경로가 정상으로 돌아와 OpenStreetMap.org 의 모든 네트워크 경로를 다시 쓸 수 있게 됐다.
후속 조치
- 한 사업자가 고장 나도 다른 사업자로 거의 끊김 없이 넘어가도록 여러 ISP 를 쓰는 구성으로 옮긴다.
- 암스테르담 서버의 예비 ISP 후보를 대역폭, 신뢰성, 비용으로 비교한다. 2025년 2월 Karlsruhe Hack Weekend 에서 BGP 를 쓰는 방안과 HE.net 을 예비 ISP 로 남기는 방안을 포함해 실제 선택지를 논의한다.
- 경로와 지연 시간을 더 깊이 모니터링해 ISP 문제를 빨리 잡고, 자동 에스컬레이션 절차를 만든다.
- ISP 사이 트래픽 전환을 시험하는 페일오버 훈련 일정을 정하고, 복제 과정이 최신이며 믿을 만한지 확인해 사이트 페일오버를 부담 없이 쓸 수 있는 선택지로 만든다.
- HE.net, Equinix Internet 과 계약상 SLA 를 협의하고, 정해진 에스컬레이션 절차와 응답 시간을 계약에 넣는다.
- 대역 외 접속에 쓰는 Raspberry Pi 4 와 4G 모뎀을 ISP 장애 때 수동 예비 업링크로 쓸 수 있게 미리 설정한다. 이 회선으로 서버에 접속하고 Postgres 복제 데이터를 보조 사이트로 동기화한다. 대역 외 장비는 견고하고 이중화되도록 업그레이드한다.
- 장애 소식을 알리는 일을 맡을 이해관계자와 각자의 책임, 권장 소통 채널을 정리한 문서를 만든다. 운영 팀은 소통을 다른 사람에게 맡기고 복구에 집중한다.
- OpenStreetMap.org 의 "rails-port" 유지 관리자가 OAuth 서비스를 분리해, 사이트가 흔들릴 때도 제3자 서비스의 인증이 계속 동작하게 할 수 있는지, 그 방법이 현실적인지 조사한다.
교훈
암스테르담 서버가 HE.net 하나에만 기대고 있어 단일 장애 지점이 생겼고, 앞으로는 상위 사업자를 여럿 둔다. 4G 예비 회선을 쓴 대역 외 접속이 아주 쓸모 있었으므로, 데이터 동기화까지 할 수 있게 신뢰성과 기능을 넓힌다. 읽기 전용 백업으로 일부 서비스는 됐지만, 복제가 이어지고 있었다면 편집 기능을 더 빨리 되살렸을 것이다. ISP 와 자주 연락해도 쓸 만한 복구 예상 시각을 받지 못했으므로, SLA 를 더 잘 이해하고 ISP 에 더 투명하게 알려 달라고 요구해야 한다. 상위 연결의 알림을 다듬고 여러 모니터링 출처의 데이터를 한데 모아야 문제를 더 빨리 짚을 수 있다. OpenStreetMap.org 가 읽기 전용이 되면 새 토큰을 저장하지 못해, 장애와 무관한 community.openstreetmap.org 같은 서비스에도 로그인할 수 없게 된다.
출처
참고 문서
관련 사례
같은 원인 · 공통 ISP·트랜짓 망
같은 원인 · 공통 ISP·트랜짓 망
같은 원인 · 공통 데이터베이스 복제
내 클러스터에도 있는지 확인하기
AI 도구와 스크립트용
- 이 사례의 JSON: https://incidentlib-api.benchlet.com/cases/IL-0526
- 가장 비슷한 사례들: https://incidentlib-api.benchlet.com/cases/IL-0526/similar
- MCP 서버(Streamable HTTP, 키 없음):
https://incidentlib-mcp.benchlet.com/mcp
API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.