[server] ec2 서버 용량 부족

강신현·2022년 3월 30일
0

[프로젝트/UMC] INFRA

목록 보기
6/11

에러

코드를 수정한뒤 pull request를 하고 server에 올리기 위해 이전처럼 git pull을 해주었더니 아래와 같은 에러가 발생했다..

error: file write error: No space left on device

파티션 확인

df -h

용량 풀..
용량 많이 사용하는 경로 찾기

원인

구글링을 해보니 해당 에러를 뱉는 경우가 크게 2가지 인거 같다.

  1. 저장 용량 자체가 부족한 경우
  2. 저장 용량은 충분한데 에러를 뱉는 경우 👉 허용 inode를 전부 사용하고 있는 경우
    참고 링크

나의 경우는 1번에 해당한다.

aws를 프리티어로 사용하고 있기 때문에 용량이 부족한 것이었다.
그렇다고 서버 비용을 내고 싶지 않다 ㅎ..

해결

ec2에서 repository를 git pull하는 과정에서 git log들이 다 따라와서 용량이 큰 것이므로 release 버전을 가장 최근 commit으로 따로 만들어서 하면 된다.

1. release 용 tag 만들기

release 용 tag 만들기

2. 기존 repository 삭제 및 서버 중단

  • ec2의 기존 repository 삭제
rm -rf INFRA-Server
  • 돌아가고 있는 서버 조회 및 중단
ps -ef | grep java
kill -9 {PID번호}

3. tag로 git pull

git clone --depth 1 -b {tag 이름} https://github.com/INFRAcp/INFRA-Server.git

뒤에 붙어 있는 주소는 https용 git clone 주소
(ec2 접속시 github token이 아니라 ssh로 접속했다면 ssh용 주소를 넣어주면 된다)

4. 빌드

  • 파일 이동
cd INFRA-Server
  • 권한 부여
chmod +x gradlew
  • nginx 재시작
systemctl restart nginx
  • clean build
./gradlew clean build
  • 무중단 배포
nohup java -jar build/libs/demo-0.0.1-SNAPSHOT.jar &
exit
profile
땅콩의 모험 (server)

0개의 댓글