[AWS]EC2 No space left on device

Aiden·2022년 5월 6일
1
post-thumbnail

Error


AWS EC2 위에서 Docker 빌드 중 아래와 같은 오류가 발생하면서 빌드가 중단되었다.

$ df -hT

위 명령어로 용량을 확인하면, 7.7G 중 7.7G 를 모두 사용하였음을 확인할 수 있다.

이는 AWS EC2 에서 제공하는 용량을 모두 사용하였기 때문에 발생한 오류이다.

따라서, 사용하지 않는 Docker 컨테이너,이미지 파일,볼륨 및 네트워크 등을 모두 제거하여 용량을 확보할 수도 있고,

AWS EC2 볼륨 크기를 수정하고 파일 시스템 용량을 확장하여 해결할 수도 있다.



Solution


💡 Docker 정리

# 특정 Docker 컨테이너 중단
$ docker stop __CONTAINER ID__

# 실행중인 모든 Docker 컨테이너 중단
$ docker stop $(docker ps -q)
# 특정 Docker 컨테이너 삭제
$ docker rm __CONTAINER ID__

# 모든 Docker 컨테이너 삭제
$ docker rm $(docker ps -a -q)
# 특정 Docker 이미지 삭제
$ docker rmi __IMAGE ID__

# 모든 Docker 이미지 삭제
$ docker rmi $(docker images -q)
# 사용하지 않는 모든 컨테이너, 이미지, 볼륨, 네트워크, 캐싱 삭제
$ docker system prune -a --volumes

하지만 위와 같은 방식은 영구적인 해결방법이 될 수 없으며,
어떠한 Docker 파일도 제거할 수 있는 상황이 아니라면 불가능하다.

따라서, 아래와 같이 AWS EC2 의 용량을 수정한 뒤, 파일 시스템의 용량을 증가시키는 방법을 사용할 수 있다.

💡 AWS EC2 볼륨 수정

📌 AWS > 인스턴스 선택 > 스토리지 이동

하단의 볼륨 크기(GiB)8 로 설정되어 있을 것이다.

📌 볼륨 선택 > 작업 > 볼륨 수정 이동

📌 볼륨 세부 정보 > 크기(GiB) 8 -> 16 변경

📌 터미널 > lsblk > 용량 확인

$ lsblk

이제 터미널로 돌아와 lsblk 명령을 통해 수정된 볼륨 크기를 확인한다.
루트 볼륨인 /dev/xvda8GB 에서 16GB 로 수정된 것을 확인할 수 있다.

하지만 전체 볼륨 크기만 증가한 것이므로, 내부 파티션인 /dev/xvda1 의 크기를 증가시켜야 한다.

📌 sudo growpart > 내부 파티션 크기 증가

아래 명령어를 실행하여 내부 파티션의 크기를 증가시킬 수 있다.

$ sudo growpart __volume__ __partition_num__

이제 내부 파티션인 /dev/xvda1 의 크기가 16GB 로 증가한 것을 확인할 수 있다.

📌 sudo resize2fs > 파일 시스템수정된 내부 파티션의 크기 적용

마지막으로, 사용하는 파일시스템에 수정된 파티션의 크기를 적용시켜주면 된다.

$ sudo resize2fs __partition__


다시 df -hT 명령으로 용량을 확인하면 다음과 같다.

/dev/xvda1 의 크기가 16GB 로 증가한 것을 확인할 수 있으며, 다시 빌드를 진행하면 정상적으로 빌드가 이루어질 것이다.

0개의 댓글