EC2 용량 관리하기

hipAn·2023년 3월 26일
0

끄적끄적 성장일지

목록 보기
28/30

Saas프로젝트를 진행하며 PM들이 마케팅을통해 유저를 유입시켜 동시사용자수가 200여명을 넘어갈때쯤 다음과같은 문제가 발생했다.

PM2      | [Error: ENOSPC: no space left on device, write] {
PM2      |   errno: -28,
PM2      |   code: 'ENOSPC',
PM2      |   syscall: 'write'
PM2      | }

인스턴스의 디스크가 꽉 찬것으로보이나 프리티어를 사용하고있는상황이고 스펙업을하기에는 개인적으로 부담해야하는 금액이 커져서 최대한 용량을 확보해보기로했다.

먼저 PM2에 쌓이는 로그를 정리하기로했다. (비활성화하는방법은X)

sudo apt-get install logrotate
/etc/logrotate.d/pm2 

파일생성 후 아래 작성

/home/ubuntu/.pm2/logs/*.log {
  size 100M
  rotate 7
  compress
  delaycompress
  missingok
  notifempty
}
  • 순서대로 size는 log용량을 제한하는 옵션.
  • 로그 파일을 매일 회전.
  • 7일 동안 로그 파일을 보관.
  • 오래된 로그 파일을 압축.
  • 현재 로그 파일이 아닌 이전 로그 파일만 압축.
  • 로그 파일이 없으면 무시하고 진행.
  • 로그 파일이 비어 있으면 회전하지 않음.

이제 PM2 이외의 디스크 공간을 정리해보자.

df -h

디스크용량 확인

sudo du -a / | sort -n -r | head -n 10

이 명령어는 루트 디렉토리에서 시작하여 모든 디렉토리와 파일의 디스크 사용량을 계산하고, 사용량이 가장 큰 항목 10개를 내림차순으로 출력한다.

로그 파일이 많은 공간을 차지하고 있다면, 일부 로그 파일을 수동으로 삭제하여 공간을 확보할 수 있다. 또한 캐시 디렉토리와 임시 파일도 공간을 차지할 수 있으므로, 이러한 파일을 삭제하면 일부 공간을 확보할 수 있다.

sudo apt-get clean

임시파일과 캐시를 정리해준다.

sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*

불필요한 시스템 로그 및 캐시를 정리한다. 아래는 3일이전의 로그를 제거한다.

sudo journalctl --vacuum-time=3d

불필요한 패키지와 종속성을 제거한다.

sudo apt-get autoremove

이렇게 해서 불필요한 파일들을 삭제해줌으로써 용량을 확보하였다.

0개의 댓글