환경

[AWS EC2] no space left on device 에러 트러블 슈팅

왈왈디 2023. 7. 12. 00:55
728x90

AWS EC2에 접속하여 docker run을 실행하니

어쩌구 저쩌구 ~ no space left on device.

라는 문구가 나오며 docker가 실행되지 않았다.

 

에러 메시지를 검색해보니

device 상에 사용할 수 있는 용량이 없다는 의미라고 한다.

 

EC2 용량을 이미 다 사용했다는 의미였다.

df -h 명령어로 사용률을 확인해볼 수 있다고 하여 입력해보았는데,

df -h

사용률이 아래와 같이 100%였다.

EC2에 있는 불필요한 폴더와 파일을 모두 삭제하여 사용률을 99%로 낮췄지만

docker를 실행시키는 데에 효과는 없었다.

 

조금 더 검색해보니 AWS에 접속하여 EC2의 용량을 확장할 수 있다는 걸 알게 됐다.

지금까지의 용량은 8GB.

블로그 글들을 보니 30GB까지는 무료라고 하는데, 정확한 근거를 찾지 못해서 쫄리는 마음에 16GB로 수정했다.

AWS 콘솔에 접속하여 EC2>볼륨으로 들어가 수정을 누르고 크기를 원하는 값으로 바꿔주면 된다.  

수정 요청 후 아래와 같은 메시지를 볼 수 있다.

기다리면 곧 용량 확장이 완료되고 아래와 같이 바뀐다.

 

AWS에 접속하여 용량을 잘 변경했다면

터미널에서 EC2에 접속하여 수정된 용량을 적용하는 작업을 해주어야 한다.

 

EC2에 접속하여 lsblk 명령어를 입력하면 xvda 용량을 확인할 수 있다.

lsblk

아래 명령어로 파티션을 확장하고,

sudo growpart /dev/xvda 1

아래 명령어로 리사이즈 해주어야 한다.

sudo resize2fs /dev/xvda 1

 

여기까지 하고 df -h를 입력하면

확장된 용량이 적용되어 있어야 하는데, 그렇지 않았다.


다시 resize 해보면 아래와 같은 에러 메시지만 나와서 답답했는데,

resize2fs: Device or resource busy while trying to open /dev/xvda
Couldn't find valid filesystem superblock.

리부트 해보라는 조언을 발견하고 아래 명령어를 실행해 보았다.

sudo reboot

 

reboot를 실행하면 EC2가 종료된다.

바로 재접속 하려고 했더니 아래와 같은 오류가 나더라.

Connection refused

 

 Operation timed out

 

조금만 시간을 갖고 기다리자.

3분 정도 기다린 후 다시 EC2에 접속했더니 잘 접속되었다.

 

다시 접속하여 df -h 명령어로 확인했더니 아래와 같이 확장한 용량이 잘 반영되었다.

 

이후 docker run을 실행하니 잘 실행되었다!

728x90