class="layout-aside-right paging-number">
본문 바로가기
카테고리 없음

서버가 다운됐을 때 대처법 & 원인 찾는 방법

by 탱클 2025. 11. 28.

서버가 다운됐을 때 대처법 & 원인 찾는 방법

서버를 운영하다 보면 어느 순간 사이트 접속이 되지 않거나, 응답 속도가 급격히 느려지는 상황을 경험할 수 있다. 이는 대부분 서버가 다운되었거나 비정상적인 상태에 빠졌기 때문이다. 이 글에서는 서버가 다운됐을 때 빠르게 복구하고, 문제의 원인을 파악하는 기본적인 점검 절차를 정리한다. 리눅스 서버 기준이다.

1. 먼저 서버에 접속 가능한지 확인

가장 먼저 해야 할 일은 SSH나 콘솔로 서버에 접속이 가능한지 확인하는 것이다. SSH가 되지 않는다면 클라우드 서비스의 경우 웹 콘솔(예: AWS EC2 콘솔, Google Cloud SSH 콘솔)을 이용해 접근을 시도한다.

  • SSH 접속 확인:
ssh 사용자명@서버IP

접속이 되지 않으면 서버 자체가 꺼졌거나, 네트워크 또는 방화벽 설정 문제가 있을 수 있다.

2. 서버 리소스 확인 (CPU, RAM, 디스크)

서버에 접속이 가능하다면 시스템 자원 상태를 먼저 확인한다.

  • 전체 시스템 상태:
top
  • 메모리 사용량 확인:
free -m
  • 디스크 용량 확인:
df -h

메모리 부족이나 디스크 가득 참은 상태는 서버 과부하의 대표적인 원인이다.

3. 서비스 상태 확인 (웹서버, 데이터베이스 등)

웹사이트가 열리지 않는다면 웹 서버(Nginx, Apache), 데이터베이스(MySQL 등) 상태를 점검한다.

  • Nginx 상태 확인:
sudo systemctl status nginx
  • MySQL 상태 확인:
sudo systemctl status mysql

비정상 상태라면 재시작을 시도한다.

sudo systemctl restart nginx
sudo systemctl restart mysql

4. 로그 파일 확인

서버 로그는 문제의 원인을 파악하는 데 중요한 단서가 된다. 주로 확인할 파일은 다음과 같다.

  • 시스템 로그:
sudo less /var/log/syslog
  • 인증 및 접속 로그:
sudo less /var/log/auth.log
  • 웹 서버 로그:
sudo less /var/log/nginx/error.log

에러 메시지, 서비스 재시작 기록, 접근 실패 로그 등을 확인해 문제의 단서를 찾는다.

5. 포트 및 프로세스 확인

웹 서버나 데이터베이스가 실행 중이어도 실제로 포트가 열려 있지 않으면 접속이 불가능하다.

  • 열린 포트 확인:
sudo netstat -tulnp
  • 프로세스 확인:
ps aux | grep nginx

서버가 제대로 포트를 리스닝하고 있는지, 필요한 프로세스가 실행 중인지 확인한다.

6. 네트워크 상태 점검

서버의 외부 통신이 차단되었거나 DNS 문제가 있는 경우도 있다.

  • 외부로 핑 테스트:
ping 8.8.8.8
  • DNS 확인:
nslookup google.com
  • 서버 외부 포트 열림 확인 (다른 서버에서 실행):
telnet 서버IP 80

7. 방화벽 설정 확인

방화벽(UFW 등)이 설정되어 있다면 포트가 차단되어 접속이 안 될 수도 있다.

sudo ufw status

HTTP(80), HTTPS(443), SSH(22 또는 설정한 포트)가 열려 있는지 확인한다.

8. 서버 재부팅

위의 점검을 통해 명확한 문제가 발견되지 않았고, 응답이 없거나 시스템이 불안정한 경우에는 재부팅을 고려할 수 있다.

sudo reboot

재부팅 후에도 문제가 반복된다면, 더 심층적인 로그 분석이나 하드웨어/클라우드 인프라 문제를 확인해야 한다.

9. 백업으로 복구 (최후의 수단)

심각한 오류로 서버가 더 이상 정상 작동하지 않거나 데이터가 손상되었을 경우, 마지막 수단은 백업본을 이용한 복구다. 평소에 주기적인 백업과 스냅샷을 유지하고 있어야만 가능한 대응이다.

마무리

서버 장애는 예고 없이 찾아오지만, 사전에 점검 루틴을 숙지하고 있으면 빠르게 대응할 수 있다. 리소스 상태, 서비스 실행 여부, 로그 분석, 포트 및 네트워크 점검이라는 기본 절차를 기억해두면 대부분의 문제는 원인을 찾고 복구할 수 있다. 무엇보다 중요한 것은 사고를 예방하기 위한 모니터링, 알림 설정, 자동 백업 체계를 평소에 구축해두는 것이다.