📒 [개발일기] AWS Linux에서 "No space left on device" 에러 해결기

 




💻 사건의 시작


EC2 개발 장비의 서버 프로그램을 재시작하던 중 " No space left on device " 에러가 발생하였다. 

디스크가 꽉 찬 상황인데, 실제로 어떤 파일들이 얼마나 공간을 차지하고 있는지부터 확인이 필요했다.

 

 


♦️ 디스크 상태 확인

먼저 디스크 용량을 확인하는 명령어를 실행했다.

df -h

 -- 디스크 용량 확인 명령어 

 


루트 디스크(/dev/xvda1)가 100GB인데, 100% 꽉 찬 상태였다.


♦️ 원인 분석 (어디서 공간을 많이 쓰는지 확인)

다음으로, 어떤 폴더가 가장 많은 공간을 쓰고 있는지 분석했다. 

sudo du -xh / | sort -h | tail -n 30


이 명령어는 디렉터리별 사용량을 합산해서, 상위 30개 폴더를 보여주는 명령어다.
실제로 실행해보니, 아래 폴더들이 주범으로 나타났다.

폴더 위치 크기 내용
/var/lib/mysql 21G MySQL 데이터 파일
/home/ec2-user/.pm2/logs 1.5G PM2 로그 파일
/var/log 2.4G 시스템 로그
/home/ec2-user/.npm/_cacache 약 800MB npm 캐시 파일

 


 

♦️ 실행


npm 캐시는 개발환경에서 패키지 설치할 때 쌓이는 임시파일이다. 이건 바로 삭제해도 큰 문제가 되지 않아 바로 삭제했다. 

 

🗑️ 삭제 명령어

npm cache clean --force

 

삭제 후 확인해보니 용량이 124k로 줄었다. 

 

 


 

✨ 마무리

서버 운영 중 디스크 꽉 찼을 때, 당황하지 말고 위의 과정을 순서대로 따라가면 

용량을 어디서 많이 쓰는지 원인분석이 가능하고 공간 확보까지 할 수 있다. 

클라우드 환경에서는 디스크 확장도 방법이지만, 불필요한 캐시나 정리부터 하는 게 경제적이고 효율적이다.