서비스를 연 지 석 달째 되던 날 새벽 두 시, 모니터링 알림이 울렸다. 사이트가 열리지 않는다. 침대에서 노트북을 열었을 때 손이 떨렸다.
타임라인
| 시각 | 일 |
|---|---|
| 02:04 | 응답 없음 알림 |
| 02:09 | SSH 접속, 디스크 100% 확인 |
| 02:15 | 원인: 로그 파일 38GB |
| 02:18 | 오래된 로그 압축 · 정리, 서비스 복구 |
| 02:40 | 로그 순환 설정 추가 |
로그 순환(logrotate)을 설정하지 않은 로그는 언젠가 반드시 디스크를 채웁니다.
배운 것
- 디스크 사용량 80% 알림 추가
- 애플리케이션 로그 순환 설정
- 장애 대응 절차 문서화
- 두 번째 담당자 정하기
장애는 기술 문제이기 전에 준비의 문제였다.
복구 뒤 공지를 올리고 잠들었더니 아침에 사용자 몇 분이 "고생하셨어요"라고 댓글을 달아 주셨다. 작은 서비스의 가장 큰 힘은 이런 사람들이다.
코드 한 줄
