Incident Library
적용된 필터 구성 요소데이터베이스조직Woowa Brothers모두 풀기검색어 없이 필터만 적용한 목록입니다. 최근 사례부터입니다.
추천 필터 검색하면 검색어에서 찾은 분류 값이 여기에 나옵니다.

그래프

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

사례2건

2건 중 1~2번째

  1. 증상

    2016년 12월 27일 오후 3시, 결제 시스템 모듈을 개발하던 개발자의 실수로 빌링 데이터베이스의 주요 테이블 9개가 DROP됐다. 모니터링 시스템에 빨간불이 들어오고 장애 알림이 쏟아졌으며, 배달의민족 결제가 잠시 중단됐다.

    촉발

    결제 시스템 모듈을 개발하던 개발자가 실수로 빌링 데이터베이스의 주요 테이블 9개를 DROP했다.

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

    모니터링 시스템에 빨간불이 들어오고 장애 알림이 쏟아져 알았다.

    조치
    • 애플리케이션이 임시 데이터베이스를 보도록 고쳐 결제 중단 시간을 줄였다.
    • 매일 새벽 6시 mysqldump로 만든 Full Backup 파일을 풀어 DB에 실행해, 빌링 시스템을 연 때부터 새벽 6시까지의 데이터를 복구했다.
    • mysqlbinlog로 binary log에서 2016-12-27 06:00:00 부터 15:00:00 까지의 이벤트를 restore.log에 뽑고, 9개 테이블만 남기도록 고친 뒤 mysql에 실행해 나머지 데이터를 복구했다.
    후속 조치
    • 빌링 데이터베이스는 장애 때 복구 과정을 단순하게 하려고 XtraBackup으로 증분 백업 없이 전체 백업을 한다.
    교훈

    장애를 관리할 지점은 많다. 데이터베이스의 서비스용 계정과 관리용 계정을 나누는 것, 쿼리를 보내기 전에 한 번 더 확인하는 것, rm -rf를 막는 것이 그 예다. 전체 백업과 binary log가 없었다면 복구할 수 없었으므로, 장애 때 전체를 복구할 지점이 있는지 점검해야 한다. 데이터가 수십에서 수백 GB에 이르면 mysqldump로는 백업과 복구에 너무 오래 걸린다.

  2. 증상

    2016년 12월 8일 오후 6시 카드사 할인 이벤트가 시작되고 얼마 지나지 않아, 빌링 시스템의 Pinpoint 그래프에 에러를 뜻하는 빨간색이 보이기 시작했다. 약 1분 동안 14,000개의 요청 가운데 140개가 에러로 끝났다.

    촉발

    오후 6시에 선착순 1,000명에게 3,000원을 할인해 주는 카드사 이벤트가 시작되면서 약 1분 동안 빌링 시스템에 요청 14,000개가 들어왔다.

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

    할인 이벤트가 열리는 오후 6시에 NewRelic 과 Pinpoint 로 지켜보던 중, Pinpoint 그래프에 에러를 뜻하는 빨간색이 보이는 것을 알아챘다.

    조치
    • gradle 설정을 바꿔 mariadb-connector-j 를 1.4.6 에서 최신 1.5.5 로 올렸다.
    교훈

    에러가 시간이 지나 저절로 멈췄더라도 대수롭지 않게 넘기면 큰 장애로 이어질 수 있다. 라이브러리는 최신 버전을 쓰는 쪽이 낫다. 드라이버를 올리지 않아도 이 문제를 피하는 방법이 있다. hostname 을 localhost 로 두거나, /etc/hosts 에 IP 주소와 hostname 을 등록해 DNS 를 거치지 않고 바로 IP 주소를 얻게 하면 된다.

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

이 2건에서 가장 많이 나오는 구성 요소: 데이터베이스, 데이터베이스 백업과 스냅숏. kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이런 틈을 점검합니다. 점검 항목의 근거는 이 라이브러리와 같은 공개 보고서입니다.

원인별2