· Interview · 10 min read
SRE & Observability 면접 질문 20선 — SLO/SLI부터 장애 대응까지
SRE 엔지니어 면접 핵심 질문. SLO/SLI/SLA 설계, Prometheus/Grafana 운영, 로그 수집, 장애 대응 프로세스, On-call 문화까지 실무 답변.
SRE 기초
1. SRE란 무엇이고, 기존 운영(Ops)과 차이는?
SRE(Site Reliability Engineering) 는 소프트웨어 엔지니어링 관점으로 운영 문제를 해결하는 방법론입니다.
| 구분 | 전통적 Ops | SRE |
|---|---|---|
| 목표 | 안정성 최우선 | 안정성과 속도의 균형 |
| 변경 관리 | 변경 최소화 | 에러 버짓 내 적극적 변경 |
| 반복 작업 | 수동 처리 | 자동화 (Toil 제거) |
| 장애 문화 | 책임 추궁 | Blameless Postmortem |
2. SLO, SLI, SLA의 차이를 설명해주세요.
SLI (Service Level Indicator): 측정 가능한 서비스 품질 지표
- 예: 요청 성공률, P99 응답시간, 가용시간 비율
SLO (Service Level Objective): SLI의 목표값
- 예: 성공률 99.9%, P99 < 500ms
SLA (Service Level Agreement): 고객과의 계약. SLO 미달 시 보상 조건 포함.
- 예: 가용성 99.9% 미달 시 크레딧 제공
3. Error Budget이란?
SLO가 99.9%라면, 허용되는 오류 비율은 0.1%입니다. 이것이 Error Budget입니다.
- 월간 43,200분 × 0.1% = 43.2분의 다운타임 허용
- Error Budget이 남아있으면 → 새 기능 배포 가능
- Error Budget 소진 → 안정성 작업에 집중, 배포 동결
4. Toil이란 무엇이고, 어떻게 줄이나요?
Toil: 수동적, 반복적, 자동화 가능한, 전술적, 가치 없는 운영 작업
줄이는 방법:
- 반복 작업 스크립트/자동화
- Self-healing 시스템 구축
- Runbook 자동화
- Platform Engineering (내부 도구 개발)
Google SRE 권장: 엔지니어 시간의 50% 이상은 엔지니어링 작업에 할애
SLO/SLI 설계
5. Critical API 선정 기준은?
- 비즈니스 영향도: 매출에 직접 영향을 주는 API
- 사용자 경험: 사용자가 직접 체감하는 API
- 의존성: 다른 서비스가 의존하는 API
- 트래픽 볼륨: 호출 빈도가 높은 API
예시: 로그인, 결제, 상품 조회, 검색 API
6. SLI 계산 방법과 구현 경험은?
SLI = (성공한 요청 수) / (전체 요청 수) × 100
가용성 SLI = 1 - (5xx 응답 수 / 전체 응답 수)
지연시간 SLI = P99 응답시간 < 임계치인 요청 비율구현:
- CloudWatch Application Signals에서 자동 계측
- Lambda로 SLI를 주기적으로 계산하여 대시보드 DB에 저장
- 전사 대시보드에서 서비스별 SLO 달성률 실시간 모니터링
7. SLO 기반 알람은 어떻게 설계하나요?
Burn Rate Alert 방식:
- 현재 Error Budget 소진 속도가 목표 대비 빠르면 알람
- Fast burn (1시간 윈도우): 즉시 대응 필요
- Slow burn (6시간 윈도우): 주의 관찰
Burn Rate = (에러 발생률) / (허용 에러율)
Burn Rate > 14 → Critical (1시간 내 월간 버짓 2% 소진)
Burn Rate > 6 → Warning (6시간 내 월간 버짓 5% 소진)Observability 3요소
8. Metrics, Logs, Traces의 차이와 관계는?
| 요소 | 형태 | 용도 | 도구 |
|---|---|---|---|
| Metrics | 수치 시계열 | ”무엇이 문제인가?” | Prometheus, CloudWatch |
| Logs | 텍스트 이벤트 | ”왜 문제인가?” | Fluentbit, CloudWatch Logs |
| Traces | 요청 경로 | ”어디서 느린가?” | X-Ray, Jaeger |
관계: Metrics로 이상 감지 → Traces로 병목 구간 확인 → Logs로 근본 원인 분석
9. Prometheus의 데이터 모델과 PromQL을 설명해주세요.
데이터 모델: metric_name{label1="value1", label2="value2"} value timestamp
주요 PromQL:
# 5분간 HTTP 요청 비율
rate(http_requests_total[5m])
# P99 응답시간
histogram_quantile(0.99, rate(http_request_duration_seconds_bucket[5m]))
# 에러율
sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m]))10. Grafana 대시보드 설계 Best Practice는?
USE Method (리소스 관점):
- Utilization: CPU, 메모리, 디스크 사용률
- Saturation: 큐 길이, 대기 스레드
- Errors: 에러율, 실패 카운트
RED Method (서비스 관점):
- Rate: 초당 요청 수
- Errors: 에러율
- Duration: 응답시간 (P50, P90, P99)
11. Fluentbit으로 로그를 Metrics로 변환하는 방법은?
Fluentbit의 Lua Script Filter를 사용:
function cb_filter(tag, timestamp, record)
-- 특정 패턴의 로그에서 비즈니스 메트릭 추출
if record["log"] then
local amount = string.match(record["log"], "payment_amount=(%d+)")
if amount then
record["payment_metric"] = tonumber(amount)
end
end
return 1, timestamp, record
endCloudWatch EMF(Embedded Metric Format)로 변환하여 커스텀 메트릭으로 발행합니다.
장애 대응
12. 장애 대응 프로세스를 설명해주세요.
- 감지 (Detection): 알람 수신 또는 사용자 리포트
- 분류 (Triage): 영향 범위 파악, 심각도 판단
- 소통 (Communication): 이해관계자 알림, 상태 페이지 업데이트
- 진단 (Diagnosis): 대시보드/로그/트레이스 분석
- 완화 (Mitigation): 트래픽 전환, 롤백, 스케일업
- 복구 (Recovery): 근본 원인 해결, 정상 확인
- 사후 분석 (Postmortem): Blameless 회고, 재발 방지 액션
13. Blameless Postmortem이란?
장애 후 개인이 아닌 시스템의 문제를 분석하는 문화입니다.
Postmortem 문서 구조:
- 타임라인 (언제 무엇이 발생했는가)
- 영향 범위 (어떤 서비스, 몇 명의 사용자)
- 근본 원인 (Root Cause)
- 잘한 점 / 개선할 점
- 액션 아이템 (담당자, 기한)
14. MTTR과 MTTD를 개선하는 방법은?
MTTD (Mean Time To Detect): 장애 감지까지 걸리는 시간
- SLO 기반 Burn Rate 알람
- 합성 모니터링 (Synthetic Monitoring)
- 이상 탐지 (Anomaly Detection)
MTTR (Mean Time To Recover): 장애 복구까지 걸리는 시간
- Runbook 자동화
- 원클릭 롤백
- 장애 주입 훈련 (Chaos Engineering)
모니터링 운영
15. Alert Fatigue를 방지하는 방법은?
Alert Fatigue: 너무 많은 알람으로 중요한 알람을 놓치는 현상
방지 전략:
- Actionable 알람만: 즉시 대응이 필요한 것만 알람
- Grouping: 관련 알람 묶어서 하나로
- Inhibition: 상위 장애 발생 시 하위 알람 억제
- Severity 분리: Critical(즉시), Warning(업무시간), Info(로그만)
- 정기 리뷰: 트리거되지 않은 알람, 무시된 알람 정리
16. Percentile 기반 모니터링의 장점은?
Average만 보면 문제를 놓칠 수 있습니다:
- 평균 응답시간 100ms여도, P99가 5초일 수 있음
- 상위 1% 사용자의 경험이 극도로 나쁨
권장 모니터링 지표:
- P50: 중앙값, 일반적 경험
- P90: 대부분의 사용자 경험
- P99: 최악의 1% 경험 (SLO 기준으로 적합)
17. CloudWatch Application Signals의 장점은?
- 코드 변경 없이 자동 계측 (Auto-instrumentation)
- 서비스 맵 자동 생성
- SLO/SLI 설정 및 모니터링 UI
- X-Ray 트레이스와 통합
- 에러율, 지연시간, 호출 빈도 자동 수집
고급 주제
18. Chaos Engineering이란?
프로덕션 환경에서 의도적으로 장애를 주입하여 시스템의 복원력을 검증하는 방법론입니다.
실험 프레임워크:
- 정상 상태 정의: 어떤 메트릭이 정상인가
- 가설 수립: “X가 실패해도 시스템은 정상 동작할 것”
- 변수 주입: 네트워크 지연, Pod Kill, AZ 장애
- 관찰: 정상 상태 유지 여부 확인
- 학습: 약점 발견 시 개선
도구: Litmus, Chaos Mesh, AWS FIS
19. SRE On-boarding 프로세스를 설명해주세요.
신규 서비스 SRE On-boarding 단계:
- 서비스 이해: 아키텍처, 의존성, 사용자 패턴 파악
- SLI 선정: Critical API 식별, 측정 방법 결정
- SLO 설정: 비즈니스 요구사항에 맞는 목표값 설정
- 대시보드 구축: RED Method 기반 모니터링 대시보드
- 알람 설정: Burn Rate 기반 멀티 레벨 알람
- Runbook 작성: 장애 시나리오별 대응 절차
- 전사 대시보드 연동: SLO 달성률 중앙 모니터링
20. On-call 문화와 Escalation 정책은?
On-call 로테이션:
- Primary + Secondary 2인 체제
- 1-2주 단위 교대
- 보상: 수당 또는 대체 휴무
Escalation 정책:
- L1 (5분): On-call 엔지니어
- L2 (15분): 팀 리드
- L3 (30분): 매니저 + 관련 팀
건강한 On-call 문화:
- 주당 호출 2회 이하 목표
- 반복되는 호출 → 자동화/근본 해결
- On-call 부담 메트릭으로 팀 건강도 관리