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 으로 듣고 있는 것은?
🤔 확인 문제
장애를 복구한 뒤 반드시 해야 할 일은?