들어가며
AWS에서 제공하는 EC2에서 설정 시 기본으로 설정하면 볼륨이 8GB로 할당된다. SpringBoot 프로젝트를 실행하기에는 용량이 부족한 관계로, CI/CD를 이용해 Docker로 실행하려 했던 프로젝트가 실행이 안 되는 문제가 있었다.
문제 상황
리눅스 명령어인 df를 통해 디스크 사용량을 확인했더니 94%로, 이미 상당히 차지하고 있었다.
디스크 확인 명령어 (하단 클릭)
리눅스 디스크 확인 명령어
df [옵션]
df -a: 모든 파일 시스템을 대상으로 디스크 사용량 확인
df -k: 디스크 사용량 KB 단위로 출력
df -m: 디스크 사용량 MB 단위로 출력
df -h: 디스크 사용량 알기 쉬운 단위로 출력
df -t 파일시스템 종류: 지정한 파일 시스템 종류에 해당하는 디스크의 사용량 출력
df -T: 파일 시스템 종류 출력
해결 과정
Docker 캐시 지우기
사용하지 않는 컨테이너를 확인하고 지우기 위해 다음과 같이 명령어를 입력한다.
sudo docker system prune -a
EC2 볼륨 늘리기
인스턴스의 볼륨을 수정해준다. 16GB로 할당해도 충분할 것 같아 해당 볼륨으로 설정하였다.
EC2 대시보드 > Elastic Block Store 항목 > 볼륨 항목을 선택해 인스턴스의 볼륨을 수정해준다.
블록 디바이스 확인
lsblk 명령어를 통해 블록 디바이스를 확인한다.
현재 사용하고 있는 xvda1의 파티션 크기를 늘려줘야 한다. 파티션의 크기를 확장하기 위해 다음과 같이 명령어를 입력한다.
sudo growpart /dev/xvda 1
다시 lsblk 명령어를 통해 확인하면 파티션이 늘어난 것을 확인할 수 있다.
용량 늘리기
파티션을 할당했으므로, 이제 용량을 늘려주자. 해당 명령어는 디스크의 유형마다 다르다. type이 ext2, ext3, ex4인 경우 resize2fs 명령어를 사용하고, xfs인 경우 xfs_growfs 명령어를 사용한다. 디스크의 유형은 df -hT 명령어를 통해 확인할 수 있다.
sudo resize2fs /dev/xvda1 // ext2, ext3, ex4인 경우
sudo xfs_growfs /dev/xvda1 // xfs인 경우
디스크의 용량이 16GB로 늘어난 것을 확인할 수 있다. 이제 Docker를 다시 실행하면 정상적으로 작동된다.