IL-0502 2i2c · 2025-08-20networking
새 와일드카드 DNS 레코드 때문에 temple.2i2c.cloud 가 조회되지 않아 JupyterHub 에 접속할 수 없었다
태평양 시간으로 2025년 8월 20일 오전 9:21 에 2i2c 는 Temple 의 새 클러스터를 준비하며 *.temple.2i2c.cloud 레코드를 만들어 새 클러스터의 Ingress IP 를 가리키게 했다. 그때까지 temple.2i2c.cloud 는 *.2i2c.cloud 와일드카드로 조회되고 있었다. 2i2c 는 새 와일드카드 때문에 temple.2i2c.cloud 가 더는 *.2i2c.cloud 로 조회되지 않게 됐고, DNS 캐시 때문에 그 효과가 늦게 나타났다고 봤다. 새 클러스터를 맡은 엔지니어는 DNS 가 있는 Namecheap 에 권한이 없어서 다른 사람에게 부탁해 이 레코드를 만들었다.
오전 10:02 에 업타임 체크 경보가 울렸고, dig 결과에 레코드가 없는 것을 보고 NameCheap 에 temple.2i2c.cloud 의 A 레코드를 따로 더했다. 오전 10:09 에 커뮤니티의 지원 티켓이 들어왔고 오전 10:15 에 경보가 풀렸다. 영향 시간은 13분 46초였다. 데모가 임박해 오전 10:32 에 TTL 을 기본값 30분에서 5분으로 바꿨지만 실제로 효과가 있었는지는 분명하지 않았다. 오전 10:47 에 데모를 준비하는 커뮤니티 사용자에게 /etc/hosts 우회책을 안내했고, 오전 10:55 에 커뮤니티가 잘 된다고 알려 왔다.
- 심각도
- –
- 영향 범위
- The JupyterHub at temple.2i2c.cloud did not resolve and could not be reached
- 영향 사용자
- the Temple community, shortly before a demo
- 지역
- –
- 감지까지
- 0m
- 복구까지
- 13m 46s
증상
temple.2i2c.cloud 의 JupyterHub 에 접속할 수 없었고 업타임 체크 경보가 울렸다. 커뮤니티가 데모를 하기 직전이었다.
PagerDuty 로 온 Google Cloud 경보는 An uptime check on two-eye-two-see Uptime Check URL labels {project_id=two-eye-two-see, host=temple.2i2c.cloud} is failing. 이었고, 정책은 temple.2i2c.cloud on 2i2c, 조건은 Simple Health Check Endpoint 였다.
dig temple.2i2c.cloud 의 응답은 NOERROR 였지만 레코드가 하나도 없었다.
같은 날 오전 9:21 에 Temple 의 새 클러스터를 준비하면서 *.temple.2i2c.cloud 레코드를 만들어 새 클러스터의 Ingress IP 를 가리키게 했다. 기존 레코드는 건드리지 않아 아무 변화도 없을 것으로 봤다. 장애는 DNS 캐시 때문에 늦게 나타났다.
A 레코드를 따로 더한 뒤에도 Namecheap 의 기본 TTL 이 30분이라 고친 값이 전파되는 데 그만큼 걸릴 수 있었다. 문제를 맡은 엔지니어 쪽에서 DNS 가 제대로 조회된 것은 오전 10:47 이었다.
원인
원인 설정 변경
- 촉발
- Temple 의 새 클러스터를 준비하면서 *.temple.2i2c.cloud 와일드카드 레코드를 더해 새 클러스터의 Ingress IP 를 가리키게 했다.
감지
오전 10:02 에 Google Cloud 의 업타임 체크 경보가 PagerDuty 로 울렸다. 커뮤니티 신고는 그 뒤인 오전 10:09 에 들어왔다.
조치
- NameCheap DNS 에 temple.2i2c.cloud 의 A 레코드를 따로 더했다.
- 기본값이 30분이던 DNS TTL 을 5분으로 바꿨다. 데모가 임박해서 해 본 조치였고, 전파 속도에 실제 효과가 있었는지는 분명하지 않았다.
- 데모를 하려는 커뮤니티 사용자에게 /etc/hosts 항목을 넣는 우회책을 안내했다.
후속 조치
- 팀원 모두가 Namecheap 에 들어갈 수 있게 권한을 고친다. 그럴 수 없으면 DNS 사업자를 옮긴다.
- 새로 만드는 모든 DNS 레코드의 TTL 을 30분이 아니라 5분으로 둔다.
- *.X.2i2c.cloud 레코드를 더할 때는 X.2i2c.cloud 레코드도 반드시 같이 더해야 한다고 문서에 적는다.
교훈
자동 경보가 커뮤니티 신고보다 먼저 문제를 잡았다. 새 클러스터를 준비한 엔지니어가 DNS 를 관리하는 Namecheap 에 권한이 없어서 다른 사람에게 부탁해 레코드를 만들었다. Namecheap 의 기본 TTL 이 30분이라 고친 값이 전파되는 데 그만큼 걸릴 수 있었다. 2i2c 는 장애가 데모 도중이 아니라 데모 전에 났고, DNS 를 고칠 권한이 있는 사람이 마침 자리에 있었던 것이 운이 좋았다고 적었다.
출처
참고 문서
관련 사례
IL-0512xPRO 의 쿠버네티스 APISIX 오리진 인증서가 갱신되지 못하고 만료되어 xpro.mit.edu 가 한 시간 동안 503 을 냈다MIT Open Learning · 2026 · sev1같은 원인 · 공통 DNS 서버와 레코드
IL-0533Azure China 의 핵심 시스템 도메인 chinacloudapp.cn 과 chinacloudsites.cn 의 이름 해석이 실패해 여러 서비스에 연결할 수 없었다Microsoft Azure · 2024같은 원인 · 공통 DNS 서버와 레코드
같은 원인 · 공통 DNS 서버와 레코드
같은 원인 · 공통 DNS 서버와 레코드
같은 원인 · 공통 DNS 서버와 레코드
내 클러스터에도 있는지 확인하기
AI 도구와 스크립트용
- 이 사례의 JSON: https://incidentlib-api.benchlet.com/cases/IL-0502
- 가장 비슷한 사례들: https://incidentlib-api.benchlet.com/cases/IL-0502/similar
- MCP 서버(Streamable HTTP, 키 없음):
https://incidentlib-mcp.benchlet.com/mcp
API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.