서버 운영
개인 서버를 업데이트하기 전에 확인하는 것들
apt upgrade 전에 디스크, 실행 중인 프로세스, 최근 로그를 먼저 훑으면 업데이트 후 문제가 생겼을 때 원인을 훨씬 빠르게 잡을 수 있다.
개인 서버를 혼자 운영하다 보면 업데이트를 무심코 실행하기 쉽다. 그런데 업데이트 전 상태를 기록해두지 않으면, 업데이트 후 문제가 생겼을 때 무엇이 달라진 건지 알기 어렵다.
디스크 공간 먼저
df -h
/ 파티션이 80% 이상 차 있으면 업데이트 중 패키지 압축 해제에 실패할 수 있다. /boot가 꽉 찬 경우도 종종 있다 — 오래된 커널 이미지가 쌓이는 경우다. autoremove로 정리하고 업데이트한다.
sudo apt autoremove
실행 중인 서비스 확인
sudo ss -lntp
업데이트 전 어떤 포트가 열려 있었는지 기록해두면, 업데이트 후 서비스 하나가 죽었을 때 바로 어느 포트가 사라졌는지 비교할 수 있다. 특히 nginx나 postgres처럼 자동 재시작이 없는 서비스는 업데이트 중 재시작 여부가 배포 결과에 영향을 준다.
최근 로그 훑기
sudo journalctl -n 80 --no-pager
업데이트 전에 이미 에러가 반복되고 있다면, 업데이트 탓이 아닌 기존 문제일 가능성이 높다. 업데이트 전 로그를 봐두면 업데이트 후 로그와 비교가 된다.
업데이트 실행
sudo apt update && sudo apt upgrade -y
서비스 재시작이 필요한 패키지가 있으면 needrestart가 묻는다. 자동으로 재시작하도록 설정하거나 직접 선택해도 된다. 커널이 업데이트됐다면 재부팅이 필요하다. /var/run/reboot-required 파일이 생겨 있으면 재부팅 대상이다.
업데이트 후 확인
ss -lntp를 다시 실행해서 업데이트 전과 같은 포트들이 열려 있는지 비교한다. 달라진 포트가 있으면 해당 서비스 로그를 확인한다.
sudo journalctl -u nginx -n 30 --no-pager
이 루틴이 번거롭게 느껴지지만, 혼자 운영하는 서버에서 업데이트 후 장애가 나면 원인 파악에 한참 걸린다. 미리 기록해두는 것만으로도 그 시간이 크게 줄어든다.