Incident Library
적용된 필터 구성 요소DNS 서버와 레코드증상DNS 조회 실패기여 요인미검증 가정모두 풀기검색어 없이 필터만 적용한 목록입니다. 최근 사례부터입니다.
추천 필터 검색하면 검색어에서 찾은 분류 값이 여기에 나옵니다.

그래프

  • 원인
  • 구성 요소
  • 증상
  • 기여 요인
  • 사례

사례3건

3건 중 1~3번째

  1. 증상

    temple.2i2c.cloud 의 JupyterHub 에 접속할 수 없었고 업타임 체크 경보가 울렸다. 커뮤니티가 데모를 하기 직전이었다.

    촉발

    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 를 고칠 권한이 있는 사람이 마침 자리에 있었던 것이 운이 좋았다고 적었다.

  2. 증상

    Azure China 리전에서 고객이 여러 Azure 서비스에 연결하지 못했다. Azure Portal 인 portal.azure.cn 과 API 로도 리소스를 보거나 관리하기 어려웠다. chinacloudapp.cn 과 chinacloudsites.cn 도메인 안의 FQDN 을 해석하지 못한 것이 원인이었다.

    촉발

    도메인 등록 기관을 거친 설정 변경으로 2024-04-23 03:45 CST 에 chinacloudapp.cn 과 chinacloudsites.cn 의 네임서버가 비활성 서버 묶음으로 바뀌었다.

    원인
    구성 요소
    기여 요인
    감지

    04:37 CST 에 내부 모니터가 Azure China Cloud 의 서비스 저하를 알리고 인시던트를 만들었다. 04:39 CST 에 엔지니어링 팀이 인시던트를 확인했다.

    조치
    • 04:59 CST 에 두 도메인의 네임서버를 이전의 정상 네임서버로 되돌렸고, 05:13 CST 에 되돌리기를 마쳤다.
    후속 조치
    • Azure China 의 관리 도구의 수정이 끝날 때까지 이 도메인 수명 주기 절차의 실행을 모두 멈췄다.
    • 도메인 수명 주기 관리의 검증 절차를 고쳐 모든 클라우드 리전의 신호가 들어가게 한다. 2024년 6월에 마칠 예정이다.
    • 인터넷에서 영역을 직접 조회해 네임서버 정보를 얻는 검증을 더한다. 2024년 7월에 마칠 예정이다.
  3. 증상

    2021년 9월 30일 slack.com 의 DS 레코드를 DNS 등록 기관에 올린 직후 Customer Experience 팀에 사용자 신고가 들어왔다. Slack 클라이언트에 "ERR_NAME_NOT_RESOLVED" 오류가 뜬다는 신고였다. 그런데 DNSSEC 검증을 강제하는 이름 해석 모니터링과 DNSSEC 프로브는 모두 정상으로 나왔다.

    촉발

    2021년 9월 30일 Traffic Engineering 팀이 세 번째 시도로 slack.com 의 Route53 영역과 NS1 하위 위임 영역에 DNSSEC 서명을 켜고, 세 시간 뒤 DNS 등록 기관에 slack.com 의 DS 레코드를 올렸다.

    원인
    구성 요소
    기여 요인
    감지

    DS 레코드를 올린 직후 Customer Experience 팀이 ERR_NAME_NOT_RESOLVED 를 본다는 사용자 신고를 받았다. 이때 DNSSEC 프로브는 정상으로 나왔다. 서명을 되돌린 뒤에는 외부 DNS·DNSSEC 해석 프로브가 여러 리졸버의 해석 실패를 알려 Traffic 팀이 호출됐다.

    조치
    • 등록 기관에서 slack.com 의 DS 레코드를 내려 .com 영역에서 지웠다.
    • slack.com 권한 영역과 위임 영역의 DNSSEC 서명을 되돌려 마지막 정상 설정으로 돌렸다.
    • 주요 ISP 와 공개 DNS 리졸버 운영자에게 연락해 slack.com 의 캐시 레코드를 모두 비워 달라고 요청했다.
    • Google 8.8.8.8 과 Cloudflare 1.1.1.1 처럼 캐시 비우기 사이트를 둔 리졸버는 팀이 직접 캐시를 비웠다.
    교훈

    Slack 은 와일드카드 레코드가 있는 도메인을 slack.com 보다 먼저 시험하지 않은 것을 실수로 꼽았다. .com 영역의 DS 레코드는 리졸버에 최대 24시간 캐시되므로, DS 레코드를 내린 뒤에도 그 시간 동안은 권한 영역에서 DNSKEY 를 지우면 안 된다. 영역에 서명을 다시 켜도 DS 레코드의 TTL 에는 영향이 없다. Terraform 으로 DNS 를 관리하면 Route53 콘솔이 서명을 끌 때 띄우는 경고를 보지 못한다. 리졸버마다 NSEC 응답을 다르게 해석해도 규격에 맞을 수 있으므로, 권한 이름 서버가 실제로 있는 레코드 타입을 NSEC 타입 비트맵에 정확히 담는 것만이 이 모호함을 피하는 길이다.

내 클러스터에도 있는지 확인하기

이 3건에서 가장 많이 나오는 구성 요소: DNS 서버와 레코드, 재귀 DNS 리졸버 서비스. kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이런 틈을 점검합니다. 점검 항목의 근거는 이 라이브러리와 같은 공개 보고서입니다.

원인별2