18강 / 20강
장애 대응 — 서버가 아플 때
디스크·메모리·포트, 그리고 침착한 순서
새벽 2시, 사이트가 죽었다는 연락이 옵니다. 무엇부터 볼까요?
경험 많은 관리자는 정해진 순서로 확인합니다. 당황해서 아무거나 만지면 오히려 상황이 나빠지거든요.
① systemctl status서비스가 살아 있나② df -h디스크가 찼나 ← 1위 원인③ free -h메모리가 모자라나④ top누가 CPU를 먹나⑤ ss -ltnp포트가 열려 있나⑥ 로그왜 그랬나① 디스크
사용률 90%가 넘으면 빨간불입니다
bash
내 가상 Ubuntu 서버에서 실행
무엇이 용량을 먹는지 — du 는 폴더별 크기
bash
내 가상 Ubuntu 서버에서 실행
② 메모리 · ③ CPU
9강에서 배운 것 — available 과 load average 를 보세요
bash
내 가상 Ubuntu 서버에서 실행
load average: 0.42, 0.31, 0.28 은
1분·5분·15분 동안 CPU를 기다린 평균 작업 수입니다.
CPU가 2개인 서버라면 2.0까지는 정상이에요. 그보다 크면 밀리고 있다는 뜻입니다.
누가 범인인지 한눈에
bash
내 가상 Ubuntu 서버에서 실행
④ 포트 — 누가 어디서 듣고 있나
"앱이 돌고 있는데 접속이 안 돼요"의 절반은 포트 문제입니다.
-l 듣는 중 · -t TCP · -n 숫자로 · -p 어느 프로세스인지
bash
내 가상 Ubuntu 서버에서 실행
0.0.0.0:80모든 곳에서 접속 가능nginx — 바깥에 열려 있음127.0.0.1:8000이 컴퓨터 안에서만gunicorn — 일부러 막아 둔 것0.0.0.0:22SSH원격 접속용만약 우리 앱이 0.0.0.0:8000 이었다면, 누구나 nginx를 건너뛰고
앱에 직접 접속할 수 있습니다. 16강에서 세운 방벽이 무너지는 거예요.
🎮 장애 대응 실험실
장애 시나리오를 하나씩 드립니다. 증상을 보고 어느 명령으로 확인할지 골라 보세요. 틀리면 왜 그 명령으로는 알 수 없는지 알려 줍니다.
실전 · 쇼핑몰이 죽었습니다
아래 순서를 그대로 따라가 보세요. 이것이 실제 대응 절차입니다.
장애 발생 — 손님에게는 502 가 보입니다
bash
내 가상 Ubuntu 서버에서 실행
① 서비스 상태 확인 → inactive (dead)
bash
내 가상 Ubuntu 서버에서 실행
② 왜 죽었는지 로그 확인
bash
내 가상 Ubuntu 서버에서 실행
③ 복구하고 ④ 확인까지 — 여기서 끝내지 마세요
bash
내 가상 Ubuntu 서버에서 실행
🤔 확인 문제
사이트가 죽었을 때
df -h 를 일찍 확인해야 하는 이유는?해설 디스크가 가득 차면 "데이터베이스 연결 실패" 같은 엉뚱한 오류가 뜹니다. 진짜 원인은 디스크인데요. 그래서 초반에 확인해야 헤매지 않습니다.
🤔 확인 문제
ss -ltnp 결과에서 앱이 127.0.0.1:8000 으로 듣고 있는 것은?해설
127.0.0.1 은 이 컴퓨터 자신입니다. 바깥에서 닿을 수 없어요. 손님은 반드시 nginx(80)를 거쳐야 하므로, 16강에서 세운 보호막이 지켜집니다.🤔 확인 문제
장애를 복구한 뒤 반드시 해야 할 일은?
해설 복구 → 원인 규명 → 재발 방지가 한 세트입니다. 원인을 모른 채 살려만 두면 같은 장애가 반복됩니다.