359. MTTR (Mean Time To Repair) - 평균 수리 시간

핵심 인사이트 (3줄 요약)

  1. 본질: MTTR (Mean Time To Repair)은 시스템이나 구성요소가 고장 난 후 복구되는 평균 시간을 의미하며, 시스템의 복구 능력을 평가하는 핵심 지표이다.
  2. 가치: MTTR이 낮으면 시스템이 빠르게 복구되어 가동 중단 시간을 최소화할 수 있고, 이는 서비스 연속성 확보와 SLA 충족에 기여한다.
  3. 융합: MTTR은 가용성 (Availability) 계산식의 핵심 구성 요소이며, SRE (Site Reliability Engineering)에서 에러 예산 (Error Budget) 관리와 함께 시스템 안정성 향상에 활용된다.

Ⅰ. 개요 및 필요성 (Context & Necessity)

  • 개념: MTTR (Mean Time To Repair)은 시스템이나 구성요소가 고장 난 후 복구되는 평균 시간을 의미한다. 고장 감지에서 복구 완료까지의 평균 경과 시간이 MTTR이다. MTTR은 시스템의 복구 능력 (Recoverability)을 나타내는 대표적 지표로, 값이 낮을수록 시스템이 빠르게 복구됨을 의미한다. MTTR은 평균 수리 시간으로 불리며, 平均復旧時間이라고도 한다.

  • 필요성: 시스템의 MTTR을 알면 복구 능력을 객관적으로 평가할 수 있다. MTTR이 높으면 서비스 중단 시간이 길어져 고객 불만이 발생하고, 매출 손실과 평판 손실로 이어질 수 있다. 특히 클라우드, DevOps 환경에서는 빠른 복구가 핵심 역량으로 여겨지며, MTTR 줄이기가 중요한 목표로 설정된다.

  • 💡 비유: MTTR은 "자동차 수리 시간"에 비유할 수 있다. 자동차가 고장 난 후 평균 2시간에 수리되면 MTTR = 2시간이고, 이는 자동차 서비스센터의 복구 능력을 나타낸다.

  • 📢 섹션 요약 비유: MTTR은 "응급실 환자 치료 시간"에 비유할 수 있다. 환자가 도착してから治療完了까지平均적으로 30분이 걸리면 MTTR = 30분이고, 이는 응급실의 대응 능력을 나타낸다.


Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)

MTTR 계산 공식

┌─────────────────────────────────────────────────────────────────┐
│              MTTR (Mean Time To Repair) 계산 공식                                  │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  [기본 공식]                                                    │
│                                                                 │
│              총 복구 시간                                           │
│   MTTR = ─────────────────────                                  │
│              총 복구 횟수                                         │
│                                                                 │
│  [복구 시간 구성 요소]                                           │
│                                                                 │
│   복구 시간 = 고장 감지 시간 (Detection Time)                        │
│             + 고장 진단 시간 (Diagnosis Time)                      │
│             + 복구 조치 시간 (Repair Time)                        │
│             + 시스템 재가동 시간 (Recovery Time)                    │
│             + 검증 시간 (Verification Time)                       │
│                                                                 │
│  [예시]                                                         │
│                                                                 │
│   시스템 가동 기간: 720시간 (30일)                                 │
│   고장/복구 기록:                                                 │
│   • 1차 고장: 100시간 (감지 1h + 진단 1h + 수리 2h + 재가동 1h + 검증 1h = 6h) │
│   • 2차 고장: 300시간 (감지 2h + 진단 1h + 수리 3h + 재가동 1h + 검증 1h = 8h) │
│   • 3차 고장: 500시간 (감지 1h + 진단 1h + 수리 2h + 재가동 1h + 검증 1h = 6h) │
│                                                                 │
│   총 복구 시간 = 6 + 8 + 6 = 20시간                                 │
│   MTTR = 20 / 3 = 6.67시간                                        │
│                                                                 │
│   ※ 이 시스템은 평균 6.67시간에 복구됨을 의미                         │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

MTTR의 하위 지표

┌─────────────────────────────────────────────────────────────────┐
│              MTTR 구성 요소                                                           │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  1. Detection Time (감지 시간)                                   │   │
│  │  • 시스템이 고장을 감지하는 데 걸리는 시간                           │   │
│  │  • 예: 모니터링 시스템이異常を検出する時間                      │   │
│  └─────────────────────────────────────────────────────────┘   │
│                            │                                    │
│                            ▼                                    │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  2. Diagnosis Time (진단 시간)                                    │   │
│  │  • 고장의 원인을 파악하는 데 걸리는 시간                            │   │
│  │  • 예: 로그 분석, 시스템 분석 시간                               │   │
│  └─────────────────────────────────────────────────────────┘   │
│                            │                                    │
│                            ▼                                    │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  3. Repair Time (수리 시간)                                        │   │
│  │  • 실제 복구 조치를 수행하는 데 걸리는 시간                        │   │
│  │  • 예: 코드 수정, 설정 변경, 부품 교체 시간                      │   │
│  └─────────────────────────────────────────────────────────┘   │
│                            │                                    │
│                            ▼                                    │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  4. Recovery Time (재가동 시간)                                   │   │
│  │  • 시스템을 재가동하는 데 걸리는 시간                              │   │
│  │  • 예: 서비스 재시작, 데이터 복구 시간                           │   │
│  └─────────────────────────────────────────────────────────┘   │
│                            │                                    │
│                            ▼                                    │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  5. Verification Time (검증 시간)                                  │   │
│  │  • 복구가 완료되었는지 확인하는 데 걸리는 시간                       │   │
│  │  • 예: 테스트, 모니터링 확인 시간                                 │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

