Incident Library
적용된 필터 증상서비스 중단조직Railway모두 풀기검색어 없이 필터만 적용한 목록입니다. 최근 사례부터입니다.
추천 필터 검색하면 검색어에서 찾은 분류 값이 여기에 나옵니다.

그래프

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

사례4건

4건 중 1~4번째

  1. 증상

    2026-09-30 07:35 UTC 무렵부터 Railway 에 호스팅된 모든 도메인이 새 연결에 HTTP 404 not found 를 냈다. 경로 조회가 실패하기 시작하자 곧바로 내부 알림이 울려 당직 대응팀이 소집됐다.

    촉발

    07:29 에 병합된 라우팅 제어 플레인 변경을 배포할 때, 파이프라인 설정의 오류로 스키마 변경 파이프라인과 새 라우팅 서비스 배포 파이프라인이 동시에 돌았다. 두 파이프라인이 경쟁하다가 새 라우팅 서비스가 스키마 변경보다 먼저 모든 리전에 올라왔다.

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

    경로 조회가 실패하기 시작하자 곧바로 내부 알림이 울려 당직 대응팀이 소집됐다.

    조치
    • CI 시스템이 스키마 변경을 적용했고, 라우팅 서비스가 조회를 재시도하면서 도메인 라우팅이 곧바로 정상으로 돌아왔다.
    후속 조치
    • 배포 파이프라인을 하나로 합쳐 마이그레이션 롤아웃이 차례대로 돌게 하고, 병합 전에 배포 순서와 피해 범위를 검사한다.
    • 블루/그린 롤아웃에서 바이너리마다 작성 당시의 스키마 버전을 검증하고, 맞는 데이터베이스 스키마가 갖춰질 때까지 서비스가 운영에 올라가지 않게 한다.
    • 새 구성 요소인 분산 제어 플레인에 리전별 샤드 단위 롤아웃을 더해 앞으로는 피해를 샤드 안에 가둔다.
  2. 증상

    Railway 백엔드 API 가 트래픽을 받지 못해 대시보드 접속, CLI 작업, GitHub 기반 배포 처리, 로그인, API 가 멈췄다. 이미 돌고 있던 배포는 계속 온라인이었고, 이 시스템들을 쓰지 않은 사용자는 영향을 받지 않았다.

    촉발

    엔지니어들이 15:03 UTC 에 데이터 마이그레이션이 들어간 데이터베이스 스키마 변경을 머지했다. 이 마이그레이션은 약 10억 행이 있고 많이 쓰는 테이블에 nullable 열을 더하는 것이었다.

    원인
    구성 요소
    기여 요인
    후속 조치
    • 데이터베이스 연결 수를 늘리고, PgBouncer 가 그 한도 안에서 동작하도록 다시 설정한다.
    • 오래 도는 쿼리를 고쳐 행 잠금 문제가 다시 나지 않게 한다.
  3. 증상

    2025-10-28 18:36 UTC 에 내부 모니터링 알림이 울려 엔지니어링 팀이 호출됐다. 대시보드가 열리지 않았고, railway up 처럼 API 를 쓰는 CLI 작업이 실패했으며, Public API 작업이 모두 멈췄다.

    촉발

    일상적인 Postgres 데이터베이스 변경으로 약 10억 행 테이블에 새 컬럼과 인덱스가 더해졌다. 인덱스 생성에 CONCURRENTLY 옵션을 쓰지 않아 테이블 전체에 배타적 잠금이 걸렸다.

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

    변경이 운영에 반영되고 2분 뒤인 18:36 UTC 에 내부 모니터링 알림이 울려 엔지니어링 팀이 호출됐다.

    조치
    • 인덱스를 만드는 마이그레이션이 약 30분 만에 끝나 테이블 잠금이 스스로 풀렸고, 줄을 선 작업이 처리되며 커넥션 풀이 정상으로 돌아왔다.
    후속 조치
    • CI 에서 모든 인덱스 생성에 CONCURRENTLY 사용을 강제하고, 지키지 않은 풀 리퀘스트는 머지 전에 막는다.
    • PgBouncer 커넥션 풀 한도를 조정해 뒤에 있는 Postgres 인스턴스의 용량을 넘지 않게 한다.
    • 데이터베이스 사용자별 커넥션 한도를 설정해 장애 중에도 관리용 접속을 보장하고, 어떤 상황에서도 유지 보수 작업을 할 수 있게 한다.
  4. 증상

    Google Cloud 에 있는 Railway 에지 서버가 들어오는 요청을 애플리케이션으로 보내지 못했다. 모든 리전에서 Google Cloud 로 들어오는 트래픽이 약 10분 동안 끊겼다.

    촉발

    Railway 엔지니어가 오래된 정적 차단 IP 목록을 비우려고 배열을 빈 값으로 바꾼 Terraform 변경을 머지했다. Google Cloud 방화벽 규칙에서 출발지 IP 범위가 사라져 규칙이 모든 IP 를 막게 됐다.

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

    변경을 머지하고 2분 뒤인 UTC 오전 12시 49분에 자동 알림이 Railway 엔지니어에게 갔다. 이 알림은 변경을 머지한 엔지니어가 아니라 온콜 당번을 깨웠다.

    조치
    • 먼저 되돌리고 원인은 나중에 찾는다는 정책에 따라 UTC 오전 12시 54분에 변경을 되돌렸다.
    • 되돌린 변경을 UTC 오전 12시 58분에 적용했고, 12시 59분에 자동 모니터링이 정상으로 돌아왔다.
    후속 조치
    • 알림이 더 빨리 닿도록 변경을 머지할 때 "page override" 를 자동으로 건다.
    • Terraform 으로 되돌릴 때는 plan 단계를 건너뛴다.
    • 문제가 된 방화벽 규칙을 안전하게 지운다.
    • 남은 옛 Google Cloud 방화벽 규칙 가운데 범위가 느슨하게 정해진 것이 있는지 모두 감사한다.
    • GCP 지원을 유지하면서 AWS 를 더하고 리전마다 여러 metal 데이터 센터에 투자해, 여러 종류의 컴퓨트를 지원하는 복원력 있는 인프라를 만든다. AWS 는 지금 일부 고객과 시험하고 있다.
내 클러스터에도 있는지 확인하기

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

원인별2