[다이어그램 해설] MTTR은 고장 감지부터 검증 완료까지의 다단계 시간으로 구성된다. Detection Time은 모니터링 시스템이異常を検出する時間이고, Diagnosis Time은 로그 분석 등을 통해 원인를 파악하는 시간이다. Repair Time은 실제 코드를 수정하거나 부품을 교체하는 시간이고, Recovery Time은 시스템을 재가동하는 시간이며, Verification Time은 복구 완료 여부를 확인하는 시간이다. MTTR을 줄이려면 이 모든 단계의 시간을 줄여야 하며, 각 단계별 최적화가 필요하다.


Ⅲ. 구현 및 실무 응용 (Implementation & Practice)

MTTR 향상 기법

기법설명MTTR에 미치는 영향
자동화된 모니터링장애 감지 자동화로 Detection Time 감소Detection ↓
중앙 집중 로깅로그 분석 시간 단축으로 Diagnosis Time 감소Diagnosis ↓
Runbook 자동화복구 절차 문서화 및 스크립트화로 Repair Time 감소Repair ↓
자동화된 Failover자동 재가동으로 Recovery Time 감소Recovery ↓
Checklist 기반 검증검증 절차 표준화로 Verification Time 감소Verification ↓

MTTR vs 가용성 관계

구분목표가용성에 대한 영향
MTTR 높음복구 시간 길다가용성 저하
MTTR 낮음복구 시간 짧다가용성 향상
MTTR = 0즉각 복구이론적 가용성 100%

Ⅳ. 품질 관리 및 테스트 (Quality & Testing)

MTTR 관련 지표 비교

지표의미측정 대상
MTTR평균 복구 시간전체 복구 과정
MTBF평균 무고장 시간고장 간 시간
MTTF평균 고장 시간시스템 전체 수명
MDT평균ダウンタイム평균 중단 시간

MTTR 벤치마크

산업/서비스목표 MTTR
금융/결제< 15분
전자상거래< 30분
SaaS 서비스< 1시간
일반 웹 서비스< 4시간
  • 📢 섹션 요약 비유: MTTR은 "응급실 환자 치료 시간"에 비유할 수 있다. 환자가 도착してから치료완료까지平均적으로 30분이 걸리면 MTTR = 30분이고, 이는 응급실의 대응 능력을 나타낸다.

SRE와 MTTR

관련 개념설명
Error BudgetSLA를 달성한 남은 허용 가능한 오류 범위
ToilSRE에서 줄여야 할 단순 반복 작업
SLO목표服务水平 (가용성 목표 등)

MTTR 관리 Best Practices

  1. 자동화된 장애 감지: 수동 감지에서 자동 감지로 전환
  2. 중앙 집중 모니터링: ELK, Datadog 등으로 통합 관찰
  3. Runbook 문서화: 복구 절차를 문서화하고 자동화
  4. 사후 분석 (Postmortem): 장애 후 반드시 사후 분석 수행하여 근본 원인 해결
  5. 게임 데이 (Game Day): 의도적 장애 주입으로 복구 프로세스 훈련
  • 📢 섹션 요약 비유: MTTR 관리는 "소방대 대응 시간"에 비유할 수 있다. 화재 신고から消火완료까지平均적으로 10분이 걸리면 MTTR = 10분이고, 이는 소방대의 대응 능력을 나타낸다.

핵심 인사이트 ASCII 다이어그램 (Concept Map)

┌─────────────────────────────────────────────────────────────────┐
│              MTTR (Mean Time To Repair) 핵심 정리                                      │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│                    총 복구 시간                                         │
│           MTTR = ──────────────                                   │
│                   총 복구 횟수                                         │
│                                                                 │
│   [복구 시간 구성]                                                │
│                                                                 │
│   Detection  →  Diagnosis  →  Repair  →  Recovery  →  Verification │
│   (감지 시간)    (진단 시간)    (수리 시간)   (재가동 시간)    (검증 시간)  │
│       │            │            │           │            │          │
│       └────────────┴────────────┴───────────┴────────────┘          │
│                              │                                       │
│                              ▼                                       │
│                    MTTR = 모든 단계의 합 / 복구 횟수                     │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

참고

  • 모든 약어는 반드시 전체 명칭과 함께 표기: API (Application Programming Interface)
  • 일어/중국어 절대 사용 금지 (한국어만 사용)
  • 각 섹션 끝에 📢 요약 비유 반드시 추가
  • ASCII 다이어그램의 세로선 │와 가로선 ─ 정렬 완벽하게
  • 한 파일당 최소 800자 이상의 실질 내용